org.qtitools.qti.node.expression.general
Class Variable

java.lang.Object
  extended by org.qtitools.qti.node.AbstractNode
      extended by org.qtitools.qti.node.AbstractObject
          extended by org.qtitools.qti.node.expression.AbstractExpression
              extended by org.qtitools.qti.node.expression.general.LookupExpression
                  extended by org.qtitools.qti.node.expression.general.Variable
All Implemented Interfaces:
java.io.Serializable, Expression, ExpressionParent, XmlNode, XmlObject, Validatable

public class Variable
extends LookupExpression

This expression looks up the value of an itemVariable that has been declared in A corresponding variableDeclaration or is one of the built-in variables. The result has the base-type and cardinality declared for the variable subject to the type promotion of weighted outcomes (see below).

During outcomes processing, values taken from an individual item session can be looked up by prefixing the name of the item variable with the identifier assigned to the item in the assessmentItemRef, separated by A period character.

For example, to obtain the value of the SCORE variable in the item referred to as Q01 you would use A variable instance with identifier Q01.SCORE.

When looking up the value of A response variable it always takes the value assigned to it by the candidate's last submission. Unsubmitted responses are not available during expression evaluation.

The value of an item variable taken from an item instantiated multiple times from the same assessmentItemRef (through the use of selection withReplacement) is taken from the last instance submitted if submission is simultaneous, otherwise it is undefined.

Author:
Jiri Kajaba
See Also:
Cardinality, BaseType, Serialized Form

Field Summary
static java.lang.String ATTR_WEIGHT_IDENTIFIER_DEFAULT_VALUE
          Default value of weightIdentifier attribute.
static java.lang.String ATTR_WEIGHT_IDENTIFIER_NAME
          Name of weightIdentifier attribute in xml schema.
static java.lang.String CLASS_TAG
          Name of this class in xml schema.
 
Fields inherited from class org.qtitools.qti.node.expression.general.LookupExpression
ATTR_IDENTIFIER_NAME, IDENTIFIER_SEPARATOR
 
Fields inherited from class org.qtitools.qti.node.expression.AbstractExpression
logger
 
Fields inherited from interface org.qtitools.qti.node.expression.Expression
DISPLAY_NAME
 
Fields inherited from interface org.qtitools.qti.node.XmlNode
INDENT, NEW_LINE, SIMPLE_NAME_INNER_SEPARATOR, SIMPLE_NAMES_SEPARATOR
 
Constructor Summary
Variable(ExpressionParent parent)
          Constructs expression.
 
Method Summary
protected  Value evaluateSelf(int depth)
          Evaluates this expression.
 java.lang.String getClassTag()
          Gets QTI class name of this node.
 java.lang.String getWeightIdentifier()
          Gets value of weightIdentifier attribute.
 boolean isVariable()
          Returns true if value of evaluation can change every evaluation call; false otherwise.
 void setWeightIdentifier(java.lang.String weightIdentifier)
          Sets new value of weightIdentifier attribute.
 java.lang.String toString()
           
protected  ValidationResult validateAttributes()
          Validates attributes of this node.
 
Methods inherited from class org.qtitools.qti.node.expression.general.LookupExpression
getFirstPart, getIdentifier, getProducedBaseTypes, getProducedCardinalities, getSecondPart, hasMoreParts, isValid, lookupDeclaration, lookupDeclaration, setIdentifier
 
Methods inherited from class org.qtitools.qti.node.expression.AbstractExpression
evaluate, getBaseType, getCardinality, getChildren, getFirstChild, getParent, getParentRequiredBaseTypes, getParentRequiredCardinalities, getProducedNumericalBaseTypes, getRequiredBaseTypes, getRequiredCardinalities, getRequiredSameBaseTypes, getRequiredSameCardinalities, getSecondChild, getType, getValue, isAnyChildNull, isNull, reset, validate
 
Methods inherited from class org.qtitools.qti.node.AbstractObject
getParentItem, getParentResult, getParentTest, setParent
 
Methods inherited from class org.qtitools.qti.node.AbstractNode
attrToXmlString, bodyToXmlString, getAttributes, getFullName, getIndent, getNode, getNode, getNode, getNodeGroups, getParentRoot, getSimpleName, getSourceFile, getSourceNode, getSourceString, getSourceUrl, hasChildNodes, load, load, load, load, loadAttributes, readChild, readChildren, setParent, setSourceFile, setSourceNode, setSourceString, setSourceUrl, toXmlString, toXmlString, validateChildren
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.qtitools.qti.node.XmlObject
getParentItem, getParentResult, getParentTest, setParent
 
Methods inherited from interface org.qtitools.qti.node.XmlNode
getAttributes, getFullName, getNodeGroups, getParentRoot, getSimpleName, getSourceFile, getSourceNode, getSourceString, getSourceUrl, hasChildNodes, load, load, load, load, setSourceFile, setSourceNode, setSourceString, setSourceUrl, toXmlString, toXmlString
 

Field Detail

CLASS_TAG

public static final java.lang.String CLASS_TAG
Name of this class in xml schema.

See Also:
Constant Field Values

ATTR_WEIGHT_IDENTIFIER_NAME

public static final java.lang.String ATTR_WEIGHT_IDENTIFIER_NAME
Name of weightIdentifier attribute in xml schema.

See Also:
Constant Field Values

ATTR_WEIGHT_IDENTIFIER_DEFAULT_VALUE

public static final java.lang.String ATTR_WEIGHT_IDENTIFIER_DEFAULT_VALUE
Default value of weightIdentifier attribute.

Constructor Detail

Variable

public Variable(ExpressionParent parent)
Constructs expression.

Parameters:
parent - parent of this expression
Method Detail

getClassTag

public java.lang.String getClassTag()
Description copied from interface: XmlNode
Gets QTI class name of this node.

QTI class name has very important role during loading/saving nodes.

For example: Java class name is AssessmentTest; QTI class name is assessmentTest.

Specified by:
getClassTag in interface XmlNode
Specified by:
getClassTag in class AbstractNode
Returns:
QTI class name of this node

isVariable

public boolean isVariable()
Description copied from interface: Expression
Returns true if value of evaluation can change every evaluation call; false otherwise. It checks this expression and all of its children (if any child is variable, this expression becomes variable too). Example of variable expressions: variable and outcome expressions.

Specified by:
isVariable in interface Expression
Overrides:
isVariable in class LookupExpression
Returns:
true if value of evaluation can change every evaluation call; false otherwise

getWeightIdentifier

public java.lang.String getWeightIdentifier()
Gets value of weightIdentifier attribute.

Returns:
value of weightIdentifier attribute
See Also:
setWeightIdentifier(java.lang.String)

setWeightIdentifier

public void setWeightIdentifier(java.lang.String weightIdentifier)
Sets new value of weightIdentifier attribute.

Parameters:
weightIdentifier - new value of weightIdentifier attribute
See Also:
getWeightIdentifier()

validateAttributes

protected ValidationResult validateAttributes()
Description copied from class: AbstractNode
Validates attributes of this node.

Overrides:
validateAttributes in class AbstractNode
Returns:
result of validation

evaluateSelf

protected Value evaluateSelf(int depth)
Description copied from class: AbstractExpression
Evaluates this expression. All children must be already evaluated. Contains no checks.

Specified by:
evaluateSelf in class AbstractExpression
Parameters:
depth - depth of this expression in expression tree (root's depth = 0)
Returns:
result of evaluation

toString

public java.lang.String toString()
Overrides:
toString in class AbstractExpression


Copyright © 2009. All Rights Reserved.