org.problets.domain.model.expression.node.operator.relational
Class Relational
java.lang.Object
org.problets.domain.model.DomainModel
org.problets.domain.model.expression.node.NodeModel
org.problets.domain.model.expression.node.operator.Operator
org.problets.domain.model.expression.node.operator.relational.Relational
- All Implemented Interfaces:
- java.lang.Cloneable
- Direct Known Subclasses:
- Equals, GreaterEquals, GreaterThan, LessEquals, LessThan, NotEquals
public class Relational
- extends Operator
To hold all constants specific to relational operators
- Author:
- Amruth Kumar
Fields inherited from class org.problets.domain.model.DomainModel |
BOOLEAN, BREAKPOINT, CHARACTER, DOUBLE_PRECISION_REAL, ERROR_TYPE, EVAL_STATUS, expACTION, expASSIGNMENT, expAUTO_DEALLOCATION, expCALL, expCONDITION, expDECLARATION, expDEREFERENCING, expDYNAMIC_ALLOCATION, expDYNAMIC_ALLOCATION_INITIALIZATION, expDYNAMIC_DEALLOCATION, expELSE_CLAUSE, expERROR, expEXECUTION, expIF_CLAUSE, expINITIALIZATION, expINPUT, expPARAMETER_PASSING, expPRINT, expQUESTIONABLE, expREFERENCING, expRETURN, expRUNTIME_ERROR, expSEMANTIC_ERROR, expSYNTAX_ERROR, expUPDATE, IDENTITY, MAX_OBJECT_IDENTITY, MIN_OBJECT_IDENTITY, QUADRUPLE_PRECISION_REAL, RUNTIME_ERROR, SEMANTIC_ERROR, SIGNED_INTEGER, SIGNED_LONG, SIGNED_SHORT, SINGLE_PRECISION_REAL, SYNTAX_ERROR, UNDEFINED_TYPE, UNSIGNED_INTEGER, UNSIGNED_LONG, UNSIGNED_SHORT, WARNING |
Method Summary |
Value |
evaluate()
In Java/C#,
<, <=, >, and >= cannot be applied to boolean operands. |
void |
explain(java.util.Vector explanation,
java.util.Vector errors)
Textually explains the evaluation of the tree -
as opposed to graphical explanation by the view |
java.lang.String |
getQualifiedLearningObject()
Method returns the name of the operator, disambiguated enough so that
it can be easily credited in the student model. |
Methods inherited from class org.problets.domain.model.expression.node.operator.Operator |
clone, coerceToReal, contentEquals, contentEquals, getArity, getAssociativity, getLocalLearningObjectives, getOperatorType, getPrecedence, getStudentCopy, getSymbol, grade, locateOperator, main, recursiveContentEquals, recursiveSetValue |
Methods inherited from class org.problets.domain.model.expression.node.NodeModel |
classifyNodes, getContent, getLeftChild, getNonRecursiveContent, getOrder, getPosition, getRecursiveContent, getRightChild, getSideEffects, getValue, insertInOrder, setLeftChild, setOrder, setPosition, setRightChild, setValue, shortCircuit, skip, subExpToString, toString, valueEquals |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
TOTAL_OPERATORS
public static final int TOTAL_OPERATORS
- See Also:
- Constant Field Values
MIXED_OPERANDS
public static final java.lang.String MIXED_OPERANDS
- See Also:
- Constant Field Values
getQualifiedLearningObject
public java.lang.String getQualifiedLearningObject()
- Method returns the name of the operator, disambiguated enough so that
it can be easily credited in the student model.
- Overrides:
getQualifiedLearningObject
in class Operator
evaluate
public Value evaluate()
- In Java/C#,
<, <=, >, and >= cannot be applied to boolean operands.
== and != can be applied as long as both the operands are boolean.
This is being handled here in one shot for all the relational operators
although this code could be moved into the 6 different classes for true object-orientation.
- Overrides:
evaluate
in class Operator
explain
public void explain(java.util.Vector explanation,
java.util.Vector errors)
- Textually explains the evaluation of the tree -
as opposed to graphical explanation by the view
- Overrides:
explain
in class Operator