com.metamatrix.query.sql.visitor
Class EvaluateExpressionVisitor

java.lang.Object
  extended by com.metamatrix.query.sql.LanguageVisitor
      extended by com.metamatrix.query.sql.visitor.ExpressionMappingVisitor
          extended by com.metamatrix.query.sql.visitor.EvaluateExpressionVisitor

public class EvaluateExpressionVisitor
extends ExpressionMappingVisitor

This visitor simplifies Language Objects by evaluating and/or replacing Expressions within them.

The easiest way to use this visitor is to call the static methods which create the visitor and run it. The public visit() methods should NOT be called directly.


Constructor Summary
EvaluateExpressionVisitor()
           
 
Method Summary
static boolean isFullyEvaluatable(LanguageObject obj, boolean duringPlanning)
          Should be called to check if the object can fully evaluated
 Criteria replaceDependentCriteria(DependentSetCriteria crit)
           
 Expression replaceExpression(Expression expr)
          Evaluate the expression.
static void replaceExpressions(LanguageObject obj, boolean deep, LookupEvaluator dataMgr, CommandContext context)
           
 void setContext(CommandContext context)
           
 void visit(CompoundCriteria obj)
           
 void visit(JoinPredicate obj)
           
 void visit(Query obj)
           
static boolean willBecomeConstant(LanguageObject obj)
          Will return true if the expression can be deterministically evaluated at runtime, but it may not be evaluatable during planning
 
Methods inherited from class com.metamatrix.query.sql.visitor.ExpressionMappingVisitor
createAliases, getVariableValues, mapExpressions, mapExpressions, setVariableValues, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class com.metamatrix.query.sql.LanguageVisitor
setAbort, shouldAbort, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EvaluateExpressionVisitor

public EvaluateExpressionVisitor()
Method Detail

setContext

public void setContext(CommandContext context)

visit

public void visit(CompoundCriteria obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(JoinPredicate obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(Query obj)
Overrides:
visit in class LanguageVisitor

replaceDependentCriteria

public Criteria replaceDependentCriteria(DependentSetCriteria crit)

replaceExpression

public Expression replaceExpression(Expression expr)
Evaluate the expression. This method takes into account whether the Expression CAN be evaluated or not. This method also takes into account if the Expression is a Reference. The Reference may not be evaluatable (may not have data tuple and element map set on it), in which case this method may return the Reference itself or the Expression inside the Reference, depending on the instance variables of this visitor.

Overrides:
replaceExpression in class ExpressionMappingVisitor
Parameters:
expr -
Returns:

willBecomeConstant

public static final boolean willBecomeConstant(LanguageObject obj)
Will return true if the expression can be deterministically evaluated at runtime, but it may not be evaluatable during planning


isFullyEvaluatable

public static final boolean isFullyEvaluatable(LanguageObject obj,
                                               boolean duringPlanning)
Should be called to check if the object can fully evaluated


replaceExpressions

public static final void replaceExpressions(LanguageObject obj,
                                            boolean deep,
                                            LookupEvaluator dataMgr,
                                            CommandContext context)
                                     throws ExpressionEvaluationException,
                                            MetaMatrixComponentException
Throws:
ExpressionEvaluationException
MetaMatrixComponentException


Copyright © 2009. All Rights Reserved.