Class AbstractExpressionEvaluator
java.lang.Object
org.datanucleus.store.query.expression.AbstractExpressionEvaluator
- All Implemented Interfaces:
ExpressionEvaluator
- Direct Known Subclasses:
InMemoryExpressionEvaluator
Abstract evaluator for an expression.
Provides a stack-like process, working its way through the expression tree.
Provides methods processXXX that should be implemented by the subclass where it supports the particular operator or expression.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Object
protected Object
This method deals with the OR/AND conditions.protected Object
protected Object
Method to handle a relational expression comparing two expressions and returning a BooleanExpression.protected Object
evaluate
(Expression expr) Method to "evaluate" the expression.protected Object
Method to process the supplied ADD expression.protected Object
Method to process the supplied AND expression.protected Object
Method to process the supplied BITWISE AND expression.protected Object
Method to process the supplied BITWISE OR expression.protected Object
Method to process the supplied BITWISE XOR expression.protected Object
Method to process the supplied case expression.protected Object
Method to process the supplied cast expression.protected Object
Method to process the supplied COM expression.protected Object
Method to process the supplied creator expression.protected Object
Method to process the supplied DISTINCT expression.protected Object
Method to process the supplied DIV expression.protected Object
Method to process the supplied EQ expression.protected Object
Method to process the supplied GTEQ expression.protected Object
Method to process the supplied GT expression.protected Object
Method to process the supplied IN expression.protected Object
Method to process the supplied invoke expression.protected Object
Method to process the supplied IS (instanceof) expression.protected Object
Method to process the supplied ISNOT (!instanceof) expression.protected Object
Method to process the supplied LIKE expression.protected Object
processLiteral
(Literal expr) Method to process the supplied invoke expression.protected Object
Method to process the supplied LTEQ expression.protected Object
Method to process the supplied LT expression.protected Object
Method to process the supplied MOD expression.protected Object
Method to process the supplied MUL expression.protected Object
Method to process the supplied NEG expression.protected Object
Method to process the supplied NOTEQ expression.protected Object
Method to process the supplied NOT expression.protected Object
Method to process the supplied NOT IN expression.protected Object
Method to process the supplied OR expression.protected Object
Method to process the supplied parameter expression.protected Object
Method to process the supplied primary expression.protected Object
Method to process the supplied SUB expression.protected Object
Method to process the supplied subquery expression.protected Object
Method to process the supplied variable expression.
-
Constructor Details
-
AbstractExpressionEvaluator
public AbstractExpressionEvaluator()
-
-
Method Details
-
evaluate
Method to "evaluate" the expression.- Specified by:
evaluate
in interfaceExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The evaluated expression
-
compileOrAndExpression
This method deals with the OR/AND conditions. A condition specifies a combination of one or more expressions and logical (Boolean) operators and returns a value of TRUE, FALSE, or unknown- Parameters:
expr
- The other expression to or/and with- Returns:
- The updated expression
-
compileRelationalExpression
Method to handle a relational expression comparing two expressions and returning a BooleanExpression.- Parameters:
expr
- The (relational) expression- Returns:
- The processed expression
-
compileAdditiveMultiplicativeExpression
-
compileUnaryExpression
-
compilePrimaryExpression
-
processOrExpression
Method to process the supplied OR expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processAndExpression
Method to process the supplied AND expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processBitOrExpression
Method to process the supplied BITWISE OR expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processBitAndExpression
Method to process the supplied BITWISE AND expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processBitXorExpression
Method to process the supplied BITWISE XOR expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processEqExpression
Method to process the supplied EQ expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processNoteqExpression
Method to process the supplied NOTEQ expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processLikeExpression
Method to process the supplied LIKE expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processGtExpression
Method to process the supplied GT expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processLtExpression
Method to process the supplied LT expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processGteqExpression
Method to process the supplied GTEQ expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processLteqExpression
Method to process the supplied LTEQ expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processIsExpression
Method to process the supplied IS (instanceof) expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processIsnotExpression
Method to process the supplied ISNOT (!instanceof) expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processInExpression
Method to process the supplied IN expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processNotInExpression
Method to process the supplied NOT IN expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processAddExpression
Method to process the supplied ADD expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processSubExpression
Method to process the supplied SUB expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processMulExpression
Method to process the supplied MUL expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processDivExpression
Method to process the supplied DIV expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processModExpression
Method to process the supplied MOD expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processNegExpression
Method to process the supplied NEG expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processComExpression
Method to process the supplied COM expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processNotExpression
Method to process the supplied NOT expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processDistinctExpression
Method to process the supplied DISTINCT expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processCreatorExpression
Method to process the supplied creator expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processPrimaryExpression
Method to process the supplied primary expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processParameterExpression
Method to process the supplied parameter expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processVariableExpression
Method to process the supplied variable expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processSubqueryExpression
Method to process the supplied subquery expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processInvokeExpression
Method to process the supplied invoke expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processCastExpression
Method to process the supplied cast expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processCaseExpression
Method to process the supplied case expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-
processLiteral
Method to process the supplied invoke expression. To be implemented by subclasses.- Parameters:
expr
- The expression- Returns:
- The result
-