common-util

local.tomas.expr.eval
Class ExpressionEvaluator

java.lang.Object
  extended by local.tomas.expr.eval.ExpressionEvaluator
All Implemented Interfaces:
ExpressionWalker<ExpressionValue,ExpressionContext>

public class ExpressionEvaluator
extends Object
implements ExpressionWalker<ExpressionValue,ExpressionContext>

Evaluator for expressions.

Author:
tomas

Constructor Summary
protected ExpressionEvaluator()
          Internal use only.
 
Method Summary
protected  List<ExpressionValue> evalList(List<Expression> list, ExpressionContext ctx)
           
 ExpressionValue visitAbsFunction(AbsFunctionTerm t, ExpressionContext arg)
          Visit an abs function term.
 ExpressionValue visitAddition(AdditionTerm t, ExpressionContext arg)
          Visit an addition term.
 ExpressionValue visitAndTerm(AndTerm t, ExpressionContext arg)
          Visit an and term.
 ExpressionValue visitBooleanConstant(Boolean b, ExpressionContext arg)
          Visit a boolean constant.
 ExpressionValue visitConcatenationTerm(ConcatenationTerm t, ExpressionContext arg)
          Visit a concatenation term.
 ExpressionValue visitCurrentDateFunction(CurrentDateFunctionTerm t, ExpressionContext arg)
          Visit a current date function term.
 ExpressionValue visitDateConstant(Date d, ExpressionContext arg)
          Visit a date constant
 ExpressionValue visitDivision(DivisionTerm t, ExpressionContext arg)
          Visit a division term.
 ExpressionValue visitEquality(EqualityTerm t, ExpressionContext arg)
          Visit an equality term.
 ExpressionValue visitGreaterEqual(GreaterEqualTerm t, ExpressionContext arg)
          Visit a greater equal term.
 ExpressionValue visitGreaterThan(GreaterTerm t, ExpressionContext arg)
          Visit a greater than term.
 ExpressionValue visitInequality(InequalityTerm t, ExpressionContext arg)
          Visit an inequality term.
 ExpressionValue visitInTerm(InTerm t, ExpressionContext arg)
          Visit an in term.
 ExpressionValue visitIsNotNull(IsNotNullTerm t, ExpressionContext arg)
          Visit a not is null term.
 ExpressionValue visitIsNull(IsNullTerm t, ExpressionContext arg)
          Visit an is null term.
 ExpressionValue visitLengthFunction(LengthFunctionTerm t, ExpressionContext arg)
          Visit a length function term.
 ExpressionValue visitLessEqual(LessEqualTerm t, ExpressionContext arg)
          Visit a less equal term.
 ExpressionValue visitLessThan(LessTerm t, ExpressionContext arg)
          Visit a less than term.
 ExpressionValue visitLikeTerm(LikeTerm t, ExpressionContext arg)
          Visit a like term.
 ExpressionValue visitLowerFunction(LowerFunctionTerm t, ExpressionContext arg)
          Visit a lower function term.
 ExpressionValue visitMatchTerm(MatchTerm t, ExpressionContext arg)
          Visit a regular expression match term.
 ExpressionValue visitMultiplication(MultiplicationTerm t, ExpressionContext arg)
          Visit a multiplication term.
 ExpressionValue visitNegation(NegationTerm t, ExpressionContext arg)
          Visit a concatenation term.
 ExpressionValue visitNotInTerm(NotInTerm t, ExpressionContext arg)
          Visit a not in term.
 ExpressionValue visitNotLikeTerm(NotLikeTerm t, ExpressionContext arg)
          Visit a not like term.
 ExpressionValue visitNumberConstant(Number n, ExpressionContext arg)
          Visit a numeric constant
 ExpressionValue visitOrTerm(OrTerm t, ExpressionContext arg)
          Visit an or term.
 ExpressionValue visitReplaceFunction(ReplaceFunctionTerm t, ExpressionContext arg)
          Visit a replace function term.
 ExpressionValue visitSignChange(SignChangeTerm t, ExpressionContext arg)
          Visit a sign change term.
 ExpressionValue visitStringConstant(String s, ExpressionContext arg)
          Visit a string constant.
 ExpressionValue visitSubstrFunction(SubstrFunctionTerm t, ExpressionContext arg)
          Visit a substring function term.
 ExpressionValue visitSubtraction(SubtractionTerm t, ExpressionContext arg)
          Visit a subtraction term.
 ExpressionValue visitTrimFunction(TrimFunctionTerm t, ExpressionContext arg)
          Visit a trim function term.
 ExpressionValue visitUpperFunction(UpperFunctionTerm t, ExpressionContext arg)
          Visit an upper function term.
 ExpressionValue visitVariable(Variable variable, ExpressionContext arg)
          Visit a variable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExpressionEvaluator

