org.qtitools.qti.node.expression.operator
Class RecordEx

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.operator.RecordEx
All Implemented Interfaces:
java.io.Serializable, Expression, ExpressionParent, XmlNode, XmlObject, Validatable

public class RecordEx
extends AbstractExpression

The record operator takes 0 or more single sub-expressions of any base-type. The result is A container with record cardinality containing the values of the sub-expressions.

All sub-expressions with NULL values are ignored. If no sub-expressions are given (or all are NULL) then the result is NULL.

This operator is not in specification, but it is needed for testing and to allow implementation of other expressions (for example fieldValue).

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

Field Summary
static java.util.List<java.lang.String> ATTR_IDENTIFIERS_DEFAULT_VALUE
          Default value of identifiers attribute.
static java.lang.String ATTR_IDENTIFIERS_NAME
          Name of identifiers 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.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
RecordEx(ExpressionParent parent)
          Constructs expression.
 
Method Summary
protected  Value evaluateSelf(int depth)
          Evaluates this expression.
 Expression getChild(java.lang.String identifier)
          Gets child of this expression with given identifier or null.
 java.lang.String getClassTag()
          Gets QTI class name of this node.
 java.util.List<java.lang.String> getIdentifiers()
          Gets value of identifiers attribute.
protected  ValidationResult validateAttributes()
          Validates attributes of this node.
protected  ValidationResult validateChildren()
          Validates children (body) of this node.
 
Methods inherited from class org.qtitools.qti.node.expression.AbstractExpression
evaluate, getBaseType, getCardinality, getChildren, getFirstChild, getParent, getParentRequiredBaseTypes, getParentRequiredCardinalities, getProducedBaseTypes, getProducedCardinalities, getProducedNumericalBaseTypes, getRequiredBaseTypes, getRequiredCardinalities, getRequiredSameBaseTypes, getRequiredSameCardinalities, getSecondChild, getType, getValue, isAnyChildNull, isNull, isVariable, reset, toString, 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
 
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_IDENTIFIERS_NAME

public static final java.lang.String ATTR_IDENTIFIERS_NAME
Name of identifiers attribute in xml schema.

See Also:
Constant Field Values

ATTR_IDENTIFIERS_DEFAULT_VALUE

public static final java.util.List<java.lang.String> ATTR_IDENTIFIERS_DEFAULT_VALUE
Default value of identifiers attribute.

Constructor Detail

RecordEx

public RecordEx(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

getIdentifiers

public java.util.List<java.lang.String> getIdentifiers()
Gets value of identifiers attribute.

Returns:
value of identifiers attribute

getChild

public Expression getChild(java.lang.String identifier)
Gets child of this expression with given identifier or null. Identifier is not part of child, but this expression.

Parameters:
identifier - identifier of child
Returns:
Gets child of this expression with given name or null

validateAttributes

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

Overrides:
validateAttributes in class AbstractNode
Returns:
result of validation

validateChildren

protected ValidationResult validateChildren()
Description copied from class: AbstractNode
Validates children (body) of this node.

Overrides:
validateChildren 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


Copyright © 2009. All Rights Reserved.