Class 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 Detail

      • AbstractExpressionEvaluator

        public AbstractExpressionEvaluator()
    • Method Detail

      • 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