|
||||||||||
| 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.CustomOperator
public class CustomOperator
The custom operator provides an extension mechanism for defining operations not currently supported by this specification.
use the class attr to point to A java class (fully qualified) that implements Expression (and possibly extends AbstractExpression). If you do extend AbstractExpression, set the CLASS_TAG to "customOperator", or override relevant methods required for validation that might call getType() to stop unsupportedExpression exceptions at runtime.
| Field Summary | |
|---|---|
static java.lang.String |
ATTR_CLASS_NAME
Name of the class attribute in xml schema. |
static java.lang.String |
ATTR_DEFINITION_NAME
Name of the definition 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 | |
|---|---|
CustomOperator(ExpressionParent parent)
Constructs expression. |
|
| Method Summary | |
|---|---|
protected Value |
evaluateSelf(int depth)
Evaluates this expression. |
java.lang.String |
getClassAttr()
Gets value of class attribute. |
java.lang.String |
getClassTag()
Gets QTI class name of this node. |
java.lang.String |
getDefinition()
Gets value of definition attribute. |
BaseType[] |
getProducedBaseTypes()
Gets list of all possible produced baseTypes after evaluation (possible baseTypes of evaluated result). |
Cardinality[] |
getProducedCardinalities()
Gets list of all possible produced cardinalities after evaluation (possible cardinalities of evaluated result). |
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. |
protected void |
loadAttributes(org.w3c.dom.Node node)
Loads all attributes from given xml source. |
void |
setClassAttr(java.lang.String name)
Sets value of class attribute. |
void |
setDefinition(java.lang.String name)
Sets value of definition attribute. |
ValidationResult |
validate()
Validates this object. |
| Methods inherited from class org.qtitools.qti.node.expression.AbstractExpression |
|---|
evaluate, getBaseType, getCardinality, getChildren, getFirstChild, getParent, getParentRequiredBaseTypes, getParentRequiredCardinalities, getProducedNumericalBaseTypes, getRequiredSameBaseTypes, getRequiredSameCardinalities, getSecondChild, getType, getValue, isAnyChildNull, isNull, isVariable, reset, toString |
| 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, 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 |
|---|
public static final java.lang.String CLASS_TAG
public static final java.lang.String ATTR_CLASS_NAME
public static final java.lang.String ATTR_DEFINITION_NAME
| Constructor Detail |
|---|
public CustomOperator(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 java.lang.String getClassAttr()
public void setClassAttr(java.lang.String name)
public java.lang.String getDefinition()
public void setDefinition(java.lang.String name)
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 AbstractExpressionpublic Cardinality[] getProducedCardinalities()
ExpressionStatic example is expression or. Expression or can produce only single cardinality and it cannot change.
Dynamic example is expression variable. Expression variable can produce any cardinality before evaluation. After evaluation it produces cardinality of its result (and it can change every evaluation call!).
Null expression, empty containers (multiple, ordered, record), or NULL values produces all cardinalities. So they are compatible with anything.
getProducedCardinalities in interface ExpressiongetProducedCardinalities in class AbstractExpressionpublic 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 Cardinality[] getRequiredCardinalities(int index)
ExpressionParentFor 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.
getRequiredCardinalities in interface ExpressionParentgetRequiredCardinalities in class AbstractExpressionindex - position of child expression in this parent
protected Value evaluateSelf(int depth)
AbstractExpression
evaluateSelf in class AbstractExpressiondepth - depth of this expression in expression tree (root's depth = 0)
public ValidationResult validate()
Validatable
validate in interface Validatablevalidate in class AbstractExpressionprotected void loadAttributes(org.w3c.dom.Node node)
AbstractNode
loadAttributes in class AbstractNodenode - xml source
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||