net.sf.saxon.tinytree

Class TinyTreeEventIterator

public class TinyTreeEventIterator extends Object implements EventIterator, LocationProvider

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, PipelineConfiguration pipe)
Create a TinyTreeEventIterator to return events associated with a tree or subtree
Method Summary
intgetColumnNumber(long locationId)
Get location information: the column number of the current start element event
intgetLineNumber(long locationId)
Get location information: the line number of the current start element event
StringgetSystemId(long locationId)
Get location information: the system Id of the current start element event
booleanisFlatSequence()
Determine whether the EventIterator returns a flat sequence of events, or whether it can return nested event iterators
PullEventnext()
Get the next event

Constructor Detail

TinyTreeEventIterator

public TinyTreeEventIterator(TinyNodeImpl startNode, PipelineConfiguration pipe)
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. pipe the Saxon pipeline configuration

Throws: IllegalArgumentException if the start node is an attribute or namespace node.

Method Detail

getColumnNumber

public int getColumnNumber(long locationId)
Get location information: the column number of the current start element event

Parameters: locationId in this case, the node number in the tiny tree

Returns: the column number of the node if known, or -1 otherwise

getLineNumber

public int getLineNumber(long locationId)
Get location information: the line number of the current start element event

Parameters: locationId in this case, the node number in the tiny tree

Returns: the line number of the node if known, or -1 otherwise

getSystemId

public String getSystemId(long locationId)
Get location information: the system Id of the current start element event

Parameters: locationId in this case, the node number in the tiny tree

Returns: the system Id of the node: that is its base URI, before taking xml:base into account

isFlatSequence

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

Returns: true if the next() method is guaranteed never to return an EventIterator

next

public PullEvent next()
Get the next event

Returns: a PullEvent object representing the next event, or null when the sequence is exhausted