public class GroupByClause extends Clause
| Modifier and Type | Class and Description |
|---|---|
static class |
GroupByClause.ObjectToBeGrouped
Inner class representing the contents of a tuple from the pre-grouping tuple stream;
a set of such objects consitutes a group.
|
class |
GroupByClause.TupleComparisonKey
Inner class representing a tuple comparison key: that is, an arbitrary object whose equals() and hashCode()
methods can be used to test whether two tuples have equivalent grouping keys
|
COUNT, FOR, GROUPBYCLAUSE, LET, ORDERBYCLAUSE, TRACE, WHERE, WINDOW| Constructor and Description |
|---|
GroupByClause(Configuration config)
Create a group-by clause
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
containsNonInlineableVariableReference(Binding binding)
Determine whether the clause contains a reference to a local variable binding that cannot be inlined
|
GroupByClause |
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
|
GroupByClause.TupleComparisonKey |
getComparisonKey(Tuple t)
Callback to get the comparison key for a tuple.
|
TupleExpression |
getGroupingTupleExpression()
Get the tuple expression that evaluates all the grouping variables, returning the values these variables
take in the input stream
|
TuplePull |
getPullStream(TuplePull base,
XPathContext context)
Get a 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
|
TupleExpression |
getRetainedTupleExpression()
Get the tuple expression that evaluates all the non-grouping variables, returning the values these variables
take in the grouping input stream
|
void |
optimize(ExpressionVisitor visitor,
ExpressionVisitor.ContextItemType contextItemType)
Optimize any expressions contained within this clause
|
void |
processGroup(List<GroupByClause.ObjectToBeGrouped> group,
XPathContext context)
Process a group of tuples from the input stream to generate a single tuple in the output stream.
|
void |
processSubExpressions(ExpressionProcessor processor)
Process the subexpressions of this clause
|
void |
setComparers(GenericAtomicComparer[] comparers)
Set the comparers used for the grouping keys.
|
void |
setGroupingTupleExpression(TupleExpression expr)
Set a tuple expression that evaluates all the grouping variables, returning the values these variables
take in the input stream
|
void |
setRetainedTupleExpression(TupleExpression expr)
Set a tuple expression that evaluates all the non-grouping variables, returning the values these variables take
in the grouping input stream
|
void |
setVariableBindings(LocalVariableBinding[] bindings)
Set the bindings of new variables created by the grouping clause, which constitute the variables
appearing in the output (post-grouping) tuple stream.
|
String |
toString() |
gatherVariableReferences, getLocationId, refineVariableType, setLocationId, typeCheckpublic GroupByClause(Configuration config)
config - the Saxon configurationpublic int getClauseKey()
ClausegetClauseKey in class Clausepublic boolean containsNonInlineableVariableReference(Binding binding)
ClausecontainsNonInlineableVariableReference in class Clausebinding - the binding for the local variable in questionpublic GroupByClause copy()
Clausepublic void setRetainedTupleExpression(TupleExpression expr)
expr - the tuple expressionpublic TupleExpression getRetainedTupleExpression()
public void optimize(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType) throws XPathException
Clauseoptimize in class Clausevisitor - the ExpressionVisitor, providing access to static context informationcontextItemType - the type of the context itemXPathException - if any error is detectedpublic void setGroupingTupleExpression(TupleExpression expr)
expr - the tuple expressionpublic TupleExpression getGroupingTupleExpression()
public void setVariableBindings(LocalVariableBinding[] bindings)
bindings - the bindings of the variables created in the output streampublic LocalVariableBinding[] getRangeVariables()
getRangeVariables in class Clausepublic void setComparers(GenericAtomicComparer[] comparers)
comparers - the comparers for grouping keys.public TuplePull getPullStream(TuplePull base, XPathContext context)
getPullStream in class Clausebase - the input tuple streamcontext - the XPath dynamic evaluation contextpublic TuplePush getPushStream(TuplePush destination, XPathContext context)
getPushStream in class Clausedestination - the output tuple streamcontext - public void processSubExpressions(ExpressionProcessor processor) throws XPathException
processSubExpressions in class Clauseprocessor - the expression processor used to process the subexpressionsXPathException - if any error is detectedpublic void explain(ExpressionPresenter out)
public void processGroup(List<GroupByClause.ObjectToBeGrouped> group, XPathContext context) throws XPathException
group - the group of input tuplescontext - the XPath dynamic evaluation contextXPathExceptionpublic GroupByClause.TupleComparisonKey getComparisonKey(Tuple t)
Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.