Class LetClause


  • public class LetClause
    extends Clause
    A "let" clause in a FLWOR expression
    • 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()
        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)
      • 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
      • gatherVariableReferences

        public void gatherVariableReferences​(ExpressionVisitor visitor,
                                             Binding binding,
                                             java.util.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,
                                       java.util.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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object