Package net.sf.saxon.expr.flwor
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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classWindowClause.WindowInformation 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
Fields Modifier and Type Field Description static intEND_ITEMstatic intEND_ITEM_POSITIONstatic intEND_NEXT_ITEMstatic intEND_PREVIOUS_ITEMstatic intSTART_ITEMstatic intSTART_ITEM_POSITIONstatic intSTART_NEXT_ITEMstatic intSTART_PREVIOUS_ITEMstatic intWINDOW_VAR
-
Constructor Summary
Constructors Constructor Description WindowClause()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)Collect information about the navigation paths followed by this clause, for document projection purposesvoidcheckWindowContents(WindowClause.Window w)Clausecopy(FLWORExpression flwor, RebindingMap rebindings)Create a copy of this clausevoidexplain(ExpressionPresenter out)Diagnostic print of expression structure.Clause.ClauseNamegetClauseKey()Get a keyword identifying what kind of clause this isExpressiongetEndCondition()ItemTypeCheckingFunctiongetItemTypeChecker()TuplePullgetPullStream(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 modifiesTuplePushgetPushStream(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 streamLocalVariableBinding[]getRangeVariables()Get the variables bound by this clauseExpressiongetSequence()ExpressiongetStartCondition()LocalVariableBindinggetVariableBinding(int role)voidinitEndCondition(FLWORExpression flwor, Expression endCondition)voidinitSequence(FLWORExpression flwor, Expression sequence)voidinitStartCondition(FLWORExpression flwor, Expression startCondition)booleanisIncludeUnclosedWindows()booleanisSlidingWindow()booleanisTumblingWindow()booleanisWindowMustBeSingleton()protected static SequencemakeValue(Item item)protected 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)voidsetIsSlidingWindow(boolean sliding)voidsetSequence(Expression sequence)voidsetStartCondition(Expression startCondition)voidsetVariableBinding(int role, LocalVariableBinding binding)voidtypeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo)Type-check any expression contained within this clause-
Methods inherited from class net.sf.saxon.expr.flwor.Clause
containsNonInlineableVariableReference, gatherVariableReferences, getConfiguration, getLocation, getPackageData, getTraceInfo, isRepeated, optimize, refineVariableType, setLocation, setPackageData, setRepeated, toShortString
-
-
-
-
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
-
-
Method Detail
-
getClauseKey
public Clause.ClauseName 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)
-
isSlidingWindow
public boolean isSlidingWindow()
-
isTumblingWindow
public boolean isTumblingWindow()
-
setIncludeUnclosedWindows
public void setIncludeUnclosedWindows(boolean include)
-
isIncludeUnclosedWindows
public boolean isIncludeUnclosedWindows()
-
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: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
public void checkWindowContents(WindowClause.Window w) throws XPathException
- Throws:
XPathException
-
copy
public Clause copy(FLWORExpression flwor, RebindingMap rebindings)
Description copied from class:ClauseCreate a copy of this 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:
getPullStreamin classClause- Parameters:
base- the input tuple streamcontext- 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:
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
public void processOperands(OperandProcessor processor) throws XPathException
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
public void addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
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
public LocalVariableBinding[] getRangeVariables()
Get the variables bound by this clause- Overrides:
getRangeVariablesin classClause- 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:
explainin classClause- Parameters:
out- the expression presenter used to display the structure- Throws:
XPathException
-
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
-
-