net.sf.saxon.tree.tiny

## 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 Summary

    Constructors
    Constructor and Description
    `TinyTreeEventIterator(TinyNodeImpl startNode, PipelineConfiguration pipe)` Create a TinyTreeEventIterator to return events associated with a tree or subtree

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getColumnNumber(long locationId)` Get location information: the column number of the current start element event
    `int` | `getLineNumber(long locationId)` Get location information: the line number of the current start element event
    `String` | `getSystemId(long locationId)` Get location information: the system Id of the current start element event
    `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

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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

    - #### 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

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.