org.objectweb.medor.expression.lib
Class BasicComparator

java.lang.Object
  extended byorg.objectweb.medor.clone.lib.BasicCloneable
      extended byorg.objectweb.medor.expression.lib.BasicExpression
          extended byorg.objectweb.medor.expression.lib.BasicOperator
              extended byorg.objectweb.medor.expression.lib.BasicBinaryOperator
                  extended byorg.objectweb.medor.expression.lib.BasicComparator
All Implemented Interfaces:
BinaryOperator, org.objectweb.medor.clone.api.Cloneable, java.lang.Cloneable, Comparator, Expression, Operator, java.io.Serializable
Direct Known Subclasses:
Equal, Greater, GreaterEqual, Lower, LowerEqual, NotEqual

public abstract class BasicComparator
extends BasicBinaryOperator
implements Comparator

Author:
Sebastien Chassande-Barrioz
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.objectweb.medor.expression.lib.BasicOperator
expressions, result, verified
 
Fields inherited from class org.objectweb.medor.expression.lib.BasicExpression
logger, type
 
Fields inherited from interface org.objectweb.medor.expression.api.Operator
ABS, AND, AVG, BITWIZE, CONCAT, CONDAND, CONDOR, COUNT, DIV, EQUAL, FIRSTLOCATE, GREATER, GREATEREQUAL, IN, INDEXEDLOCATE, LENGTH, LOWER, LOWEREQUAL, MAX, MEMBEROF, MIN, MINUS, MOD, MULT, NAV, NOT, NOTEQUAL, NOTMEMBEROF, OR, PLUS, SQRT, STRING_LOWER, STRING_UPPER, SUBSTRING, SUM, UMINUS
 
Constructor Summary
BasicComparator()
           
BasicComparator(Expression e0, Expression e1)
           
 
Method Summary
 Operand compileExpression()
          Checks the semantic integrity of an expression.
abstract  boolean evaluate(boolean op1, boolean op2)
          This fonction evaluate the comaparison between two boolean variable;
abstract  boolean evaluate(char op1, char op2)
          This fonction evaluate the comaparison between two characters variable;
abstract  boolean evaluate(double op1, double op2)
          This fonction evaluate the comaparison between two double variable;
abstract  boolean evaluate(double op1, float op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(double op1, int op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(double op1, long op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(double op1, short op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(float op1, double op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(float op1, float op2)
          This fonction evaluate the comaparison between two floats variables;
abstract  boolean evaluate(float op1, int op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(float op1, long op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(float op1, short op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(int op1, double op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(int op1, float op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(int op1, int op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(int op1, long op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(int op1, short op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(long op1, double op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(long op1, float op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  boolean evaluate(long op1, long op2)
          This fonction evaluate the comaparison between two long variable;
abstract  boolean evaluate(java.lang.Object op1, java.lang.Object op2)
          This fonction evaluate the comaparison between two java Object ;
 Operand evaluate(ParameterOperand[] pos, java.lang.Object o)
          We supose that the comparisons can be performed between all types.
abstract  boolean evaluate(java.lang.String op1, java.lang.String op2)
          This fonction evaluate the comaparison between two string variable;
 
Methods inherited from class org.objectweb.medor.expression.lib.BasicBinaryOperator
getLeftExpression, getRightExpression, setLeftExpression, setRightExpression
 
Methods inherited from class org.objectweb.medor.expression.lib.BasicOperator
checkOperands, clone, compileOperands, getExpression, getOperandNumber, setExpression
 
Methods inherited from class org.objectweb.medor.expression.lib.BasicExpression
getType
 
Methods inherited from class org.objectweb.medor.clone.lib.BasicCloneable
clone, clone, getClone
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.medor.expression.api.Comparator
evaluate, evaluate
 
Methods inherited from interface org.objectweb.medor.expression.api.BinaryOperator
getLeftExpression, getRightExpression, setLeftExpression, setRightExpression
 
Methods inherited from interface org.objectweb.medor.expression.api.Operator
getExpression, getOperandNumber, getOperatorString, setExpression
 
Methods inherited from interface org.objectweb.medor.expression.api.Expression
getType
 
Methods inherited from interface org.objectweb.medor.clone.api.Cloneable
clone
 

Constructor Detail

BasicComparator

public BasicComparator()

BasicComparator

public BasicComparator(Expression e0,
                       Expression e1)
Method Detail

evaluate

public Operand evaluate(ParameterOperand[] pos,
                        java.lang.Object o)
                 throws ExpressionException
We supose that the comparisons can be performed between all types.

Specified by:
evaluate in interface Expression
Parameters:
pos - a list of ParameterOperand
o - the input Object from which values are taken for the evaluation
Returns:
an Operand containing the result of the evaluation
Throws:
ExpressionException

evaluate

public abstract boolean evaluate(java.lang.Object op1,
                                 java.lang.Object op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two java Object ;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - Object
op2 - Object
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(int op1,
                                 int op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - int
op2 - int
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(int op1,
                                 short op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - int
op2 - short
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(int op1,
                                 long op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - int
op2 - long
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(int op1,
                                 float op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - int
op2 - float
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(int op1,
                                 double op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - int
op2 - double
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(float op1,
                                 float op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two floats variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - float
op2 - float
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(float op1,
                                 short op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - float
op2 - short
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(float op1,
                                 int op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - float
op2 - int
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(float op1,
                                 long op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - float
op2 - long
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(float op1,
                                 double op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - float
op2 - double
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(char op1,
                                 char op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two characters variable;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - char
op2 - char
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(long op1,
                                 long op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two long variable;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - long
op2 - long
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(long op1,
                                 float op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - long
op2 - float
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(long op1,
                                 double op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - long
op2 - double
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(double op1,
                                 double op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two double variable;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - double
op2 - double
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(double op1,
                                 short op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - double
op2 - short
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(double op1,
                                 int op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - double
op2 - int
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(double op1,
                                 float op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - double
op2 - float
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(double op1,
                                 long op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two numerics variables;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - double
op2 - long
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(java.lang.String op1,
                                 java.lang.String op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two string variable;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - String
op2 - String
Returns:
true if the comparison is verified

evaluate

public abstract boolean evaluate(boolean op1,
                                 boolean op2)
Description copied from interface: Comparator
This fonction evaluate the comaparison between two boolean variable;

Specified by:
evaluate in interface Comparator
Parameters:
op1 - boolean
op2 - boolean
Returns:
true if the comparison is verified; in case of <, > compartor it always return false

compileExpression

public Operand compileExpression()
                          throws ExpressionException,
                                 MalformedExpressionException
Description copied from interface: Expression
Checks the semantic integrity of an expression. It checks that all types are compatible and prepare the expression to be evaluable.It also creates buffers where stores the result. Notes that when evaluating there is no creation of new objects. This method change the state of this expression object, it will be evaluable and not modifiable.

Specified by:
compileExpression in interface Expression
Throws:
MalformedExpressionException - if syntax error
ExpressionException