net.sf.saxon.tinytree

Class TinyTreeEventIterator

Implemented Interfaces:
EventIterator, PullEvent

public class TinyTreeEventIterator
extends java.lang.Object
implements EventIterator

This implementation of the Saxon event-pull interface starts from a document, element, text, comment, or processing-instruction node in a TinyTree, and returns the events corresponding to that node and its descendants (including their attributes and namespaces). The class performs the same function as the general-purpose Decomposer class, but is specialized to exploit the TinyTree data structure: in particular, it never materializes any Node objects.

Constructor Summary

TinyTreeEventIterator(TinyNodeImpl startNode)
Create a TinyTreeEventIterator to return events associated with a tree or subtree

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

Constructor Details

TinyTreeEventIterator

public TinyTreeEventIterator(TinyNodeImpl startNode)
Create a TinyTreeEventIterator to return events associated with a tree or subtree
Parameters:
startNode - the root of the tree or subtree. Must be a document or element node.

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
Get the next event
Specified by:
next in interface EventIterator
Returns:
a PullEvent object representing the next event, or null when the sequence is exhausted