/** * Marshall a ResponseProcessing object into a DOMElement object. * * @param \qtism\data\QtiComponent $component A ResponseProcessing object. * @return \DOMElement The according DOMElement object. * @throws \qtism\data\storage\xml\marshalling\MarshallingException */ protected function marshall(QtiComponent $component) { $element = self::getDOMCradle()->createElement($component->getQtiClassName()); if ($component->hasTemplate() === true) { self::setDOMElementAttribute($element, 'template', $component->getTemplate()); } if ($component->hasTemplateLocation() === true) { self::setDOMElementAttribute($element, 'templateLocation', $component->getTemplateLocation()); } foreach ($component->getResponseRules() as $responseRule) { $marshaller = $this->getMarshallerFactory()->createMarshaller($responseRule); $element->appendChild($marshaller->marshall($responseRule)); } return $element; }
/** * @see \qtism\data\storage\xml\marshalling\RecursiveMarshaller::getChildrenComponents() */ protected function getChildrenComponents(QtiComponent $component) { return $component->getResponseRules()->getArrayCopy(); }
/** * @see \qtism\data\storage\xml\marshalling\RecursiveMarshaller::getChildrenComponents() */ protected function getChildrenComponents(QtiComponent $component) { if ($component instanceof ResponseIf || $component instanceof ResponseElseIf || $component instanceof ResponseElse) { // ResponseControl return $component->getResponseRules()->getArrayCopy(); } else { // ResponseCondition $returnValue = array($component->getResponseIf()); if (count($component->getResponseElseIfs()) > 0) { $returnValue = array_merge($returnValue, $component->getResponseElseIfs()->getArrayCopy()); } if ($component->getResponseElse() !== null) { $returnValue[] = $component->getResponseElse(); } return $returnValue; } }