diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2019-08-27 17:52:00 +0300 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2019-09-09 23:56:02 +0300 |
commit | 4c2fdbb9085514692bb86a73bb415a41ccd209f4 (patch) | |
tree | cd014e8f825e99fd54225d907ce7e4ead8f44c64 /lib/public/WorkflowEngine | |
parent | ec36c0ae80ea50d460f2c15c16e7d9de15cafd40 (diff) |
merge IOperator with IOperation for simplicity
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'lib/public/WorkflowEngine')
-rw-r--r-- | lib/public/WorkflowEngine/IComplexOperation.php (renamed from lib/public/WorkflowEngine/IComplexOperator.php) | 4 | ||||
-rw-r--r-- | lib/public/WorkflowEngine/IManager.php | 5 | ||||
-rw-r--r-- | lib/public/WorkflowEngine/IOperation.php | 54 | ||||
-rw-r--r-- | lib/public/WorkflowEngine/IOperator.php | 91 | ||||
-rw-r--r-- | lib/public/WorkflowEngine/ISpecificOperation.php (renamed from lib/public/WorkflowEngine/ISpecificOperator.php) | 4 |
5 files changed, 58 insertions, 100 deletions
diff --git a/lib/public/WorkflowEngine/IComplexOperator.php b/lib/public/WorkflowEngine/IComplexOperation.php index ee2d3d0a183..f3ba6d014a4 100644 --- a/lib/public/WorkflowEngine/IComplexOperator.php +++ b/lib/public/WorkflowEngine/IComplexOperation.php @@ -25,7 +25,7 @@ declare(strict_types=1); namespace OCP\WorkflowEngine; /** - * Interface IComplexOperator + * Interface IComplexOperation * * This interface represents an operator that is less generic and indicates * that some of the tasks it does itself instead of relying on the engine. @@ -40,4 +40,4 @@ namespace OCP\WorkflowEngine; * * @sincee 18.0.0 */ -interface IComplexOperator extends IOperator { } +interface IComplexOperation extends IOperation { } diff --git a/lib/public/WorkflowEngine/IManager.php b/lib/public/WorkflowEngine/IManager.php index 6d4bacc8e17..8ef7a3a03e8 100644 --- a/lib/public/WorkflowEngine/IManager.php +++ b/lib/public/WorkflowEngine/IManager.php @@ -37,6 +37,9 @@ interface IManager { const SCOPE_ADMIN = 0; const SCOPE_USER = 1; + const EVENT_NAME_REG_OPERATION = 'OCP\WorkflowEngine::registerOperations'; + const EVENT_NAME_REG_ENTITY = 'OCP\WorkflowEngine::registerEntities'; + /** * @param IStorage $storage * @param string $path @@ -66,5 +69,5 @@ interface IManager { * * @since 18.0.0 */ - public function registerOperator(IOperator $operator): void; + public function registerOperation(IOperation $operator): void; } diff --git a/lib/public/WorkflowEngine/IOperation.php b/lib/public/WorkflowEngine/IOperation.php index 491a805909c..0862588e86f 100644 --- a/lib/public/WorkflowEngine/IOperation.php +++ b/lib/public/WorkflowEngine/IOperation.php @@ -31,11 +31,57 @@ namespace OCP\WorkflowEngine; */ interface IOperation { /** - * @param string $name - * @param array[] $checks - * @param string $operation + * returns a translated name to be presented in the web interface + * + * Example: "Automated tagging" (en), "AĆtomata etikedado" (eo) + * + * @since 18.0.0 + */ + public function getDisplayName(): string; + + /** + * returns a translated, descriptive text to be presented in the web interface. + * + * It should be short and precise. + * + * Example: "Tag based automatic deletion of files after a given time." (en) + * + * @since 18.0.0 + */ + public function getDescription(): string; + + /** + * returns the URL to the icon of the operator for display in the web interface. + * + * Usually, the implementation would utilize the `imagePath()` method of the + * `\OCP\IURLGenerator` instance and simply return its result. + * + * Example implementation: return $this->urlGenerator->imagePath('myApp', 'cat.svg'); + * + * @since 18.0.0 + */ + public function getIcon(): string; + + /** + * returns whether the operation can be used in the requested scope. + * + * Scope IDs are defined as constants in OCP\WorkflowEngine\IManager. At + * time of writing these are SCOPE_ADMIN and SCOPE_USER. + * + * For possibly unknown future scopes the recommended behaviour is: if + * user scope is permitted, the default behaviour should return `true`, + * otherwise `false`. + * + * @since 18.0.0 + */ + public function isAvailableForScope(int $scope): bool; + + /** + * Validates whether a configured workflow rule is valid. If it is not, + * an `\UnexpectedValueException` is supposed to be thrown. + * * @throws \UnexpectedValueException * @since 9.1 */ - public function validateOperation($name, array $checks, $operation); + public function validateOperation(string $name, array $checks, string $operation): void; } diff --git a/lib/public/WorkflowEngine/IOperator.php b/lib/public/WorkflowEngine/IOperator.php deleted file mode 100644 index 70c80d98c45..00000000000 --- a/lib/public/WorkflowEngine/IOperator.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -declare(strict_types=1); -/** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -namespace OCP\WorkflowEngine; - -/** - * @since 18.0.0 - */ -interface IOperator { - /** - * returns the unique identity of the operator - * - * It is recommended to use the namespaced class name of the IOperator - * implementation. Especially workflow applications released before - * Nextcloud 18 should chose this as id for compatibility. - * - * Example: OCA\FilesAutomatedTagging\Operation - * - * @since 18.0.0 - */ - public function getId(): string; - - /** - * returns a translated name to be presented in the web interface - * - * Example: "Automated tagging" (en), "AĆtomata etikedado" (eo) - * - * @since 18.0.0 - */ - public function getDisplayName(): string; - - /** - * returns a translated, descriptive text to be presented in the web interface. - * - * It should be short and precise. - * - * Example: "Tag based automatic deletion of files after a given time." (en) - * - * @since 18.0.0 - */ - public function getDescription(): string; - - /** - * returns the URL to the icon of the operator for display in the web interface. - * - * Usually, the implementation would utilize the `imagePath()` method of the - * `\OCP\IURLGenerator` instance and simply return its result. - * - * Example implementation: return $this->urlGenerator->imagePath('myApp', 'cat.svg'); - * - * @since 18.0.0 - */ - public function getIcon(): string; - - /** - * returns whether the operation can be used in the requested scope. - * - * Scope IDs are defined as constants in OCP\WorkflowEngine\IManager. At - * time of writing these are SCOPE_ADMIN and SCOPE_USER. - * - * For possibly unknown future scopes the recommended behaviour is: if - * user scope is permitted, the default behaviour should return `true`, - * otherwise `false`. - * - * @since 18.0.0 - */ - public function isAvailableForScope(int $scope): bool; - - -} diff --git a/lib/public/WorkflowEngine/ISpecificOperator.php b/lib/public/WorkflowEngine/ISpecificOperation.php index a5ae9fc1841..0b26770a13a 100644 --- a/lib/public/WorkflowEngine/ISpecificOperator.php +++ b/lib/public/WorkflowEngine/ISpecificOperation.php @@ -25,7 +25,7 @@ declare(strict_types=1); namespace OCP\WorkflowEngine; /** - * Interface ISpecificOperator + * Interface ISpecificOperation * * This interface represents an operator that is designed to work with exactly * one entity type. @@ -37,7 +37,7 @@ namespace OCP\WorkflowEngine; * @package OCP\WorkflowEngine * @since 18.0.0 */ -interface ISpecificOperator extends IOperator { +interface ISpecificOperation extends IOperation { /** * returns the id of the entity the operator is designed for |