## 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:
  LastPositionFinder, GroupIterator, Sortable, 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
`base, comparators, context, count, nodeKeys, position, recordSize, sortKeyEvaluator`

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, Instruction origin)`

Method Summary
`protected void` `buildArray()` Override the method that builds the array of values and sort keys.
`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.expr.sort.SortedIterator
`close, compare, current, getAnother, getLastPosition, getProperties, hasNext, next, position, setHostLanguage, swap`

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, current, getAnother, getProperties, next, position`

Constructor Detail

### SortedGroupIterator

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

Method Detail

### buildArray

    protected void buildArray()
                       throws XPathException

  Override the method that builds the array of values and sort keys.

  Overrides:
    `buildArray` in class `SortedIterator`
  Throws:
    `XPathException`

### 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) 2004-2010 Saxonica Limited. All rights reserved.