protected ExpressionEvaluator()
Internal use only. Use factory instead.

Method Detail

visitBooleanConstant

public ExpressionValue visitBooleanConstant(Boolean b,
                                            ExpressionContext arg)
                                     throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a boolean constant.

Specified by:
visitBooleanConstant in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
b - boolean constant
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitStringConstant

public ExpressionValue visitStringConstant(String s,
                                           ExpressionContext arg)
                                    throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a string constant.

Specified by:
visitStringConstant in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
s - string constant
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitNumberConstant

public ExpressionValue visitNumberConstant(Number n,
                                           ExpressionContext arg)
                                    throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a numeric constant

Specified by:
visitNumberConstant in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
n - numeric constant
arg - implementation dependent argument
Returns:
implementation dependent value
Throws:
ExpressionException

visitDateConstant

public ExpressionValue visitDateConstant(Date d,
                                         ExpressionContext arg)
                                  throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a date constant

Specified by:
visitDateConstant in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
d - date constant
arg - implementation dependent argument
Returns:
implementation dependent value
Throws:
ExpressionException

visitVariable

public ExpressionValue visitVariable(Variable variable,
                                     ExpressionContext arg)
                              throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a variable.

Specified by:
visitVariable in interface ExpressionWalker<ExpressionValue,ExpressionContext>
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitAbsFunction

public ExpressionValue visitAbsFunction(AbsFunctionTerm t,
                                        ExpressionContext arg)
                                 throws ExpressionException
Description copied from interface: ExpressionWalker
Visit an abs function term.

Specified by:
visitAbsFunction in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - an abs function term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitAddition

public ExpressionValue visitAddition(AdditionTerm t,
                                     ExpressionContext arg)
                              throws ExpressionException
Description copied from interface: ExpressionWalker
Visit an addition term.

Specified by:
visitAddition in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - addition term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitAndTerm

public ExpressionValue visitAndTerm(AndTerm t,
                                    ExpressionContext arg)
                             throws ExpressionException
Description copied from interface: ExpressionWalker
Visit an and term.

Specified by:
visitAndTerm in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - an and term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitConcatenationTerm

public ExpressionValue visitConcatenationTerm(ConcatenationTerm t,
                                              ExpressionContext arg)
                                       throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a concatenation term.

Specified by:
visitConcatenationTerm in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a concatenation term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitCurrentDateFunction

public ExpressionValue visitCurrentDateFunction(CurrentDateFunctionTerm t,
                                                ExpressionContext arg)
                                         throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a current date function term.

Specified by:
visitCurrentDateFunction in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a current date function term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitDivision

public ExpressionValue visitDivision(DivisionTerm t,
                                     ExpressionContext arg)
                              throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a division term.

Specified by:
visitDivision in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - division term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitEquality

public ExpressionValue visitEquality(EqualityTerm t,
                                     ExpressionContext arg)
                              throws ExpressionException
Description copied from interface: ExpressionWalker
Visit an equality term.

Specified by:
visitEquality in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - equality term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitGreaterEqual

public ExpressionValue visitGreaterEqual(GreaterEqualTerm t,
                                         ExpressionContext arg)
                                  throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a greater equal term.

Specified by:
visitGreaterEqual in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - greater equal term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitGreaterThan

public ExpressionValue visitGreaterThan(GreaterTerm t,
                                        ExpressionContext arg)
                                 throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a greater than term.

Specified by:
visitGreaterThan in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - greater than term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitInequality

public ExpressionValue visitInequality(InequalityTerm t,
                                       ExpressionContext arg)
                                throws ExpressionException
Description copied from interface: ExpressionWalker
Visit an inequality term.

Specified by:
visitInequality in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - inequality term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitInTerm

public ExpressionValue visitInTerm(InTerm t,
                                   ExpressionContext arg)
                            throws ExpressionException
Description copied from interface: ExpressionWalker
Visit an in term.

Specified by:
visitInTerm in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - an in term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitIsNotNull

public ExpressionValue visitIsNotNull(IsNotNullTerm t,
                                      ExpressionContext arg)
                               throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a not is null term.

Specified by:
visitIsNotNull in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a not is null term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitIsNull

