Ejemplo n.º 1
0
 /**
  * Marshall a Shuffling object into a DOMElement object.
  *
  * @param \qtism\data\QtiComponent $component A Shuffling object.
  * @return \DOMElement The according DOMElement object.
  */
 protected function marshall(QtiComponent $component)
 {
     $element = static::getDOMCradle()->createElement($component->getQtiClassName());
     self::setDOMElementAttribute($element, 'responseIdentifier', $component->getResponseIdentifier());
     foreach ($component->getShufflingGroups() as $shufflingGroup) {
         $marshaller = $this->getMarshallerFactory()->createMarshaller($shufflingGroup);
         $element->appendChild($marshaller->marshall($shufflingGroup));
     }
     return $element;
 }
 /**
  * Marshall an PositionObjectInteraction object into a DOMElement object.
  * 
  * @param QtiComponent $component A PositionObjectInteraction object.
  * @return DOMElement The according DOMElement object.
  * @throws MarshallingException
  */
 protected function marshall(QtiComponent $component)
 {
     $element = self::getDOMCradle()->createElement('positionObjectInteraction');
     $element->appendChild($this->getMarshallerFactory()->createMarshaller($component->getObject())->marshall($component->getObject()));
     self::setDOMElementAttribute($element, 'responseIdentifier', $component->getResponseIdentifier());
     self::setDOMElementAttribute($element, 'maxChoices', $component->getMaxChoices());
     if ($component->hasMinChoices() === true) {
         self::setDOMElementAttribute($element, 'minChoices', $component->getMinChoices());
     }
     if ($component->hasCenterPoint() === true) {
         $centerPoint = $component->getCenterPoint();
         self::setDOMElementAttribute($element, 'centerPoint', $centerPoint->getX() . " " . $centerPoint->getY());
     }
     self::fillElement($element, $component);
     return $element;
 }
Ejemplo n.º 3
0
 /**
  * Marshall a TextEntryInteraction/ExtendedTextInteraction object into a DOMElement object.
  *
  * @param \qtism\data\QtiComponent $component A TextEntryInteraction/ExtendedTextInteraction 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());
     $version = $this->getVersion();
     self::setDOMElementAttribute($element, 'responseIdentifier', $component->getResponseIdentifier());
     if ($component->getBase() !== 10) {
         self::setDOMElementAttribute($element, 'base', $component->getBase());
     }
     if ($component->hasStringIdentifier() === true) {
         self::setDOMElementAttribute($element, 'stringIdentifier', $component->getStringIdentifier());
     }
     if ($component->hasExpectedLength() === true) {
         self::setDOMElementAttribute($element, 'expectedLength', $component->getExpectedLength());
     }
     if ($component->hasPatternMask() === true) {
         self::setDOMElementAttribute($element, 'patternMask', $component->getPatternMask());
     }
     if ($component->hasPlaceholderText() === true) {
         self::setDOMElementAttribute($element, 'placeholderText', $component->getPlaceholderText());
     }
     if ($component->hasXmlBase() === true) {
         self::setXmlBase($element, $component->setXmlBase());
     }
     if ($element->localName === 'extendedTextInteraction') {
         if ($component->hasMaxStrings() === true) {
             self::setDOMElementAttribute($element, 'maxStrings', $component->getMaxStrings());
         }
         if (Version::compare($version, '2.1.0', '>=') === true && $component->getMinStrings() !== 0) {
             self::setDOMElementAttribute($element, 'minStrings', $component->getMinStrings());
         }
         if ($component->hasExpectedLines() === true) {
             self::setDOMElementAttribute($element, 'expectedLines', $component->getExpectedLines());
         }
         if (Version::compare($version, '2.1.0', '>=') === true && $component->getFormat() !== TextFormat::PLAIN) {
             self::setDOMElementAttribute($element, 'format', TextFormat::getNameByConstant($component->getFormat()));
         }
         if ($component->hasPrompt() === true) {
             $element->appendChild($this->getMarshallerFactory()->createMarshaller($component->getPrompt())->marshall($component->getPrompt()));
         }
     }
     $this->fillElement($element, $component);
     return $element;
 }