net.sf.saxon.evpull

Class EventMappingIterator

Implemented Interfaces:
EventIterator, PullEvent

public final class EventMappingIterator
extends java.lang.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()

Constructor Details

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 Details

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

next

public PullEvent next()
            throws XPathException
Specified by:
next in interface EventIterator