org.objectweb.medor.expression.lib
Class BasicBinaryArithmeticOperator

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.BasicBinaryArithmeticOperator
All Implemented Interfaces:
BinaryArithmeticOperator, BinaryOperator, org.objectweb.medor.clone.api.Cloneable, java.lang.Cloneable, Expression, Operator, java.io.Serializable
Direct Known Subclasses:
DivideBy, Minus, Mod, Mult, Plus

public abstract class BasicBinaryArithmeticOperator
extends BasicBinaryOperator
implements BinaryArithmeticOperator

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
BasicBinaryArithmeticOperator()
           
BasicBinaryArithmeticOperator(Expression e0, Expression e1)
           
BasicBinaryArithmeticOperator(org.objectweb.jorm.type.api.PType type)
           
BasicBinaryArithmeticOperator(org.objectweb.jorm.type.api.PType type, Expression e0, Expression e1)
           
 
Method Summary
 Operand compileExpression()
          Checks the semantic integrity of an expression.
abstract  java.math.BigDecimal evaluate(java.math.BigDecimal op1, java.math.BigDecimal op2)
           
abstract  java.math.BigInteger evaluate(java.math.BigInteger op1, java.math.BigInteger op2)
           
abstract  int evaluate(char op1, char op2)
          This fonction evaluate the comaparison between two characters variable;
abstract  java.lang.String evaluate(char op1, java.lang.String op2)
          This fonction evaluate the comaparison between two characters variable;
abstract  java.util.Date evaluate(java.util.Date op1, java.util.Date op2)
          This fonction evaluate the comaparison between two java.util.Date variable;
abstract  double evaluate(double op1, double op2)
          This fonction evaluate the comaparison between two double variable;
abstract  double evaluate(double op1, float op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  double evaluate(double op1, int op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  double evaluate(double op1, long op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  double evaluate(double op1, short op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  double evaluate(float op1, double op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  float evaluate(float op1, float op2)
          This fonction evaluate the comaparison between two floats variables;
abstract  float evaluate(float op1, int op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  float evaluate(float op1, long op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  float evaluate(float op1, short op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  double evaluate(int op1, double op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  float evaluate(int op1, float op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  int evaluate(int op1, int op2)
          This fonction evaluate the arithmetic operation between two numerics variables;
abstract  long evaluate(int op1, long op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  int evaluate(int op1, short op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  double evaluate(long op1, double op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  float evaluate(long op1, float op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  long evaluate(long op1, int op2)
          This fonction evaluate the comaparison between two numerics variables;
abstract  long evaluate(long op1, long op2)
          This fonction evaluate the comaparison between two long variable;
abstract  long evaluate(long op1, short op2)
          This fonction evaluate the comaparison between two numerics variables;
 Operand evaluate(ParameterOperand[] pos, java.lang.Object o)
          It evaluates the expression tree and puts the result into the operand result.
abstract  java.lang.String evaluate(java.lang.String op1, char op2)
          This fonction evaluate the comaparison between two string variable;
abstract  java.lang.String 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.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

BasicBinaryArithmeticOperator

public BasicBinaryArithmeticOperator()

BasicBinaryArithmeticOperator

public BasicBinaryArithmeticOperator(Expression e0,
                                     Expression e1)

BasicBinaryArithmeticOperator

public BasicBinaryArithmeticOperator(org.objectweb.jorm.type.api.PType type)

BasicBinaryArithmeticOperator

public BasicBinaryArithmeticOperator(org.objectweb.jorm.type.api.PType type,
                                     Expression e0,
                                     Expression e1)
Method Detail

evaluate

public Operand evaluate(ParameterOperand[] pos,
                        java.lang.Object o)
                 throws ExpressionException
Description copied from interface: Expression
It evaluates the expression tree and puts the result into the operand result.

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 int evaluate(int op1,
                             int op2)
Description copied from interface: BinaryArithmeticOperator
This fonction evaluate the arithmetic operation between two numerics variables;

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - integer
op2 - integer
Returns:
an integer result

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - int
op2 - short
Returns:
an int as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - int
op2 - long
Returns:
a long result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - int
op2 - float
Returns:
a float result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - int
op2 - double
Returns:
a double as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - float
op2 - float
Returns:
a float resultas in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - float
op2 - short
Returns:
a float result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - float
op2 - int
Returns:
a float result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - float
op2 - long
Returns:
a float result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - float
op2 - double
Returns:
a double result as in Java programming language

evaluate

public abstract int evaluate(char op1,
                             char op2)
                      throws TypingException
Description copied from interface: BinaryArithmeticOperator
This fonction evaluate the comaparison between two characters variable;

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - character
op2 - character
Returns:
an int value
Throws:
TypingException

evaluate

public abstract java.lang.String evaluate(char op1,
                                          java.lang.String op2)
                                   throws TypingException
Description copied from interface: BinaryArithmeticOperator
This fonction evaluate the comaparison between two characters variable;

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - char
op2 - string
Returns:
a string value
Throws:
TypingException - if this operation is not supported

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - long
op2 - long
Returns:
a long result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - long
op2 - short
Returns:
a long result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - long
op2 - int
Returns:
a long result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - long
op2 - float
Returns:
a float result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - long
op2 - double
Returns:
a double result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - double
op2 - double
Returns:
a double result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - double
op2 - short
Returns:
a double result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - double
op2 - int
Returns:
a double result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - double
op2 - float
Returns:
a double result as in Java programming language

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - double
op2 - long
Returns:
a double result as in Java programming language

evaluate

public abstract java.math.BigDecimal evaluate(java.math.BigDecimal op1,
                                              java.math.BigDecimal op2)

evaluate

public abstract java.math.BigInteger evaluate(java.math.BigInteger op1,
                                              java.math.BigInteger op2)

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - String
op2 - String
Returns:
a string value as in java programming language
Throws:
TypingException - if this operation is not supported

evaluate

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

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - String
op2 - char
Returns:
a string value as in java programming language
Throws:
TypingException - if this operation is not supported

evaluate

public abstract java.util.Date evaluate(java.util.Date op1,
                                        java.util.Date op2)
                                 throws TypingException
Description copied from interface: BinaryArithmeticOperator
This fonction evaluate the comaparison between two java.util.Date variable;

Specified by:
evaluate in interface BinaryArithmeticOperator
Parameters:
op1 - Date
op2 - Date
Returns:
a Date value as in java programming language
Throws:
TypingException - if this operation is not supported

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