Пример #1
0
 /**
  * Applies a transition action given a object and the kind of transition is
  * needed.
  *
  * @param stdClass       $object           Object
  * @param StateLineStack $stateLineStack   StateLine Stack
  * @param string         $transitionName   Transition name
  * @param string         $description      Description
  * @param string         $transitionAction Transition Action
  *
  * @return StateLineStack StateLine stack given
  *
  * @throws StateNotReachableException    State is not reachable
  * @throws ObjectNotInitializedException Object needs to be initialized in machine
  */
 private function applyTransitionAction($object, StateLineStack $stateLineStack, $transitionName, $description, $transitionAction)
 {
     $startState = $stateLineStack->getLastStateLine();
     if (!$startState instanceof StateLineInterface) {
         throw new ObjectNotInitializedException();
     }
     /**
      * @var Transition $transition
      */
     $transition = $this->machine->{$transitionAction}($startState->getName(), $transitionName);
     $stateLine = $this->createStateLine($transition->getFinal()->getName(), $description);
     $stateLineStack->addStateLine($stateLine);
     $this->machineEventDispatcher->dispatchTransitionEvents($this->machine, $object, $stateLineStack, $transition);
     return $stateLineStack;
 }
Пример #2
0
 /**
  * Sets StateLineStack.
  *
  * @param StateLineStack $stateLineStack StateLineStack
  *
  * @return $this Self object
  */
 public function setStateLineStack(StateLineStack $stateLineStack)
 {
     $this->stateLines = $stateLineStack->getStateLines();
     $this->lastStateLine = $stateLineStack->getLastStateLine();
     return $this;
 }
Пример #3
0
 /**
  * Sets ShippingStateLineStack
  *
  * @param StateLineStack $shippingStateLineStack ShippingStateLineStack
  *
  * @return $this Self object
  */
 public function setShippingStateLineStack(StateLineStack $shippingStateLineStack)
 {
     $this->shippingStateLines = $shippingStateLineStack->getStateLines();
     $this->shippingLastStateLine = $shippingStateLineStack->getLastStateLine();
     return $this;
 }