Class WindowClause


  • public class WindowClause
    extends Clause
    Implements an XQuery 3.0 sliding or tumbling window clause within a FLWOR expression
    • Constructor Detail

      • WindowClause

        public WindowClause()
    • Method Detail

      • getClauseKey

        public Clause.ClauseName 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
      • setIsSlidingWindow

        public void setIsSlidingWindow​(boolean sliding)
        Say whether this is a sliding or tumbling window
        Parameters:
        sliding - true if this is a sliding window, false for a tumbling window
      • isSlidingWindow

        public boolean isSlidingWindow()
        Ask whether this is a sliding or tumbling window
        Returns:
        true if this is a sliding window, false for a tumbling window
      • isTumblingWindow

        public boolean isTumblingWindow()
        Ask whether this is a sliding or tumbling window
        Returns:
        false if this is a sliding window, true for a tumbling window
      • setIncludeUnclosedWindows

        public void setIncludeUnclosedWindows​(boolean include)
        Say whether windows that are unclosed at the end of the sequence should be included in the result
        Parameters:
        include - true if unclosed windows are to be included in the result
      • isIncludeUnclosedWindows

        public boolean isIncludeUnclosedWindows()
        Ask whether windows that are unclosed at the end of the sequence should be included in the result
        Returns:
        true if unclosed windows are to be included in the result
      • setSequence

        public void setSequence​(Expression sequence)
      • setStartCondition

        public void setStartCondition​(Expression startCondition)
      • getStartCondition

        public Expression getStartCondition()
      • setEndCondition

        public void setEndCondition​(Expression endCondition)
      • getEndCondition

        public Expression getEndCondition()
      • isWindowMustBeSingleton

        public boolean isWindowMustBeSingleton()
      • typeCheck

        public void typeCheck​(ExpressionVisitor visitor,
                              ContextItemStaticInfo contextInfo)
                       throws XPathException
        Description copied from class: Clause
        Type-check any expression contained within this clause
        Overrides:
        typeCheck in class Clause
        Parameters:
        visitor - the ExpressionVisitor, providing access to static context information
        contextInfo - static information about the dynamic context
        Throws:
        XPathException - if any error is detected
      • copy

        public Clause copy​(FLWORExpression flwor,
                           RebindingMap rebindings)
        Description copied from class: Clause
        Create a copy of this clause
        Specified by:
        copy in class Clause
        Parameters:
        flwor - the new FLWORExpression to contain the copied clause
        rebindings - the rebinding map
        Returns:
        the copied clause
      • getPullStream

        public TuplePull getPullStream​(TuplePull base,
                                       XPathContext context)
        Get a pull-mode 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 - the dynamic evaluation context
        Returns:
        the output tuple stream
      • getPushStream

        public TuplePush getPushStream​(TuplePush destination,
                                       Outputter output,
                                       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
        output - the destination for the result
        context - the dynamic evaluation context
        Returns:
        the push tuple stream that implements the functionality of this clause of the FLWOR expression
      • processOperands

        public void processOperands​(OperandProcessor processor)
                             throws XPathException
        Process the subexpressions of this clause
        Specified by:
        processOperands in class Clause
        Parameters:
        processor - the expression processor used to process the subexpressions
        Throws:
        XPathException - if any error is detected
      • addToPathMap

        public void addToPathMap​(PathMap pathMap,
                                 PathMap.PathMapNodeSet pathMapNodeSet)
        Description copied from class: Clause
        Collect information about the navigation paths followed by this clause, for document projection purposes
        Specified by:
        addToPathMap in class Clause
        Parameters:
        pathMap - the path map in which the data is to be collected
        pathMapNodeSet - the path map node set representing the paths to the context item
      • explain

        public void explain​(ExpressionPresenter out)
                     throws XPathException
        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
        Throws:
        XPathException - if any error occurs
      • matchesStart

        protected boolean matchesStart​(Item previous,
                                       Item current,
                                       Item next,
                                       int position,
                                       XPathContext context)
                                throws XPathException
        Determine whether the current item is the start of a new window
        Parameters:
        previous - the item before the current item (null if the current item is the first)
        current - the current item
        next - the item after the current item (null if the current item is the last)
        position - the position of the current item in the input sequence
        context - the dynamic evaluation context
        Returns:
        true if the current item forms the start of a new window
        Throws:
        XPathException - if a failure occurs evaluating the conditions
      • matchesEnd

        protected boolean matchesEnd​(WindowClause.Window window,
                                     Item previous,
                                     Item current,
                                     Item next,
                                     int position,
                                     XPathContext context)
                              throws XPathException
        Determine whether the current item is the last item in a window
        Parameters:
        window - the window in question
        previous - the item before the current item (null if the current item is the first)
        current - the current item
        next - the item after the current item (null if the current item is the last)
        position - the position of the current item in the input sequence
        context - the dynamic evaluation context
        Returns:
        true if the current item is the last item in the specified window
        Throws:
        XPathException - if a failure occurs evaluating the conditions
      • makeValue

        protected static Sequence makeValue​(Item item)