org.apache.xalan.xsltc.dom

## Class NodeIteratorBase

- java.lang.Object
- - org.apache.xalan.xsltc.dom.NodeIteratorBase

- All Implemented Interfaces:
    java.lang.Cloneable, NodeIterator

      public abstract class NodeIteratorBase
      extends java.lang.Object
      implements NodeIterator

  Author:
    Jacek Ambroziak, Santiago Pericas-Geertsen, Morten Jorgensen

- - ### Field Summary

    - ### Fields inherited from interface org.apache.xalan.xsltc.NodeIterator

      `END`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NodeIteratorBase()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `NodeIterator` | `cloneIterator()` Clones and resets this iterator.
    `int` | `getLast()` Default implementation of getLast().
    `int` | `getPosition()` Returns the position() in this iterator.
    `NodeIterator` | `includeSelf()` Setter for _includeSelf flag.
    `boolean` | `isReverse()` Indicates if position in this iterator is computed in reverse document order.
    `NodeIterator` | `reset()` Reset this iterator using state from last call to setStartNode().
    `void` | `setRestartable(boolean isRestartable)` Setter for _isRestartable flag.
    `abstract NodeIterator` | `setStartNode(int node)` Initialize iterator using a node.

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

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

    - ### Methods inherited from interface org.apache.xalan.xsltc.NodeIterator

      `gotoMark, next, setMark`

- - ### Constructor Detail

    - #### NodeIteratorBase

          public NodeIteratorBase()

  - ### Method Detail

    - #### setRestartable

          public void setRestartable(boolean isRestartable)

      Setter for _isRestartable flag.
      Specified by:
        `setRestartable` in interface `NodeIterator`

    - #### setStartNode

          public abstract NodeIterator setStartNode(int node)

      Initialize iterator using a node. If iterator is not restartable, then do nothing. If node is equal to END then subsequent calls to next() must return END.
      Specified by:
        `setStartNode` in interface `NodeIterator`

    - #### reset

          public NodeIterator reset()

      Reset this iterator using state from last call to setStartNode().
      Specified by:
        `reset` in interface `NodeIterator`

    - #### includeSelf

          public NodeIterator includeSelf()

      Setter for _includeSelf flag.

    - #### getLast

          public int getLast()

      Default implementation of getLast(). Stores current position and current node, resets the iterator, counts all nodes and restores iterator to original state.
      Specified by:
        `getLast` in interface `NodeIterator`

    - #### getPosition

          public int getPosition()

      Returns the position() in this iterator.
      Specified by:
        `getPosition` in interface `NodeIterator`

    - #### isReverse

          public boolean isReverse()

      Indicates if position in this iterator is computed in reverse document order. Note that nodes are always returned in document order.
      Specified by:
        `isReverse` in interface `NodeIterator`

    - #### cloneIterator

          public NodeIterator cloneIterator()

      Clones and resets this iterator. Note that the cloned iterator is not restartable. This is because cloning is needed for variable references, and the context node of the original variable declaration must be preserved.
      Specified by:
        `cloneIterator` in interface `NodeIterator`

Copyright © 2023 Apache XML Project. All Rights Reserved.