net.sf.saxon.evpull
Class EventStackIterator

java.lang.Object
  extended by net.sf.saxon.evpull.EventStackIterator
All Implemented Interfaces:
EventIterator, PullEvent

public class EventStackIterator
extends Object
implements EventIterator

An EventStackIterator is an EventIterator that delivers a flat sequence of PullEvents containing no nested EventIterators


Method Summary
static EventIterator flatten(EventIterator base)
          Factory method to create an iterator that flattens the sequence of PullEvents received from a base iterator, that is, it returns an EventIterator that will never return any nested iterators.
 boolean isFlatSequence()
          Determine whether the EventIterator returns a flat sequence of events, or whether it can return nested event iterators
 PullEvent next()
          Get the next event in the sequence.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

flatten

public static EventIterator flatten(EventIterator base)
Factory method to create an iterator that flattens the sequence of PullEvents received from a base iterator, that is, it returns an EventIterator that will never return any nested iterators.

Parameters:
base - the base iterator. Any nested EventIterator returned by the base iterator will be flattened, recursively.

next

public PullEvent next()
               throws XPathException
Get the next event in the sequence. This will never be an EventIterator.

Specified by:
next in interface EventIterator
Returns:
the next event, or null when the sequence is exhausted
Throws:
XPathException - if a dynamic evaluation error occurs

isFlatSequence

public boolean isFlatSequence()
Determine whether the EventIterator returns a flat sequence of events, or whether it can return nested event iterators

Specified by:
isFlatSequence in interface EventIterator
Returns:
true if the next() method is guaranteed never to return an EventIterator


Copyright (C) Michael H. Kay. All rights reserved.