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

Methods
`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`