diff options
Diffstat (limited to 'lib/public/WorkflowEngine/IRuleMatcher.php')
-rw-r--r-- | lib/public/WorkflowEngine/IRuleMatcher.php | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/public/WorkflowEngine/IRuleMatcher.php b/lib/public/WorkflowEngine/IRuleMatcher.php new file mode 100644 index 00000000000..48a0eeea6c1 --- /dev/null +++ b/lib/public/WorkflowEngine/IRuleMatcher.php @@ -0,0 +1,72 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCP\WorkflowEngine; + +use RuntimeException; + +/** + * Class IRuleMatcher + * + * + * @since 18.0.0 + */ +interface IRuleMatcher extends IFileCheck { + /** + * This method is left for backwards compatibility and easier porting of + * apps. Please use 'getFlows' instead (and setOperation if you implement + * an IComplexOperation). + * + * @since 18.0.0 + * @deprecated 18.0.0 + */ + public function getMatchingOperations(string $class, bool $returnFirstMatchingOperationOnly = true): array; + + /** + * @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; + + /** + * returns the entity which might provide more information, depending on + * the interfaces it implements + * + * @return IEntity + * @since 18.0.0 + */ + public function getEntity(): IEntity; + + /** + * 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; +} |