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

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

public class Contains
extends AbstractExpression

The contains operator takes two sub-expressions which must both have the same base-type and cardinality — either multiple or ordered. The result is A single boolean with A value of true if the container given by the first sub-expression contains the value given by the second sub-expression and false if it doesn't. Note that the contains operator works differently depending on the cardinality of the two sub-expressions.

For unordered containers the values are compared without regard for ordering, for example, [A,B,C] contains [C,A]. Note that [A,B,C] does not contain [B,B] but that [A,B,B,C] does.

For ordered containers the second sub-expression must be A strict sub-sequence within the first. In other words, [A,B,C] does not contain [C,A] but it does contain [B,C].

If either sub-expression is NULL then the result of the operator is NULL.

Like the member operator, the contains operator should not be used on sub-expressions with A base-type of float and must not be used on sub-expressions with A base-type of duration.

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

Field Summary
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
Contains(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.
 BaseType[] getRequiredBaseTypes(int index)
          Gets list of all acceptable baseTypes which can child expression at given position produce.
 Cardinality[] getRequiredCardinalities(int index)
          Gets list of all acceptable cardinalities which can child expression at given position produce.
 
Methods inherited from class org.qtitools.qti.node.expression.AbstractExpression
evaluate, getBaseType, getCardinality, getChildren, getFirstChild, getParent, getParentRequiredBaseTypes, getParentRequiredCardinalities, getProducedBaseTypes, getProducedCardinalities, getProducedNumericalBaseTypes, 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, validateAttributes, 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
Constructor Detail

Contains

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

getRequiredCardinalities

public Cardinality[] getRequiredCardinalities(int index)
Description copied from interface: ExpressionParent
Gets list of all acceptable cardinalities which can child expression at given position produce.

For example delete expression returns single cardinality for index 0 and list of multiple and ordered cardinality for index 1.

Result of this method can change in time.

Static example is expression or. Expression or accepts only single cardinality for any index.

Dynamic example is expression match. Expression match accepts any cardinality of its children, but this cardinality must be same for all its children.

Specified by:
getRequiredCardinalities in interface ExpressionParent
Overrides:
getRequiredCardinalities in class AbstractExpression
Parameters:
index - position of child expression in this parent
Returns:
list of all possible cardinalities which can child expression at given position produce

getRequiredBaseTypes

public BaseType[] getRequiredBaseTypes(int index)
Description copied from interface: ExpressionParent
Gets list of all acceptable baseTypes which can child expression at given position produce.

Result of this method can change in time.

Static example is expression or. Expression or accepts only boolean baseType for any index.

Dynamic example is expression match. Expression match accepts any baseType of its children. but this baseType must be same for all its children.

Specified by:
getRequiredBaseTypes in interface ExpressionParent
Overrides:
getRequiredBaseTypes in class AbstractExpression
Parameters:
index - position of child expression in this parent
Returns:
list of all acceptable baseTypes which can child expression at given position produce

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.