/** * @param \Gmorel\StateWorkflowBundle\StateEngine\StateWorkflow $stateWorkflow */ public function __construct(StateWorkflow $stateWorkflow) { $this->workflowName = $stateWorkflow->getName(); $availableStates = $stateWorkflow->getAvailableStates(); if (empty($availableStates)) { throw new EmptyWorkflowException(sprintf('Workflow "%s" has no State defined.', $stateWorkflow->getName())); } $this->createIntrospectedStates($availableStates); $this->createIntrospectedTransitions($availableStates); }
/** * @return StateWorkflow */ private function createValidStateWorkflow() { $stateA = new StateA(); $stateB = new StateB(); $stateC = new StateC(); $stateWorkflow = new StateWorkflow('Booking Workflow', 'key'); $stateWorkflow->addAvailableState($stateA); $stateWorkflow->addAvailableState($stateB); $stateWorkflow->addAvailableState($stateC); $stateWorkflow->setStateAsDefault($stateA->getKey()); return $stateWorkflow; }
/** * {@inheritdoc} * @return StateInterface */ public function getState(StateWorkflow $stateWorkflow) { return $stateWorkflow->getStateFromKey($this->stateKey); }
/** * Used by DIC during compiler pass * @param StateWorkflow $stateWorkflow */ public function addWorkflow(StateWorkflow $stateWorkflow) { $this->workflows[$stateWorkflow->getServiceId()] = $stateWorkflow; }