|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.saxon.expr.flwor.Clause com.saxonica.expr.flwor.GroupByClause
public class GroupByClause
This class represents an "group by" clause in a FLWOR expression
Nested Class Summary | |
---|---|
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 |
Field Summary |
---|
Fields inherited from class net.sf.saxon.expr.flwor.Clause |
---|
COUNT, FOR, GROUPBYCLAUSE, LET, ORDERBYCLAUSE, WHERE, WINDOW |
Constructor Summary | |
---|---|
GroupByClause(Configuration config)
Create a group-by clause |
Method Summary | |
---|---|
GroupByClause |
copy()
|
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()
|
Methods inherited from class net.sf.saxon.expr.flwor.Clause |
---|
gatherVariableReferences, refineVariableType, typeCheck |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public GroupByClause(Configuration config)
config
- the Saxon configurationMethod Detail |
---|
public int getClauseKey()
Clause
getClauseKey
in class Clause
public GroupByClause copy()
copy
in class Clause
public void setRetainedTupleExpression(TupleExpression expr)
expr
- the tuple expressionpublic TupleExpression getRetainedTupleExpression()
public void optimize(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType) throws XPathException
Clause
optimize
in class Clause
visitor
- the ExpressionVisitor, providing access to static context informationcontextItemType
- the type of the context item
XPathException
- 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 Clause
public void setComparers(GenericAtomicComparer[] comparers)
comparers
- the comparers for grouping keys.public TuplePull getPullStream(TuplePull base, XPathContext context)
getPullStream
in class Clause
base
- the input tuple streamcontext
- the XPath dynamic evaluation context
public TuplePush getPushStream(TuplePush destination, XPathContext context)
getPushStream
in class Clause
destination
- the output tuple streamcontext
-
public void processSubExpressions(ExpressionProcessor processor) throws XPathException
processSubExpressions
in class Clause
processor
- the expression processor used to process the subexpressions
XPathException
- if any error is detectedpublic void explain(ExpressionPresenter out)
explain
in class Clause
out
- the expression presenter used to display the structurepublic String toString()
toString
in class Object
public void processGroup(List<GroupByClause.ObjectToBeGrouped> group, XPathContext context) throws XPathException
group
- the group of input tuplescontext
- the XPath dynamic evaluation context
XPathException
public GroupByClause.TupleComparisonKey getComparisonKey(Tuple t)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |