org.problets.domain.model.expression.node.operator.logical
Class Not

java.lang.Object
  extended by org.problets.domain.model.DomainModel
      extended by org.problets.domain.model.expression.node.NodeModel
          extended by org.problets.domain.model.expression.node.operator.Operator
              extended by org.problets.domain.model.expression.node.operator.logical.Logical
                  extended by org.problets.domain.model.expression.node.operator.logical.Not
All Implemented Interfaces:
java.lang.Cloneable

public class Not
extends Logical

To represent not operator

Author:
Joshua Go, Amruth Kumar

Field Summary
static java.lang.String OPERATOR_INAPPLICABLE
           
static java.lang.String SYMBOL
           
 
Fields inherited from class org.problets.domain.model.expression.node.operator.logical.Logical
TOTAL_OPERATORS
 
Fields inherited from class org.problets.domain.model.expression.node.operator.Operator
INCORRECT_OPERAND_COUNT
 
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
 
Constructor Summary
Not()
           
 
Method Summary
 Value evaluate()
          Method to detect any errors before subclasses evaluate expressions Not to be used by client.
 void explain(java.util.Vector explanation, java.util.Vector errors)
          Textually explains the evaluation of the subexpression - as opposed to graphical explanation by the view
 void getLocalLearningObjectives(java.util.Vector learnObjVector)
          Overrides Operator.getLocalLearningObjectives() Accounts for: Incorrect data type error for Java/C#, and Correct evaluation (Boolean/Other) for Not operator
 
Methods inherited from class org.problets.domain.model.expression.node.operator.logical.Logical
getQualifiedLearningObject, shouldAddRightExplanation
 
Methods inherited from class org.problets.domain.model.expression.node.operator.Operator
clone, coerceToReal, contentEquals, contentEquals, getArity, getAssociativity, 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 org.problets.domain.model.DomainModel
getId, getIdName, grade
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SYMBOL

public static final java.lang.String SYMBOL
See Also:
Constant Field Values

OPERATOR_INAPPLICABLE

public static final java.lang.String OPERATOR_INAPPLICABLE
See Also:
Constant Field Values
Constructor Detail

Not

public Not()
Method Detail

getLocalLearningObjectives

public void getLocalLearningObjectives(java.util.Vector learnObjVector)
Overrides Operator.getLocalLearningObjectives() Accounts for: Incorrect data type error for Java/C#, and Correct evaluation (Boolean/Other) for Not operator

Overrides:
getLocalLearningObjectives in class Operator

evaluate

public Value evaluate()
Description copied from class: Operator
Method to detect any errors before subclasses evaluate expressions Not to be used by client. Checks if both operands are valid Inherited by all except assignment and boolean operators

Overrides:
evaluate in class Operator

explain

public void explain(java.util.Vector explanation,
                    java.util.Vector errors)
Textually explains the evaluation of the subexpression - as opposed to graphical explanation by the view

Overrides:
explain in class Operator