/**
  * @see SplObserver::update()
  */
 public function update(\SplSubject $stateMachine)
 {
     if ($stateMachine instanceof StatemachineInterface) {
         if ($stateMachine->getCurrentState()->hasEvent($this->eventName)) {
             $stateMachine->triggerEvent($this->eventName);
         }
     }
 }
 /**
  * @see SplObserver::update()
  */
 public function update(\SplSubject $stateMachine)
 {
     if ($stateMachine instanceof StatemachineInterface) {
         $subject = $stateMachine->getSubject();
         if ($subject instanceof StatefulInterface) {
             $stateName = $stateMachine->getCurrentState()->getName();
             $subject->setCurrentStateName($stateName);
         }
     }
 }