net.sf.saxon.expr.sort
Class GroupStartingIterator

java.lang.Object
  extended by net.sf.saxon.expr.sort.GroupMatchingIterator
      extended by net.sf.saxon.expr.sort.GroupStartingIterator
All Implemented Interfaces:
GroupIterator, SequenceIterator, LookaheadIterator

public class GroupStartingIterator
extends GroupMatchingIterator
implements LookaheadIterator, 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.


Field Summary
 
Fields inherited from class net.sf.saxon.expr.sort.GroupMatchingIterator
baseContext, current, currentMembers, next, pattern, population, position, runningContext
 
Fields inherited from interface net.sf.saxon.om.SequenceIterator
GROUNDED, LAST_POSITION_FINDER, LOOKAHEAD
 
Constructor Summary
GroupStartingIterator(SequenceIterator population, Pattern startPattern, XPathContext context)
           
 
Method Summary
protected  void advance()
           
 SequenceIterator getAnother()
          Get another SequenceIterator that iterates over the same items as the original, but which is repositioned at the start of the sequence.
 
Methods inherited from class net.sf.saxon.expr.sort.GroupMatchingIterator
close, current, getCurrentGroupingKey, getProperties, hasNext, iterateCurrentGroup, next, position
 
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.tree.iter.LookaheadIterator
hasNext
 
Methods inherited from interface net.sf.saxon.expr.sort.GroupIterator
getCurrentGroupingKey, iterateCurrentGroup
 
Methods inherited from interface net.sf.saxon.om.SequenceIterator
close, current, getProperties, next, position
 

Constructor Detail

GroupStartingIterator

public GroupStartingIterator(SequenceIterator population,
                             Pattern startPattern,
                             XPathContext context)
                      throws XPathException
Throws:
XPathException
Method Detail

advance

protected void advance()
                throws XPathException
Specified by:
advance in class GroupMatchingIterator
Throws:
XPathException

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.

This method allows access to all the items in the sequence without disturbing the current position of the iterator. Internally, its main use is in evaluating the last() function.

This method does not change the state of the iterator.

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


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