net.sf.saxon.expr.sort
Interface GroupIterator

All Superinterfaces:
SequenceIterator
All Known Implementing Classes:
GroupAdjacentIterator, GroupByIterator, GroupEndingIterator, GroupMatchingIterator, GroupStartingIterator, MergeGroupingIterator, SortedGroupIterator

public interface GroupIterator
extends SequenceIterator

A GroupIterator is an iterator that iterates over a sequence of groups. The normal methods such as next() and current() always deliver the leading item of the group. Additional methods are available to get the grouping key for the current group (only applicable to group-by and group-adjacent), and to get all the members of the current group.


Field Summary
 
Fields inherited from interface net.sf.saxon.om.SequenceIterator
GROUNDED, LAST_POSITION_FINDER, LOOKAHEAD
 
Method Summary
 Value getCurrentGroupingKey()
          Get the grouping key of the current group
 SequenceIterator<? extends Item> iterateCurrentGroup()
          Get an iterator over the members of the current group, in population order.
 
Methods inherited from interface net.sf.saxon.om.SequenceIterator
close, current, getAnother, getProperties, next, position
 

Method Detail

getCurrentGroupingKey

Value getCurrentGroupingKey()
Get the grouping key of the current group

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

SequenceIterator<? extends Item> iterateCurrentGroup()
                                                     throws XPathException
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.

Returns:
an iterator over all the members of the current group, in population order.
Throws:
XPathException - if a dynamic error occurs


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.