common-util

local.tomas.expr.eval
Class TypeRetriever

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

public class TypeRetriever
extends Object
implements ExpressionWalker<ExpressionType,ExpressionContext>

Retrieve type from expression.

Author:
tomas.teubner

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

Constructor Detail

TypeRetriever

public TypeRetriever()
Default constructor.

Method Detail

visitBooleanConstant

public ExpressionType visitBooleanConstant(Boolean b,
                                           ExpressionContext ctx)
Description copied from interface: ExpressionWalker
Visit a boolean constant.

Specified by:
visitBooleanConstant in interface ExpressionWalker<ExpressionType,ExpressionContext>
Parameters:
b - boolean constant
ctx - implementation dependent argument
Returns:
BOOLEAN

visitStringConstant

public ExpressionType visitStringConstant(String s,
                                          ExpressionContext ctx)
Description copied from interface: ExpressionWalker
Visit a string constant.

Specified by:
visitStringConstant in interface ExpressionWalker<ExpressionType,ExpressionContext>
Parameters:
s - string constant
ctx - implementation dependent argument
Returns:
STRING

visitNumberConstant

public ExpressionType visitNumberConstant(Number n,
                                          ExpressionContext ctx)
Description copied from interface: ExpressionWalker
Visit a numeric constant

Specified by:
visitNumberConstant in interface ExpressionWalker<ExpressionType,ExpressionContext>
Parameters:
n - numeric constant
ctx - implementation dependent argument
Returns:
INTEGER or DECIMAL

visitDateConstant

public ExpressionType visitDateConstant(Date d,
                                        ExpressionContext ctx)
Description copied from interface: ExpressionWalker
Visit a date constant

Specified by:
visitDateConstant in interface ExpressionWalker<ExpressionType,ExpressionContext>
Parameters:
d - date constant
ctx - implementation dependent argument
Returns:
DATETIME

visitVariable

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

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

visitAbsFunction

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

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

visitAddition

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

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

visitBinaryArithmetic

protected ExpressionType visitBinaryArithmetic(BinaryTerm t,
                                               ExpressionContext ctx)
                                        throws ExpressionException
Get type of binary arithmetic term.

Parameters:
t - the term
ctx - the expression context
Returns:
the type
Throws:
ExpressionException

visitAndTerm

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

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

visitBinaryLogical

protected ExpressionType visitBinaryLogical(BinaryTerm t,
                                            ExpressionContext ctx)
                                     throws ExpressionException
Get type of binary logical term.

Parameters:
t - the term
ctx - the expression context
Returns:
the type
Throws:
ExpressionException

visitConcatenationTerm

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

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

visitCurrentDateFunction

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

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

visitDivision

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

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

visitEquality

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

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

visitComparison

protected ExpressionType visitComparison(BinaryTerm t,
                                         ExpressionContext ctx)
                                  throws ExpressionException
Get type of comparison term.

Parameters:
t - the term
ctx - the expression context
Returns:
the type
Throws:
ExpressionException

visitGreaterEqual

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

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

visitGreaterThan

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

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

visitInequality

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

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

visitInTerm

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

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

visitIsNotNull

public ExpressionType visitIsNotNull(IsNotNullTerm t,
                                     ExpressionContext ctx)
Description copied from interface: ExpressionWalker
Visit a not is null term.

Specified by:
visitIsNotNull in interface ExpressionWalker<ExpressionType,ExpressionContext>
Parameters:
t - a not is null term
ctx - implementation dependent argument
Returns:
BOOLEAN

visitIsNull

public ExpressionType visitIsNull(IsNullTerm t,
                                  ExpressionContext ctx)
Description copied from interface: ExpressionWalker
Visit an is null term.

Specified by:
visitIsNull in interface ExpressionWalker<ExpressionType,ExpressionContext>
Parameters:
t - an is null term
ctx - implementation dependent argument
Returns:
BOOLEAN

visitLengthFunction

public ExpressionType visitLengthFunction(LengthFunctionTerm t,
                                          ExpressionContext ctx)
Description copied from interface: ExpressionWalker
Visit a length function term.

Specified by:
visitLengthFunction in interface ExpressionWalker<ExpressionType,ExpressionContext>
Parameters:
t - a length function term
ctx - implementation dependent argument
Returns:
INTEGER

visitLessEqual

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

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

visitLessThan

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

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

visitLikeTerm

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

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

visitLikeTermAsBinary

protected ExpressionType visitLikeTermAsBinary(BinaryTerm t,
                                               ExpressionContext ctx)
                                        throws ExpressionException
Get type of binary LIKE term.

Parameters:
t - the term
ctx - the expression context
Returns:
the type
Throws:
ExpressionException

visitLowerFunction

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

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

visitMultiplication

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

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

visitNegation

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

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

visitNotInTerm

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

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

visitNotLikeTerm

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

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

visitOrTerm

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

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

visitSignChange

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

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

visitSubstrFunction

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

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

visitSubtraction

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

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

visitTrimFunction

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

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

visitUpperFunction

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

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

visitMatchTerm

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

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

visitReplaceFunction

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

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

common-util

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