Class LetClause

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

public class LetClause extends Clause
A "let" clause in a FLWOR expression
  • Constructor Details

    • LetClause

      public LetClause()
  • Method Details

    • 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()
      Description copied from class: Clause
      Create a copy of this clause
      Specified by:
      copy in class Clause
      Returns:
      the copied 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