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.


Method Summary
static boolean isFullyEvaluatable(LanguageObject obj, boolean duringPlanning)
          Should be called to check if the object can fully evaluated
 Expression replaceExpression(Expression expr)
          Evaluate the expression.
static void replaceExpressions(LanguageObject obj, boolean deep, ProcessorDataManager dataMgr, CommandContext context)
           
 void setContext(CommandContext context)
           
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, 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, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

setContext

public void setContext(CommandContext context)

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,
                                            ProcessorDataManager dataMgr,
                                            CommandContext context)
                                     throws ExpressionEvaluationException,
                                            MetaMatrixComponentException
Throws:
ExpressionEvaluationException
MetaMatrixComponentException


Copyright © 2009. All Rights Reserved.