net.sf.saxon.expr.sort
Class SortedGroupIterator

java.lang.Object
  extended by net.sf.saxon.expr.sort.SortedIterator
      extended by 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.