## net.sf.saxon.sort
Class GroupStartingIterator

    java.lang.Object
      |
      +--net.sf.saxon.sort.GroupStartingIterator

All Implemented Interfaces:
  GroupIterator, SequenceIterator

public class GroupStartingIterator
extends java.lang.Object
implements GroupIterator

A GroupStartingIterator iterates over a sequence of groups defined by xsl:for-each-group group-starting-with="x". The groups are returned in order of first appearance.

Constructor Summary
`GroupStartingIterator(SequenceIterator population, Pattern startPattern, XPathContext context)`

Method Summary
`Item` `current()` Get the current value in the sequence (the one returned by the most recent call on next()).
`SequenceIterator` `getAnother()` Get another SequenceIterator that iterates over the same items as the original, but which is repositioned at the start of the sequence.
`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.
`Item` `next()` Get the next item in the sequence.
`int` `position()` Get the current position.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### GroupStartingIterator

    public GroupStartingIterator(SequenceIterator population,
                                 Pattern startPattern,
                                 XPathContext context)
                          throws XPathException

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()

  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.

### next

    public Item next()
              throws XPathException

  Description copied from interface: `SequenceIterator`
  Get the next item in the sequence.

  Specified by:
    `next` in interface `SequenceIterator`
  Returns:
    the next item, or null if there are no more items.
  Throws:
    `XPathException` - if an error occurs retrieving the next item

### current

    public Item current()

  Description copied from interface: `SequenceIterator`
  Get the current value in the sequence (the one returned by the most recent call on next()). This will be null before the first call of next().

  Specified by:
    `current` in interface `SequenceIterator`
  Returns:
    the current item, the one most recently returned by a call on next(); or null, if next() has not been called, or if the end of the sequence has been reached.

### position

    public int position()

  Description copied from interface: `SequenceIterator`
  Get the current position. This will be zero before the first call on next(), otherwise it will be the number of times that next() has been called.

  Specified by:
    `position` in interface `SequenceIterator`
  Returns:
    the current position, the position of the item returned by the most recent call of next()

### getAnother

    public SequenceIterator getAnother()
                                throws XPathException

  Description copied from interface: `SequenceIterator`
  Get another SequenceIterator that iterates over the same items as the original, but which is repositioned at the start of the sequence.

  Specified by:
    `getAnother` in interface `SequenceIterator`
  Returns:
    a SequenceIterator that iterates over the same items, positioned before the first item
  Throws:
    `XPathException` - if any error occurs