com.saxonica.expr.flwor

## Class WindowClause

- java.lang.Object
- - net.sf.saxon.expr.flwor.Clause
  - - com.saxonica.expr.flwor.WindowClause

-     public class WindowClause
      extends Clause

  Implements an XQuery 3.0 sliding or tumbling window clause within a FLWOR expression

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `WindowClause.Window` Information about a window: the items making up the window, as well as the variables relating to the start and end of the window, and the status of the winoow in relation to the processing of the current input sequence.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `END_ITEM`
    `static int` | `END_ITEM_POSITION`
    `static int` | `END_NEXT_ITEM`
    `static int` | `END_PREVIOUS_ITEM`
    `static int` | `START_ITEM`
    `static int` | `START_ITEM_POSITION`
    `static int` | `START_NEXT_ITEM`
    `static int` | `START_PREVIOUS_ITEM`
    `static int` | `WINDOW_VAR`

    - ### Fields inherited from class net.sf.saxon.expr.flwor.Clause

      `COUNT, FOR, GROUPBYCLAUSE, LET, ORDERBYCLAUSE, TRACE, WHERE, WINDOW`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `WindowClause()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Clause` | `copy()` Create a copy of this clause
    `void` | `explain(ExpressionPresenter out)` Diagnostic print of expression structure.
    `int` | `getClauseKey()` Get a keyword identifying what kind of clause this is
    `Expression` | `getEndCondition()`
    `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
    `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[]` | `getRangeVariables()` Get the variables bound by this clause
    `Expression` | `getSequence()`
    `Expression` | `getStartCondition()`
    `LocalVariableBinding` | `getVariableBinding(int role)`
    `boolean` | `isIncludeUnclosedWindows()`
    `boolean` | `isSlidingWindow()`
    `boolean` | `isTumblingWindow()`
    `protected static Sequence` | `makeValue(Item item)`
    `protected boolean` | `matchesEnd(WindowClause.Window window, Item previous, Item current, Item next, int position, XPathContext context)` Determine whether the current item is the last item in a window
    `protected boolean` | `matchesStart(Item previous, Item current, Item next, int position, XPathContext context)` Determine whether the current item is the start of a new window
    `void` | `processSubExpressions(ExpressionProcessor processor)` Process the subexpressions of this clause
    `void` | `setEndCondition(Expression endCondition)`
    `void` | `setIncludeUnclosedWindows(boolean include)`
    `void` | `setIsSlidingWindow(boolean sliding)`
    `void` | `setSequence(Expression sequence)`
    `void` | `setStartCondition(Expression startCondition)`
    `void` | `setVariableBinding(int role, LocalVariableBinding binding)`

    - ### Methods inherited from class net.sf.saxon.expr.flwor.Clause

      `containsNonInlineableVariableReference, gatherVariableReferences, getLocationId, optimize, refineVariableType, setLocationId, typeCheck`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### WINDOW_VAR

          public static final int WINDOW_VAR

      See Also:
        Constant Field Values

    - #### START_ITEM

          public static final int START_ITEM

      See Also:
        Constant Field Values

    - #### START_ITEM_POSITION

          public static final int START_ITEM_POSITION

      See Also:
        Constant Field Values

    - #### START_PREVIOUS_ITEM

          public static final int START_PREVIOUS_ITEM

      See Also:
        Constant Field Values

    - #### START_NEXT_ITEM

          public static final int START_NEXT_ITEM

      See Also:
        Constant Field Values

    - #### END_ITEM

          public static final int END_ITEM

      See Also:
        Constant Field Values

    - #### END_ITEM_POSITION

          public static final int END_ITEM_POSITION

      See Also:
        Constant Field Values

    - #### END_PREVIOUS_ITEM

          public static final int END_PREVIOUS_ITEM

      See Also:
        Constant Field Values

    - #### END_NEXT_ITEM

          public static final int END_NEXT_ITEM

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### WindowClause

          public WindowClause()

  - ### 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

    - #### setIsSlidingWindow

          public void setIsSlidingWindow(boolean sliding)

    - #### isSlidingWindow

          public boolean isSlidingWindow()

    - #### isTumblingWindow

          public boolean isTumblingWindow()

    - #### setIncludeUnclosedWindows

          public void setIncludeUnclosedWindows(boolean include)

    - #### isIncludeUnclosedWindows

          public boolean isIncludeUnclosedWindows()

    - #### setSequence

          public void setSequence(Expression sequence)

    - #### getSequence

          public Expression getSequence()

    - #### setStartCondition

          public void setStartCondition(Expression startCondition)

    - #### getStartCondition

          public Expression getStartCondition()

    - #### setEndCondition

          public void setEndCondition(Expression endCondition)

    - #### getEndCondition

          public Expression getEndCondition()

    - #### setVariableBinding

          public void setVariableBinding(int role,
                                LocalVariableBinding binding)
                                  throws XPathException

      Throws:
        `XPathException`

    - #### getVariableBinding

          public LocalVariableBinding getVariableBinding(int role)

    - #### copy

          public Clause copy()

      Description copied from class: `Clause`
      Create a copy of this clause
      Specified by:
        `copy` in class `Clause`
      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,
                                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` - the dynamic evaluation 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

    - #### getRangeVariables

          public LocalVariableBinding[] getRangeVariables()

      Get the variables bound by this clause
      Overrides:
        `getRangeVariables` in class `Clause`
      Returns:
        the variable bindings

    - #### 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

    - #### 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`

    - #### 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`

    - #### makeValue

          protected static Sequence makeValue(Item item)

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