예제 #1
0
 /**
  * @see \qtism\data\storage\xml\marshalling\OperatorMarshaller::marshallChildrenKnown()
  */
 protected function marshallChildrenKnown(QtiComponent $component, array $elements)
 {
     $element = self::getDOMCradle()->createElement($component->getQtiClassName());
     self::setDOMElementAttribute($element, 'toleranceMode', ToleranceMode::getNameByConstant($component->getToleranceMode()));
     $tolerance = $component->getTolerance();
     if (!empty($tolerance)) {
         self::setDOMElementAttribute($element, 'tolerance', implode(" ", $tolerance));
     }
     if ($component->doesIncludeLowerBound() === false) {
         self::setDOMElementAttribute($element, 'includeLowerBound', false);
     }
     if ($component->doesIncludeUpperBound() === false) {
         self::setDOMElementAttribute($element, 'includeUpperBound', false);
     }
     foreach ($elements as $elt) {
         $element->appendChild($elt);
     }
     return $element;
 }
예제 #2
0
    public function createFakeExpression($toleranceMode, array $tolerance = array(), $includeLowerBound = true, $includeUpperBound = true)
    {
        $tm = $toleranceMode != ToleranceMode::EXACT ? 'tolerance="' . implode(' ', $tolerance) . '"' : '';
        $toleranceMode = ToleranceMode::getNameByConstant($toleranceMode);
        $iL = $includeLowerBound === true ? 'true' : 'false';
        $iU = $includeUpperBound === true ? 'true' : 'false';
        $str = '
			<equal toleranceMode="' . $toleranceMode . '" ' . $tm . ' includeLowerBound="' . $iL . '" includeUpperBound="' . $iU . '">
				<baseValue baseType="integer">10</baseValue>
				<baseValue baseType="integer">10</baseValue>
			</equal>
		';
        return $this->createComponentFromXml($str);
    }