org.objectweb.medor.filter.lib
Class BasicComparator

java.lang.Object
  |
  +--org.objectweb.medor.filter.lib.BasicBinaryOperator
        |
        +--org.objectweb.medor.filter.lib.BasicComparator
All Implemented Interfaces:
BinaryOperator, java.lang.Cloneable, Cloneable, Comparator, Expression, Operator
Direct Known Subclasses:
Equal, Greater, GreaterEqual, Lower, LowerEqual, NotEqual

public abstract class BasicComparator
extends BasicBinaryOperator
implements Comparator

Author:
Sebastien Chassande-Barrioz

Field Summary
 
Fields inherited from class org.objectweb.medor.filter.lib.BasicBinaryOperator
left, leftResult, result, right, rightResult, type, verified
 
Fields inherited from interface org.objectweb.medor.filter.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, SUBSTRING, SUM, UMINUS
 
Constructor Summary
BasicComparator()
           
 
Method Summary
 void 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 ;
 void evaluate(ParameterOperand[] pos, Tuple t)
          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;
 PType getType()
          It gets the result type of this expression
 
Methods inherited from class org.objectweb.medor.filter.lib.BasicBinaryOperator
clone, getExpression, getLeftExpression, getOperandNumber, getResult, getRightExpression, isCompiled, setExpression, setLeftExpression, setRightExpression
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.medor.filter.api.Comparator
evaluate, evaluate
 
Methods inherited from interface org.objectweb.medor.filter.api.BinaryOperator
getLeftExpression, getRightExpression, setLeftExpression, setRightExpression
 
Methods inherited from interface org.objectweb.medor.filter.api.Operator
getExpression, getOperandNumber, getOperatorString, setExpression
 
Methods inherited from interface org.objectweb.medor.filter.api.Expression
getResult, isCompiled
 
Methods inherited from interface org.objectweb.medor.api.Cloneable
clone
 

Constructor Detail

BasicComparator

public BasicComparator()
Method Detail

getType

public PType getType()
Description copied from interface: Expression
It gets the result type of this expression

Specified by:
getType in interface Expression
Overrides:
getType in class BasicBinaryOperator
Returns:
a PType object

evaluate

public void evaluate(ParameterOperand[] pos,
                     Tuple t)
              throws MedorException,
                     java.lang.IllegalStateException
We supose that the comparisons can be performed between all types.

Specified by:
evaluate in interface Expression
Specified by:
evaluate in class BasicBinaryOperator
Parameters:
pos - a list of ParameterOperand
t - Tuple
Throws:
java.lang.IllegalStateException - if this expression is not compiled.
MedorException - if evaluation error

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 void compileExpression()
                       throws TypingException,
                              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
TypingException - when incompatible types error occures.