protected function buildChild(core\argument $child) { if ($child->getName() === 'module') { $aResult = $this->buildModule($child); } else { $aResult = parent::buildChild($child); } return $aResult; }
protected function buildStep(core\argument $step) { $aResult = array('_alias' => $step->getName()); switch ($step->getName()) { case 'event': $aResult['name'] = $step->read('@name'); $aResult['element'] = $step->read('@element'); break; case 'input': $aResult['element'] = $step->read('@element'); $aResult['value'] = $step->read(); break; case 'watcher': $aResult['element'] = $step->read('@element'); $aResult['delay'] = $step->read('@delay', false); foreach ($step->query('property', false) as $property) { $aResult['property'][] = array('name' => $property->read('@name'), 'value' => $property->read()); } $this->loadVariable($step, $aResult); break; case 'snapshot': $aResult['element'] = $step->read('@element'); $aResult['content'] = $step->read('content', false); foreach ($step->query('exclude', false) as $exclude) { $aResult['excludes'][] = array('element' => $exclude->read('@element')); } break; case 'call': $aResult['path'] = $step->read('@path'); $aResult['get'] = $step->read('@method', false) === 'get'; $this->loadVariable($step, $aResult); break; case 'query': $aResult['value'] = $step->read(); $aResult['creation'] = $step->read('@creation'); $aResult['timeshift'] = $step->read('@timeshift', false); $aResult['connection'] = $step->read('@connection', false); break; } return $aResult; }