net.sf.saxon.evpull
Class EventMappingIterator

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

public final class EventMappingIterator
extends Object
implements EventIterator

MappingIterator merges a sequence of sequences into a single sequence. It takes as inputs an iteration, and a mapping function to be applied to each Item returned by that iteration. The mapping function itself returns another iteration. The result is an iteration of iterators. To convert this int a single flat iterator over a uniform sequence of events, the result must be wrapped in an EventStackIterator


Constructor Summary
EventMappingIterator(SequenceIterator base, EventMappingFunction action)
          Construct a MappingIterator that will apply a specified MappingFunction to each Item returned by the base iterator.
 
Method Summary
 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EventMappingIterator

public EventMappingIterator(SequenceIterator base,
                            EventMappingFunction action)
Construct a MappingIterator that will apply a specified MappingFunction to each Item returned by the base iterator.

Parameters:
base - the base iterator
action - the mapping function to be applied
Method Detail

next

public PullEvent next()
               throws XPathException
Description copied from interface: EventIterator
Get the next event in the sequence

Specified by:
next in interface EventIterator
Returns:
the next event, or null when the sequence is exhausted. Note that since an EventIterator is itself a PullEvent, this method may return a nested iterator.
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) 2004-2010 Saxonica Limited. All rights reserved.