/**
  * 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;
     }
 }