public class ExpressionVisitor extends java.lang.Object implements TypeCheckerEnvironment
| Constructor and Description |
|---|
ExpressionVisitor()
Create an ExpressionVisitor
|
| Modifier and Type | Method and Description |
|---|---|
CollationMap |
getCollationMap() |
Configuration |
getConfiguration()
Get the Saxon configuration
|
Expression |
getCurrentExpression()
Get the current expression, the one being visited
|
Executable |
getExecutable()
Get the Executable containing the expressions being visited
|
Expression |
getParentExpression()
Get the parent expression of the current expression in the expression tree
|
java.util.Stack<Expression> |
getStack()
Get the stack containing all the expressions currently being visited
|
StaticContext |
getStaticContext()
Get the static context for the expressions being visited.
|
boolean |
isLoopingSubexpression(Expression ancestor)
Return true if the current expression at the top of the visitor's stack is evaluated repeatedly
when a given ancestor expression is evaluated once
|
boolean |
isOptimizeForStreaming()
Ask whether the visitor is to optimize expressions for evaluation in a streaming environment
|
void |
issueWarning(java.lang.String message,
javax.xml.transform.SourceLocator locator)
Issue a warning message
|
static ExpressionVisitor |
make(StaticContext env,
Executable exec)
Factory method: make an expression visitor
|
XPathContext |
makeDynamicContext()
Create a dynamic context suitable for early evaluation of constant subexpressions
|
Expression |
optimize(Expression exp,
ItemType contextItemType)
Optimize an expression, via the ExpressionVisitor
|
void |
resetStaticProperties()
Reset the static properties for the current expression and for all its containing expressions.
|
void |
setConfiguration(Configuration configuration)
Set the Saxon configuration
|
void |
setExecutable(Executable executable)
Set the Executable containing the expressions being visited
|
void |
setOptimizeForStreaming(boolean option)
Tell the visitor to optimize expressions for evaluation in a streaming environment
|
void |
setStack(java.util.Stack<Expression> stack)
Set the stack used to hold the expressions being visited
|
void |
setStaticContext(StaticContext staticContext)
Set the static context for the expressions being visited.
|
Expression |
simplify(Expression exp)
Simplify an expression, via the ExpressionVisitor
|
Expression |
typeCheck(Expression exp,
ItemType contextItemType)
Type check an expression, via the ExpressionVisitor
|
public Configuration getConfiguration()
getConfiguration in interface TypeCheckerEnvironmentpublic void setConfiguration(Configuration configuration)
configuration - the Saxon configurationpublic Executable getExecutable()
public void setExecutable(Executable executable)
executable - the Executablepublic CollationMap getCollationMap()
getCollationMap in interface TypeCheckerEnvironmentpublic java.util.Stack<Expression> getStack()
Expressionpublic void setStack(java.util.Stack<Expression> stack)
stack - the expression stackpublic StaticContext getStaticContext()
public void setStaticContext(StaticContext staticContext)
staticContext - the static contextpublic Expression getCurrentExpression()
public static ExpressionVisitor make(StaticContext env, Executable exec)
env - the static contextpublic void issueWarning(java.lang.String message,
javax.xml.transform.SourceLocator locator)
issueWarning in interface TypeCheckerEnvironmentmessage - the messagepublic XPathContext makeDynamicContext()
makeDynamicContext in interface TypeCheckerEnvironmentpublic Expression simplify(Expression exp) throws XPathException
simplify in interface TypeCheckerEnvironmentexp - the expression to be simplifiedXPathExceptionpublic Expression typeCheck(Expression exp, ItemType contextItemType) throws XPathException
typeCheck in interface TypeCheckerEnvironmentexp - the expression to be typecheckedcontextItemType - the static type of the context item for this expressionXPathException - if static type checking fails, that is, if the expression cannot possibly
deliver a value of the required typepublic void setOptimizeForStreaming(boolean option)
option - true if optimizing for streamingpublic boolean isOptimizeForStreaming()
public Expression optimize(Expression exp, ItemType contextItemType) throws XPathException
exp - the expression to be typecheckedcontextItemType - the static type of the context item for this expressionXPathExceptionpublic Expression getParentExpression()
public boolean isLoopingSubexpression(Expression ancestor)
ancestor - the ancestor expression. May be null, in which case the search goes all the way
to the base of the stack.public final void resetStaticProperties()