public class LetClause extends Clause
COUNT, FOR, GROUPBYCLAUSE, LET, ORDERBYCLAUSE, TRACE, WHERE, WINDOW
Constructor and Description |
---|
LetClause() |
Modifier and Type | Method and Description |
---|---|
LetClause |
copy()
Create a copy of this clause
|
void |
explain(ExpressionPresenter out)
Diagnostic print of expression structure.
|
void |
gatherVariableReferences(ExpressionVisitor visitor,
Binding binding,
List<VariableReference> references)
Build a list of all references to a variables declared in this clause
|
int |
getClauseKey()
Get a keyword identifying what kind of clause this is
|
TuplePull |
getPullStream(TuplePull base,
XPathContext context)
Get a tuple stream that implements the functionality of this clause, taking its
input from another tuple stream which this clause modifies
|
TuplePush |
getPushStream(TuplePush destination,
XPathContext context)
Get a push-mode tuple stream that implements the functionality of this clause, supplying its
output to another tuple stream
|
LocalVariableBinding |
getRangeVariable() |
LocalVariableBinding[] |
getRangeVariables()
Get the number of variables bound by this clause
|
Expression |
getSequence() |
void |
processSubExpressions(ExpressionProcessor processor)
Process the subexpressions of this clause
|
void |
refineVariableType(ExpressionVisitor visitor,
List<VariableReference> references,
Expression returnExpr)
Supply improved type information to the expressions that contain references to the variables declared in this clause
|
void |
setRangeVariable(LocalVariableBinding binding) |
void |
setSequence(Expression sequence) |
String |
toString() |
void |
typeCheck(ExpressionVisitor visitor)
Type-check the expression
|
containsNonInlineableVariableReference, getLocationId, optimize, setLocationId
public int getClauseKey()
Clause
getClauseKey
in class Clause
public void setSequence(Expression sequence)
public Expression getSequence()
public void setRangeVariable(LocalVariableBinding binding)
public LocalVariableBinding getRangeVariable()
public LocalVariableBinding[] getRangeVariables()
getRangeVariables
in class Clause
public TuplePull getPullStream(TuplePull base, XPathContext context)
getPullStream
in class Clause
base
- the input tuple streamcontext
- public TuplePush getPushStream(TuplePush destination, XPathContext context)
getPushStream
in class Clause
destination
- the output tuple streamcontext
- public void processSubExpressions(ExpressionProcessor processor) throws XPathException
processSubExpressions
in class Clause
processor
- the expression processor used to process the subexpressionsXPathException
- if any error is detectedpublic void typeCheck(ExpressionVisitor visitor) throws XPathException
typeCheck
in class Clause
visitor
- the ExpressionVisitor, providing access to static context informationXPathException
- if any error is detectedpublic void gatherVariableReferences(ExpressionVisitor visitor, Binding binding, List<VariableReference> references)
Clause
gatherVariableReferences
in class Clause
visitor
- the expression visitorbinding
- a variable declared in this clausereferences
- the list of variable references, initially empty, to which the method will appendpublic void refineVariableType(ExpressionVisitor visitor, List<VariableReference> references, Expression returnExpr)
Clause
refineVariableType
in class Clause
visitor
- the expression visitorreferences
- the list of variable referencesreturnExpr
- the expression in the return clausepublic void explain(ExpressionPresenter out)
Copyright (c) 2004-2014 Saxonica Limited. All rights reserved.