diff options
Diffstat (limited to 'apps/workflowengine/lib/Check/TFileCheck.php')
-rw-r--r-- | apps/workflowengine/lib/Check/TFileCheck.php | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/apps/workflowengine/lib/Check/TFileCheck.php b/apps/workflowengine/lib/Check/TFileCheck.php new file mode 100644 index 00000000000..a514352e047 --- /dev/null +++ b/apps/workflowengine/lib/Check/TFileCheck.php @@ -0,0 +1,55 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\WorkflowEngine\Check; + +use OCA\WorkflowEngine\AppInfo\Application; +use OCA\WorkflowEngine\Entity\File; +use OCP\Files\Node; +use OCP\Files\NotFoundException; +use OCP\Files\Storage\IStorage; +use OCP\WorkflowEngine\IEntity; + +trait TFileCheck { + /** @var IStorage */ + protected $storage; + + /** @var string */ + protected $path; + + /** @var bool */ + protected $isDir; + + /** + * @param IStorage $storage + * @param string $path + * @param bool $isDir + * @since 18.0.0 + */ + public function setFileInfo(IStorage $storage, string $path, bool $isDir = false): void { + $this->storage = $storage; + $this->path = $path; + $this->isDir = $isDir; + } + + /** + * @throws NotFoundException + */ + public function setEntitySubject(IEntity $entity, $subject): void { + if ($entity instanceof File) { + if (!$subject instanceof Node) { + throw new \UnexpectedValueException( + 'Expected Node subject for File entity, got {class}', + ['app' => Application::APP_ID, 'class' => get_class($subject)] + ); + } + $this->storage = $subject->getStorage(); + $this->path = $subject->getPath(); + } + } +} |