/** * @param WorkflowId $workflowId * @param Process $process * @param Task $task * @return TaskWasAddedToProcess */ public static function record(WorkflowId $workflowId, Process $process, Task $task) { $event = self::occur($workflowId->toString(), ['process_id' => $process->id()->toString(), 'task_id' => $task->id()->toString()]); $event->workflowId = $workflowId; $event->processId = $process->id(); $event->taskId = $task->id(); return $event; }
/** * @param Task $task * @param Workflow $workflow * @return TaskProcessNotFound */ public static function of(Task $task, Workflow $workflow) { return new self(sprintf("Workflow %s (%s) has no process defined which has task %s on its task list", $workflow->name(), $workflow->workflowId()->toString(), $task->id()->toString())); }
/** * @param Task $task * @return Process|null */ private function getProcessOfTask(Task $task) { foreach ($this->processList as $process) { foreach ($process->tasks() as $taskId) { if ($taskId->equals($task->id())) { return $process; } } } return null; }