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 TypeCheckerEnvironment
public void setConfiguration(Configuration configuration)
configuration
- the Saxon configurationpublic Executable getExecutable()
public void setExecutable(Executable executable)
executable
- the Executablepublic CollationMap getCollationMap()
getCollationMap
in interface TypeCheckerEnvironment
public java.util.Stack<Expression> getStack()
Expression
public 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 TypeCheckerEnvironment
message
- the messagepublic XPathContext makeDynamicContext()
makeDynamicContext
in interface TypeCheckerEnvironment
public Expression simplify(Expression exp) throws XPathException
simplify
in interface TypeCheckerEnvironment
exp
- the expression to be simplifiedXPathException
public Expression typeCheck(Expression exp, ItemType contextItemType) throws XPathException
typeCheck
in interface TypeCheckerEnvironment
exp
- 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 expressionXPathException
public 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()