Beispiel #1
0
 /**
  * Parses the state.
  *
  * @param DomElement $state
  * @return array
  */
 function _parseState($state)
 {
     $parsedState = array();
     $parsedTransitions = array();
     $transitions = $state->get_elements_by_tagname('transition');
     for ($i = 0, $count = count($transitions); $i < $count; ++$i) {
         $parsedTransition = array();
         if ($transitions[$i]->has_attribute('event')) {
             $parsedTransition['event'] = $transitions[$i]->get_attribute('event');
         }
         if ($transitions[$i]->has_attribute('nextState')) {
             $parsedTransition['nextState'] = $transitions[$i]->get_attribute('nextState');
         }
         $action = $transitions[$i]->get_elements_by_tagname('action');
         if (count($action)) {
             $parsedTransition['action'] = $this->_parseAction($action[0]);
         }
         $guard = $transitions[$i]->get_elements_by_tagname('guard');
         if (count($guard)) {
             $parsedTransition['guard'] = $this->_parseAction($guard[0]);
         }
         $parsedTransitions[] = $parsedTransition;
     }
     if (count($parsedTransitions)) {
         $parsedState['transition'] = $parsedTransitions;
     }
     $entry = $state->get_elements_by_tagname('entry');
     if (count($entry)) {
         $parsedState['entry'] = $this->_parseAction($entry[0]);
     }
     $exit = $state->get_elements_by_tagname('exit');
     if (count($exit)) {
         $parsedState['exit'] = $this->_parseAction($exit[0]);
     }
     $activity = $state->get_elements_by_tagname('activity');
     if (count($activity)) {
         $parsedState['activity'] = $this->_parseAction($activity[0]);
     }
     return $parsedState;
 }