Class AbstractExpressionEvaluator

java.lang.Object
org.datanucleus.store.query.expression.AbstractExpressionEvaluator
All Implemented Interfaces:
ExpressionEvaluator
Direct Known Subclasses:
InMemoryExpressionEvaluator

public class AbstractExpressionEvaluator extends Object implements ExpressionEvaluator
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 Details

    • AbstractExpressionEvaluator

      public AbstractExpressionEvaluator()
  • Method Details

    • evaluate

      public Object evaluate(Expression expr)
      Method to "evaluate" the expression.
      Specified by:
      evaluate in interface ExpressionEvaluator
      Parameters:
      expr - The expression
      Returns:
      The evaluated expression
    • compileOrAndExpression

      protected Object compileOrAndExpression(Expression expr)
      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

      protected Object compileRelationalExpression(Expression expr)
      Method to handle a relational expression comparing two expressions and returning a BooleanExpression.
      Parameters:
      expr - The (relational) expression
      Returns:
      The processed expression
    • compileAdditiveMultiplicativeExpression

      protected Object compileAdditiveMultiplicativeExpression(Expression expr)
    • compileUnaryExpression

      protected Object compileUnaryExpression(Expression expr)
    • compilePrimaryExpression

      protected Object compilePrimaryExpression(Expression expr)
    • processOrExpression

      protected Object processOrExpression(Expression expr)
      Method to process the supplied OR expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processAndExpression

      protected Object processAndExpression(Expression expr)
      Method to process the supplied AND expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processBitOrExpression

      protected Object processBitOrExpression(Expression expr)
      Method to process the supplied BITWISE OR expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processBitAndExpression

      protected Object processBitAndExpression(Expression expr)
      Method to process the supplied BITWISE AND expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processBitXorExpression

      protected Object processBitXorExpression(Expression expr)
      Method to process the supplied BITWISE XOR expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processEqExpression

      protected Object processEqExpression(Expression expr)
      Method to process the supplied EQ expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processNoteqExpression

      protected Object processNoteqExpression(Expression expr)
      Method to process the supplied NOTEQ expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processLikeExpression

      protected Object processLikeExpression(Expression expr)
      Method to process the supplied LIKE expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processGtExpression

      protected Object processGtExpression(Expression expr)
      Method to process the supplied GT expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processLtExpression

      protected Object processLtExpression(Expression expr)
      Method to process the supplied LT expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processGteqExpression

      protected Object processGteqExpression(Expression expr)
      Method to process the supplied GTEQ expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processLteqExpression

      protected Object processLteqExpression(Expression expr)
      Method to process the supplied LTEQ expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processIsExpression

      protected Object processIsExpression(Expression expr)
      Method to process the supplied IS (instanceof) expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processIsnotExpression

      protected Object processIsnotExpression(Expression expr)
      Method to process the supplied ISNOT (!instanceof) expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processInExpression

      protected Object processInExpression(Expression expr)
      Method to process the supplied IN expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processNotInExpression

      protected Object processNotInExpression(Expression expr)
      Method to process the supplied NOT IN expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processAddExpression

      protected Object processAddExpression(Expression expr)
      Method to process the supplied ADD expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processSubExpression

      protected Object processSubExpression(Expression expr)
      Method to process the supplied SUB expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processMulExpression

      protected Object processMulExpression(Expression expr)
      Method to process the supplied MUL expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processDivExpression

      protected Object processDivExpression(Expression expr)
      Method to process the supplied DIV expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processModExpression

      protected Object processModExpression(Expression expr)
      Method to process the supplied MOD expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processNegExpression

      protected Object processNegExpression(Expression expr)
      Method to process the supplied NEG expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processComExpression

      protected Object processComExpression(Expression expr)
      Method to process the supplied COM expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processNotExpression

      protected Object processNotExpression(Expression expr)
      Method to process the supplied NOT expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processDistinctExpression

      protected Object processDistinctExpression(Expression expr)
      Method to process the supplied DISTINCT expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processCreatorExpression

      protected Object processCreatorExpression(CreatorExpression expr)
      Method to process the supplied creator expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processPrimaryExpression

      protected Object processPrimaryExpression(PrimaryExpression expr)
      Method to process the supplied primary expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processParameterExpression

      protected Object processParameterExpression(ParameterExpression expr)
      Method to process the supplied parameter expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processVariableExpression

      protected Object processVariableExpression(VariableExpression expr)
      Method to process the supplied variable expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processSubqueryExpression

      protected Object processSubqueryExpression(SubqueryExpression expr)
      Method to process the supplied subquery expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processInvokeExpression

      protected Object processInvokeExpression(InvokeExpression expr)
      Method to process the supplied invoke expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processCastExpression

      protected Object processCastExpression(Expression expr)
      Method to process the supplied cast expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processCaseExpression

      protected Object processCaseExpression(CaseExpression expr)
      Method to process the supplied case expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result
    • processLiteral

      protected Object processLiteral(Literal expr)
      Method to process the supplied invoke expression. To be implemented by subclasses.
      Parameters:
      expr - The expression
      Returns:
      The result