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).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.sf.saxon.om.SequenceIterator
SequenceIterator.Property
-
-
Field Summary
-
Fields inherited from class net.sf.saxon.expr.sort.SortedIterator
base, 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.AtomicSequence
getCurrentGroupingKey()
Get the grouping key of the current groupManualGroupIterator
getSnapShot(XPathContext context)
Get a sequence which is a snapshot of this sequence at the current positionSequenceIterator
iterateCurrentGroup()
Get an iterator over the members of the current group, in population order.-
Methods inherited from class net.sf.saxon.expr.sort.SortedIterator
getLength, getProperties, hasNext, next, setHostLanguage
-
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, forEachOrFail, getProperties, materialize, 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
-
iterateCurrentGroup
public SequenceIterator iterateCurrentGroup() throws XPathException
Description copied from interface:GroupIterator
Get an iterator over the members of the current group, in population order. This must always be a clean iterator, that is, an iterator that starts at the first item of the group.- Specified by:
iterateCurrentGroup
in interfaceGroupIterator
- Returns:
- an iterator over all the members of the current group, in population order.
- Throws:
XPathException
- if a dynamic error occurs
-
getSnapShot
public ManualGroupIterator getSnapShot(XPathContext context) throws XPathException
Description copied from interface:GroupIterator
Get a sequence which is a snapshot of this sequence at the current position- Specified by:
getSnapShot
in interfaceGroupIterator
- Throws:
XPathException
-
-