Package net.sf.saxon.expr.flwor
Class WindowClause
java.lang.Object
net.sf.saxon.expr.flwor.Clause
net.sf.saxon.expr.flwor.WindowClause
Implements an XQuery 3.0 sliding or tumbling window clause within a FLWOR expression
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classInformation 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.Nested classes/interfaces inherited from class net.sf.saxon.expr.flwor.Clause
Clause.ClauseName -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet) Collect information about the navigation paths followed by this clause, for document projection purposesprotected voidcopy(FLWORExpression flwor, RebindingMap rebindings) Create a copy of this clausevoidDiagnostic print of expression structure.Get a keyword identifying what kind of clause this isgetPullStream(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 modifiesgetPushStream(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 streamGet the variables bound by this clausegetVariableBinding(int role) voidinitEndCondition(FLWORExpression flwor, Expression endCondition) voidinitSequence(FLWORExpression flwor, Expression sequence) voidinitStartCondition(FLWORExpression flwor, Expression startCondition) booleanAsk whether windows that are unclosed at the end of the sequence should be included in the resultbooleanAsk whether this is a sliding or tumbling windowbooleanAsk whether this is a sliding or tumbling windowbooleanprotected static Sequenceprotected booleanmatchesEnd(WindowClause.Window window, Item previous, Item current, Item next, int position, XPathContext context) Determine whether the current item is the last item in a windowprotected booleanmatchesStart(Item previous, Item current, Item next, int position, XPathContext context) Determine whether the current item is the start of a new windowvoidprocessOperands(OperandProcessor processor) Process the subexpressions of this clausevoidsetEndCondition(Expression endCondition) voidsetIncludeUnclosedWindows(boolean include) Say whether windows that are unclosed at the end of the sequence should be included in the resultvoidsetIsSlidingWindow(boolean sliding) Say whether this is a sliding or tumbling windowvoidsetSequence(Expression sequence) voidsetStartCondition(Expression startCondition) voidsetVariableBinding(int role, LocalVariableBinding binding) voidtypeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) Type-check any expression contained within this clauseMethods inherited from class net.sf.saxon.expr.flwor.Clause
containsNonInlineableVariableReference, gatherVariableReferences, getConfiguration, getLocation, getPackageData, getTraceInfo, isRepeated, optimize, refineVariableType, setLocation, setPackageData, setRepeated, toShortString
-
Field Details
-
WINDOW_VAR
public static final int WINDOW_VAR- See Also:
-
START_ITEM
public static final int START_ITEM- See Also:
-
START_ITEM_POSITION
public static final int START_ITEM_POSITION- See Also:
-
START_PREVIOUS_ITEM
public static final int START_PREVIOUS_ITEM- See Also:
-
START_NEXT_ITEM
public static final int START_NEXT_ITEM- See Also:
-
END_ITEM
public static final int END_ITEM- See Also:
-
END_ITEM_POSITION
public static final int END_ITEM_POSITION- See Also:
-
END_PREVIOUS_ITEM
public static final int END_PREVIOUS_ITEM- See Also:
-
END_NEXT_ITEM
public static final int END_NEXT_ITEM- See Also:
-
-
Constructor Details
-
WindowClause
public WindowClause()
-
-
Method Details
-
getClauseKey
Description copied from class:ClauseGet a keyword identifying what kind of clause this is- Specified by:
getClauseKeyin classClause- 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
-
setSequence
-
getSequence
-
initStartCondition
-
setStartCondition
-
getStartCondition
-
initEndCondition
-
setEndCondition
-
getEndCondition
-
setVariableBinding
- Throws:
XPathException
-
getVariableBinding
-
getItemTypeChecker
-
isWindowMustBeSingleton
public boolean isWindowMustBeSingleton() -
typeCheck
public void typeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) throws XPathException Description copied from class:ClauseType-check any expression contained within this clause- Overrides:
typeCheckin classClause- Parameters:
visitor- the ExpressionVisitor, providing access to static context informationcontextInfo- static information about the dynamic context- Throws:
XPathException- if any error is detected
-
checkWindowContents
- Throws:
XPathException
-
copy
Description copied from class:ClauseCreate a copy of this clause -
getPullStream
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:
getPullStreamin classClause- Parameters:
base- the input tuple streamcontext- the dynamic evaluation context- Returns:
- the output tuple stream
-
getPushStream
Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple stream- Specified by:
getPushStreamin classClause- Parameters:
destination- the output tuple streamoutput- the destination for the resultcontext- the dynamic evaluation context- Returns:
- the push tuple stream that implements the functionality of this clause of the FLWOR expression
-
processOperands
Process the subexpressions of this clause- Specified by:
processOperandsin classClause- Parameters:
processor- the expression processor used to process the subexpressions- Throws:
XPathException- if any error is detected
-
addToPathMap
Description copied from class:ClauseCollect information about the navigation paths followed by this clause, for document projection purposes- Specified by:
addToPathMapin classClause- Parameters:
pathMap- the path map in which the data is to be collectedpathMapNodeSet- the path map node set representing the paths to the context item
-
getRangeVariables
Get the variables bound by this clause- Overrides:
getRangeVariablesin classClause- Returns:
- the variable bindings
-
explain
Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.- Specified by:
explainin classClause- 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 itemnext- the item after the current item (null if the current item is the last)position- the position of the current item in the input sequencecontext- 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 questionprevious- the item before the current item (null if the current item is the first)current- the current itemnext- the item after the current item (null if the current item is the last)position- the position of the current item in the input sequencecontext- 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
-