public ExpressionValue visitIsNull(IsNullTerm t,
                                   ExpressionContext arg)
                            throws ExpressionException
Description copied from interface: ExpressionWalker
Visit an is null term.

Specified by:
visitIsNull in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - an is null term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitLengthFunction

public ExpressionValue visitLengthFunction(LengthFunctionTerm t,
                                           ExpressionContext arg)
                                    throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a length function term.

Specified by:
visitLengthFunction in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a length function term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitLessEqual

public ExpressionValue visitLessEqual(LessEqualTerm t,
                                      ExpressionContext arg)
                               throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a less equal term.

Specified by:
visitLessEqual in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - less equal term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitLessThan

public ExpressionValue visitLessThan(LessTerm t,
                                     ExpressionContext arg)
                              throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a less than term.

Specified by:
visitLessThan in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - less than term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitLikeTerm

public ExpressionValue visitLikeTerm(LikeTerm t,
                                     ExpressionContext arg)
                              throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a like term.

Specified by:
visitLikeTerm in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a like term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitLowerFunction

public ExpressionValue visitLowerFunction(LowerFunctionTerm t,
                                          ExpressionContext arg)
                                   throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a lower function term.

Specified by:
visitLowerFunction in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a lower function term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitMultiplication

public ExpressionValue visitMultiplication(MultiplicationTerm t,
                                           ExpressionContext arg)
                                    throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a multiplication term.

Specified by:
visitMultiplication in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - multiplication term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitNegation

public ExpressionValue visitNegation(NegationTerm t,
                                     ExpressionContext arg)
                              throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a concatenation term.

Specified by:
visitNegation in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a concatenation term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitNotInTerm

public ExpressionValue visitNotInTerm(NotInTerm t,
                                      ExpressionContext arg)
                               throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a not in term.

Specified by:
visitNotInTerm in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a not in term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitNotLikeTerm

public ExpressionValue visitNotLikeTerm(NotLikeTerm t,
                                        ExpressionContext arg)
                                 throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a not like term.

Specified by:
visitNotLikeTerm in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a not like term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitOrTerm

public ExpressionValue visitOrTerm(OrTerm t,
                                   ExpressionContext arg)
                            throws ExpressionException
Description copied from interface: ExpressionWalker
Visit an or term.

Specified by:
visitOrTerm in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - an or term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitSignChange

public ExpressionValue visitSignChange(SignChangeTerm t,
                                       ExpressionContext arg)
                                throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a sign change term.

Specified by:
visitSignChange in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a sign change term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

evalList

protected List<ExpressionValue> evalList(List<Expression> list,
                                         ExpressionContext ctx)
                                  throws ExpressionException
Throws:
ExpressionException

visitSubstrFunction

public ExpressionValue visitSubstrFunction(SubstrFunctionTerm t,
                                           ExpressionContext arg)
                                    throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a substring function term.

Specified by:
visitSubstrFunction in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a substring function term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitSubtraction

public ExpressionValue visitSubtraction(SubtractionTerm t,
                                        ExpressionContext arg)
                                 throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a subtraction term.

Specified by:
visitSubtraction in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - subtraction term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitTrimFunction

public ExpressionValue visitTrimFunction(TrimFunctionTerm t,
                                         ExpressionContext arg)
                                  throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a trim function term.

Specified by:
visitTrimFunction in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a trim function term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitUpperFunction

public ExpressionValue visitUpperFunction(UpperFunctionTerm t,
                                          ExpressionContext arg)
                                   throws ExpressionException
Description copied from interface: ExpressionWalker
Visit an upper function term.

Specified by:
visitUpperFunction in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - an upper function term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitMatchTerm

public ExpressionValue visitMatchTerm(MatchTerm t,
                                      ExpressionContext arg)
                               throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a regular expression match term.

Specified by:
visitMatchTerm in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a regular expression match term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

visitReplaceFunction

public ExpressionValue visitReplaceFunction(ReplaceFunctionTerm t,
                                            ExpressionContext arg)
                                     throws ExpressionException
Description copied from interface: ExpressionWalker
Visit a replace function term.

Specified by:
visitReplaceFunction in interface ExpressionWalker<ExpressionValue,ExpressionContext>
Parameters:
t - a replace function term
arg - implementation dependent argument
Returns:
implementation dependent result
Throws:
ExpressionException

common-util

Copyright © 2005-2007 Tomas Teubner. All Rights Reserved.