@Override public String toDomAttributeValue(final ComplexReferenceIdentifier value) { return value.toString(); } }
@Override public final VariableDeclaration isValidLocalVariableReference(final ComplexReferenceIdentifier variableReferenceIdentifier) { if (variableReferenceIdentifier.isDotted()) { return null; } return isValidLocalVariableReference(Identifier.assumedLegal(variableReferenceIdentifier.toString())); }
@Override public final VariableDeclaration checkLocalVariableReference(final QtiNode owner, final ComplexReferenceIdentifier variableReferenceIdentifier) { if (variableReferenceIdentifier.isDotted()) { fireValidationWarning(owner, "Variable references containing period (.) characters cannot be used here"); return null; } return checkLocalVariableReference(owner, Identifier.assumedLegal(variableReferenceIdentifier.toString())); }
@Override protected final Value evaluateValidSelf(final ProcessingContext context, final Value[] childValues, final int depth) { logger.debug("{}Evaluation of expression {} on variable {} started.", new Object[] { formatIndent(depth), getQtiClassName(), getIdentifier() }); final ComplexReferenceIdentifier referenceIdentifier = getIdentifier(); Value result; if (context.isSubjectItem()) { /* Variable reference within item */ final ItemProcessingContext itemProcessingContext = (ItemProcessingContext) context; result = evaluateInThisItem(itemProcessingContext, Identifier.assumedLegal(referenceIdentifier.toString())); } else { /* Variable reference in test */ final TestProcessingContext testProcessingContext = (TestProcessingContext) context; result = testProcessingContext.dereferenceVariable(this, referenceIdentifier, this); } return result; }
final String[] components = variableReferenceIdentifier.toString().split("\\."); if (components.length==1) {