|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.qtitools.qti.node.AbstractNode
org.qtitools.qti.node.AbstractObject
org.qtitools.qti.node.expression.AbstractExpression
org.qtitools.qti.node.expression.operator.Multiple
public class Multiple
The multiple operator takes 0 or more sub-expressions all of which must have either single or multiple cardinality. Although the sub-expressions may be of any base-type they must all be of the same base-type. The result is A container with multiple cardinality containing the values of the sub-expressions, sub-expressions with multiple cardinality have their individual values added to the result: containers cannot contain other containers.
For example, when applied to A, B and {C,D} the multiple operator results in {A,B,C,D}.
All sub-expressions with NULL values are ignored. If no sub-expressions are given (or all are NULL) then the result is NULL.
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 | |
|---|---|
Multiple(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[] |
getProducedBaseTypes()
Gets list of all possible produced baseTypes after evaluation (possible baseTypes of evaluated result). |
BaseType[] |
getRequiredBaseTypes(int index)
Gets list of all acceptable baseTypes which can child expression at given position produce. |
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, getProducedCardinalities, getProducedNumericalBaseTypes, 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, validateAttributes |
| 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 |
|---|
public static final java.lang.String CLASS_TAG
| Constructor Detail |
|---|
public Multiple(ExpressionParent parent)
parent - parent of this expression| Method Detail |
|---|
public java.lang.String getClassTag()
XmlNodeQTI class name has very important role during loading/saving nodes.
For example: Java class name is AssessmentTest; QTI class name is assessmentTest.
getClassTag in interface XmlNodegetClassTag in class AbstractNodepublic BaseType[] getRequiredBaseTypes(int index)
ExpressionParentResult 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.
getRequiredBaseTypes in interface ExpressionParentgetRequiredBaseTypes in class AbstractExpressionindex - position of child expression in this parent
public BaseType[] getProducedBaseTypes()
ExpressionStatic example is expression or. Expression or can produce only boolean baseType and it cannot change.
Dynamic example is expression variable. Expression variable can produce any baseType before evaluation. After evaluation it produces baseType of its result (and it can change every evaluation call!).
Null expression, empty containers (multiple, ordered, record), or NULL values produces all baseTypes. So they are compatible with anything.
getProducedBaseTypes in interface ExpressiongetProducedBaseTypes in class AbstractExpressionprotected ValidationResult validateChildren()
AbstractNode
validateChildren in class AbstractNodeprotected Value evaluateSelf(int depth)
AbstractExpression
evaluateSelf in class AbstractExpressiondepth - depth of this expression in expression tree (root's depth = 0)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||