net.sf.saxon.sort
Class SortedGroupIterator

java.lang.Object
  extended by net.sf.saxon.sort.SortedIterator
      extended by net.sf.saxon.sort.SortedGroupIterator
All Implemented Interfaces:
LastPositionFinder, LookaheadIterator, SequenceIterator, GroupIterator, Sortable

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 interface net.sf.saxon.om.SequenceIterator
GROUNDED, LAST_POSITION_FINDER, LOOKAHEAD
 
Constructor Summary
SortedGroupIterator(XPathContext context, GroupIterator base, SortKeyEvaluator sortKeyEvaluator, AtomicComparer[] comparators, InstructionInfoProvider origin)
           
 
Method Summary
 AtomicValue getCurrentGroupingKey()
          Get the grouping key of the current group
 SequenceIterator iterateCurrentGroup()
          Get an iterator over the members of the current group, in population order.
 
Methods inherited from class net.sf.saxon.sort.SortedIterator
compare, current, getAnother, getLastPosition, getProperties, hasNext, next, position, setHostLanguage, swap
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.saxon.om.SequenceIterator
current, getAnother, getProperties, next, position
 

Constructor Detail

SortedGroupIterator

public SortedGroupIterator(XPathContext context,
                           GroupIterator base,
                           SortKeyEvaluator sortKeyEvaluator,
                           AtomicComparer[] comparators,
                           InstructionInfoProvider origin)
Method Detail

getCurrentGroupingKey

public AtomicValue getCurrentGroupingKey()
Description copied from interface: GroupIterator
Get the grouping key of the current group

Specified by:
getCurrentGroupingKey in interface GroupIterator
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 interface GroupIterator
Returns:
an iterator over all the members of the current group, in population order.
Throws:
XPathException


Copyright (C) Michael H. Kay. All rights reserved.