Class WindowClause

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

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

  • Constructor Details

    • WindowClause

      public WindowClause()
  • Method Details

    • 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
    • initSequence

      public void initSequence(FLWORExpression flwor, Expression sequence)
    • setSequence

      public void setSequence(Expression sequence)
    • getSequence

      public Expression getSequence()
    • initStartCondition

      public void initStartCondition(FLWORExpression flwor, Expression startCondition)
    • setStartCondition

      public void setStartCondition(Expression startCondition)
    • getStartCondition

      public Expression getStartCondition()
    • initEndCondition

      public void initEndCondition(FLWORExpression flwor, Expression endCondition)
    • 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)
    • getItemTypeChecker

      public ItemTypeCheckingFunction getItemTypeChecker()
    • 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
    • checkWindowContents

      protected void checkWindowContents(WindowClause.Window w) throws XPathException
      Throws:
      XPathException
    • 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. Note that this will not have been fully initialized.
      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
    • 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) 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)