Search in sources :

Example 11 with RecordValue

use of uk.ac.ed.ph.jqtiplus.value.RecordValue in project openolat by klemens.

the class QTI21ServiceImpl method stringifyQtiValue.

private String stringifyQtiValue(final Value value) {
    if (qtiModule.isMathAssessExtensionEnabled() && GlueValueBinder.isMathsContentRecord(value)) {
        /* This is a special MathAssess "Maths Content" variable. In this case, we'll record
             * just the ASCIIMath input form or the Maxima form, if either are available.
             */
        final RecordValue mathsValue = (RecordValue) value;
        final SingleValue asciiMathInput = mathsValue.get(MathAssessConstants.FIELD_CANDIDATE_INPUT_IDENTIFIER);
        if (asciiMathInput != null) {
            return "ASCIIMath[" + asciiMathInput.toQtiString() + "]";
        }
        final SingleValue maximaForm = mathsValue.get(MathAssessConstants.FIELD_MAXIMA_IDENTIFIER);
        if (maximaForm != null) {
            return "Maxima[" + maximaForm.toQtiString() + "]";
        }
    }
    /* Just convert to QTI string in the usual way */
    return value.toQtiString();
}
Also used : SingleValue(uk.ac.ed.ph.jqtiplus.value.SingleValue) RecordValue(uk.ac.ed.ph.jqtiplus.value.RecordValue)

Example 12 with RecordValue

use of uk.ac.ed.ph.jqtiplus.value.RecordValue in project openolat by klemens.

the class AssessmentRenderFunctions method extractRecordFieldValue.

/*
  <xsl:function name="qw:extract-record-field-value" as="xs:string?">
    <xsl:param name="valueHolder" as="element()"/>
    <xsl:param name="fieldName" as="xs:string"/>
    <xsl:choose>
      <xsl:when test="qw:is-record-cardinality-value($valueHolder)">
        <xsl:value-of select="$valueHolder/qw:value[@fieldIdentifier=$fieldName]"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:message terminate="yes">
          Expected value <xsl:copy-of select="$valueHolder"/> to have record
          cardinalty.
        </xsl:message>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:function>
	 */
public static SingleValue extractRecordFieldValue(Value value, Identifier identifier) {
    SingleValue mappedValue = null;
    if (value != null && identifier != null && value.hasCardinality(Cardinality.RECORD)) {
        RecordValue recordValue = (RecordValue) value;
        mappedValue = recordValue.get(identifier);
    }
    return mappedValue;
}
Also used : SingleValue(uk.ac.ed.ph.jqtiplus.value.SingleValue) RecordValue(uk.ac.ed.ph.jqtiplus.value.RecordValue)

Aggregations

RecordValue (uk.ac.ed.ph.jqtiplus.value.RecordValue)12 SingleValue (uk.ac.ed.ph.jqtiplus.value.SingleValue)12 Identifier (uk.ac.ed.ph.jqtiplus.types.Identifier)8 Map (java.util.Map)6 StringValue (uk.ac.ed.ph.jqtiplus.value.StringValue)2