Class TinyTreeEventIterator

java.lang.Object
net.sf.saxon.tree.tiny.TinyTreeEventIterator
All Implemented Interfaces:
LocationProvider, EventIterator, PullEvent

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 Details

    • 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 Details

    • 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
      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
    • getSystemId

      public String getSystemId(long locationId)
      Get location information: the system Id of the current start element event
      Specified by:
      getSystemId in interface LocationProvider
      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
    • getLineNumber

      public int getLineNumber(long locationId)
      Get location information: the line number of the current start element event
      Specified by:
      getLineNumber in interface LocationProvider
      Parameters:
      locationId - in this case, the node number in the tiny tree
      Returns:
      the line number of the node if known, or -1 otherwise
    • getColumnNumber

      public int getColumnNumber(long locationId)
      Get location information: the column number of the current start element event
      Specified by:
      getColumnNumber in interface LocationProvider
      Parameters:
      locationId - in this case, the node number in the tiny tree
      Returns:
      the column number of the node if known, or -1 otherwise