2019-08-07 06:12:56 -04:00
|
|
|
<?php
|
2019-12-03 13:57:53 -05:00
|
|
|
|
2019-08-07 06:12:56 -04:00
|
|
|
declare(strict_types=1);
|
2019-12-03 13:57:53 -05:00
|
|
|
|
2019-08-07 06:12:56 -04:00
|
|
|
/**
|
2024-05-23 03:26:56 -04:00
|
|
|
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
|
|
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
2019-08-07 06:12:56 -04:00
|
|
|
*/
|
|
|
|
|
namespace OCP\WorkflowEngine;
|
|
|
|
|
|
2019-11-27 07:59:34 -05:00
|
|
|
use RuntimeException;
|
|
|
|
|
|
2019-08-22 05:00:59 -04:00
|
|
|
/**
|
2019-09-09 10:53:59 -04:00
|
|
|
* Class IRuleMatcher
|
2019-08-22 05:00:59 -04:00
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @since 18.0.0
|
|
|
|
|
*/
|
2019-09-09 10:53:59 -04:00
|
|
|
interface IRuleMatcher extends IFileCheck {
|
2019-08-07 06:12:56 -04:00
|
|
|
/**
|
2019-11-27 07:59:34 -05:00
|
|
|
* This method is left for backwards compatibility and easier porting of
|
|
|
|
|
* apps. Please use 'getFlows' instead (and setOperation if you implement
|
|
|
|
|
* an IComplexOperation).
|
|
|
|
|
*
|
2019-08-07 06:12:56 -04:00
|
|
|
* @since 18.0.0
|
2019-11-27 07:59:34 -05:00
|
|
|
* @deprecated 18.0.0
|
2019-08-07 06:12:56 -04:00
|
|
|
*/
|
2019-09-09 10:53:59 -04:00
|
|
|
public function getMatchingOperations(string $class, bool $returnFirstMatchingOperationOnly = true): array;
|
2019-11-27 07:59:34 -05:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @throws RuntimeException
|
|
|
|
|
* @since 18.0.0
|
|
|
|
|
*/
|
|
|
|
|
public function getFlows(bool $returnFirstMatchingOperationOnly = true): array;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* this method can only be called once and is typically called by the
|
|
|
|
|
* Flow engine, unless for IComplexOperations.
|
|
|
|
|
*
|
|
|
|
|
* @throws RuntimeException
|
|
|
|
|
* @since 18.0.0
|
|
|
|
|
*/
|
|
|
|
|
public function setOperation(IOperation $operation): void;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* this method can only be called once and is typically called by the
|
|
|
|
|
* Flow engine, unless for IComplexOperations.
|
|
|
|
|
*
|
|
|
|
|
* @throws RuntimeException
|
|
|
|
|
* @since 18.0.0
|
|
|
|
|
*/
|
|
|
|
|
public function setEntity(IEntity $entity): void;
|
2019-11-27 11:22:26 -05:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* returns the entity which might provide more information, depending on
|
|
|
|
|
* the interfaces it implements
|
|
|
|
|
*
|
|
|
|
|
* @return IEntity
|
|
|
|
|
* @since 18.0.0
|
|
|
|
|
*/
|
|
|
|
|
public function getEntity(): IEntity;
|
2020-08-21 11:36:01 -04:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* this method can be called once to set the event name that is currently
|
|
|
|
|
* being processed. The workflow engine takes care of this usually, only an
|
|
|
|
|
* IComplexOperation might want to make use of it.
|
|
|
|
|
*
|
|
|
|
|
* @throws RuntimeException
|
|
|
|
|
* @since 20.0.0
|
|
|
|
|
*/
|
|
|
|
|
public function setEventName(string $eventName): void;
|
2019-08-07 06:12:56 -04:00
|
|
|
}
|