Package net.sf.saxon.expr.sort
Class SortedGroupIterator
- java.lang.Object
-
- net.sf.saxon.expr.sort.SortedIterator
-
- net.sf.saxon.expr.sort.SortedGroupIterator
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,LastPositionFinder
,GroupIterator
,SequenceIterator
,LookaheadIterator
public class SortedGroupIterator extends SortedIterator implements GroupIterator
A SortedGroupIterator is a modified SortedIterator. It sorts a sequence of groups, and is itself a GroupIterator. The modifications retain extra information about the items being sorted. The items are each the leading item of a group, and as well as the item itself, the iterator preserves information about the group: specifically, an iterator over the items in the group, and the value of the grouping key (if any).
-
-
Field Summary
-
Fields inherited from class net.sf.saxon.expr.sort.SortedIterator
comparators, context, count, position, sortKeyEvaluator, values
-
-
Constructor Summary
Constructors Constructor Description SortedGroupIterator(XPathContext context, GroupIterator base, SortKeyEvaluator sortKeyEvaluator, AtomicComparer[] comparators)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
buildArray()
Override the method that builds the array of values and sort keys.GroundedValue
currentGroup()
Get a sequence containing the members of the current group, in population order.AtomicSequence
getCurrentGroupingKey()
Get the grouping key of the current groupManualGroupIterator
getSnapShot(XPathContext context)
Get a pseudo-iterator which represents a snapshot of this sequence at the current position-
Methods inherited from class net.sf.saxon.expr.sort.SortedIterator
getBaseIterator, getLength, hasNext, next, setHostLanguage, supportsGetLength, supportsHasNext
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.sf.saxon.om.SequenceIterator
close, next
-
-
-
-
Constructor Detail
-
SortedGroupIterator
public SortedGroupIterator(XPathContext context, GroupIterator base, SortKeyEvaluator sortKeyEvaluator, AtomicComparer[] comparators)
-
-
Method Detail
-
buildArray
protected void buildArray() throws XPathException
Override the method that builds the array of values and sort keys.- Overrides:
buildArray
in classSortedIterator
- Throws:
XPathException
- in the event of a dynamic error
-
getCurrentGroupingKey
public AtomicSequence getCurrentGroupingKey()
Description copied from interface:GroupIterator
Get the grouping key of the current group- Specified by:
getCurrentGroupingKey
in interfaceGroupIterator
- Returns:
- the current grouping key in the case of group-by or group-adjacent, or null in the case of group-starting-with and group-ending-with
-
currentGroup
public GroundedValue currentGroup() throws XPathException
Description copied from interface:GroupIterator
Get a sequence containing the members of the current group, in population order. This may be a MemoSequence rather than a grounded value- Specified by:
currentGroup
in interfaceGroupIterator
- Returns:
- a sequence containing all the members of the current group, in population order.
- Throws:
XPathException
- if a dynamic error occurs
-
getSnapShot
public ManualGroupIterator getSnapShot(XPathContext context)
Description copied from interface:GroupIterator
Get a pseudo-iterator which represents a snapshot of this sequence at the current position- Specified by:
getSnapShot
in interfaceGroupIterator
- Parameters:
context
- the XPath context- Returns:
- the snapshot sequence
-
-