net.sf.saxon.expr.flwor
Class LetClause

java.lang.Object
  extended by net.sf.saxon.expr.flwor.Clause
      extended by net.sf.saxon.expr.flwor.LetClause

public class LetClause
extends Clause

A "let" clause in a FLWOR expression


Field Summary
 
Fields inherited from class net.sf.saxon.expr.flwor.Clause
COUNT, FOR, GROUPBYCLAUSE, LET, ORDERBYCLAUSE, WHERE, WINDOW
 
Constructor Summary
LetClause()
           
 
Method Summary
 LetClause copy()
           
 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 refineVariableType(ItemType type, int cardinality, Value constantValue, int properties, ExpressionVisitor visitor)
          Provide additional information about the type of the variable, typically derived by analyzing the initializer of the variable binding
 void setRangeVariable(LocalVariableBinding binding)
           
 void setSequence(Expression sequence)
           
 String toString()
           
 void typeCheck(ExpressionVisitor visitor)
          Type-check the expression
 
Methods inherited from class net.sf.saxon.expr.flwor.Clause
optimize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LetClause

public LetClause()
Method Detail

getClauseKey

public int getClauseKey()
Description copied from class: Clause
Get a keyword identifying what kind of clause this is

Specified by:
getClauseKey in class Clause
Returns:
the kind of clause

copy

public LetClause copy()
Specified by:
copy in class Clause

setSequence

public void setSequence(Expression sequence)

getSequence

public Expression getSequence()

setRangeVariable

public void setRangeVariable(LocalVariableBinding binding)

getRangeVariable

public LocalVariableBinding getRangeVariable()

getRangeVariables

public LocalVariableBinding[] getRangeVariables()
Get the number of variables bound by this clause

Overrides:
getRangeVariables in class Clause
Returns:
the number of variable bindings

getPullStream

public 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

Specified by:
getPullStream in class Clause
Parameters:
base - the input tuple stream
context -
Returns:
the output tuple stream

getPushStream

public 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

Specified by:
getPushStream in class Clause
Parameters:
destination - the output tuple stream
context -
Returns:
the push tuple stream that implements the functionality of this clause of the FLWOR expression

processSubExpressions

public void processSubExpressions(ExpressionProcessor processor)
                           throws XPathException
Process the subexpressions of this clause

Specified by:
processSubExpressions in class Clause
Parameters:
processor - the expression processor used to process the subexpressions
Throws:
XPathException - if any error is detected

typeCheck

public void typeCheck(ExpressionVisitor visitor)
               throws XPathException
Type-check the expression

Overrides:
typeCheck in class Clause
Parameters:
visitor - the ExpressionVisitor, providing access to static context information
Throws:
XPathException - if any error is detected

gatherVariableReferences

public void gatherVariableReferences(ExpressionVisitor visitor,
                                     Binding binding,
                                     List<VariableReference> references)
Description copied from class: Clause
Build a list of all references to a variables declared in this clause

Overrides:
gatherVariableReferences in class Clause
Parameters:
visitor - the expression visitor
binding - a variable declared in this clause
references - the list of variable references, initially empty, to which the method will append

refineVariableType

public void refineVariableType(ExpressionVisitor visitor,
                               List<VariableReference> references,
                               Expression returnExpr)
Description copied from class: Clause
Supply improved type information to the expressions that contain references to the variables declared in this clause

Overrides:
refineVariableType in class Clause
Parameters:
visitor - the expression visitor
references - the list of variable references
returnExpr - the expression in the return clause

refineVariableType

public void refineVariableType(ItemType type,
                               int cardinality,
                               Value constantValue,
                               int properties,
                               ExpressionVisitor visitor)
Provide additional information about the type of the variable, typically derived by analyzing the initializer of the variable binding

Parameters:
type - the item type of the variable
cardinality - the cardinality of the variable
constantValue - the actual value of the variable, if this is known statically, otherwise null
properties - additional static properties of the variable's initializer
visitor - an ExpressionVisitor

explain

public void explain(ExpressionPresenter out)
Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.

Specified by:
explain in class Clause
Parameters:
out - the expression presenter used to display the structure

toString

public String toString()
Overrides:
toString in class Object


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.