org.apache.xml.dtm.ref

## Class DTMDefaultBaseIterators.PrecedingIterator

- java.lang.Object
- - org.apache.xml.dtm.ref.DTMAxisIteratorBase
  - - org.apache.xml.dtm.ref.DTMDefaultBaseIterators.InternalAxisIteratorBase
    - - org.apache.xml.dtm.ref.DTMDefaultBaseIterators.PrecedingIterator

All Implemented Interfaces:
  java.lang.Cloneable, DTMAxisIterator

Direct Known Subclasses:
  DTMDefaultBaseIterators.TypedPrecedingIterator

Enclosing class:
  DTMDefaultBaseIterators

    public class DTMDefaultBaseIterators.PrecedingIterator
    extends DTMDefaultBaseIterators.InternalAxisIteratorBase

Iterator that returns preceding nodes of a given node. This includes the node set {root+1, start-1}, but excludes all ancestors, attributes, and namespace nodes.

### Field Summary

### Fields inherited from interface org.apache.xml.dtm.DTMAxisIterator

`END`

### Constructor Summary

Constructors
Constructor and Description
`DTMDefaultBaseIterators.PrecedingIterator()`

### Method Summary

Methods
`DTMAxisIterator` `cloneIterator()` Returns a deep copy of this iterator.
`void` `gotoMark()` Restores the current node remembered by setMark().
`boolean` `isReverse()` True if this iterator has a reversed axis.
`int` `next()` Get the next node in the iteration.
`DTMAxisIterator` `reset()` Resets the iterator to the last start node.
`void` `setMark()` Remembers the current node for the next call to gotoMark().
`DTMAxisIterator` `setStartNode(int node)` Set start to END should 'close' the iterator, i.e. subsequent call to next() should return END.

### Methods inherited from class org.apache.xml.dtm.ref.DTMAxisIteratorBase

`getAxis, getLast, getNodeByPosition, getPosition, getStartNode, includeSelf, isDocOrdered, setRestartable`

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

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

### Constructor Detail

#### DTMDefaultBaseIterators.PrecedingIterator

    public DTMDefaultBaseIterators.PrecedingIterator()

### Method Detail

#### isReverse

    public boolean isReverse()

True if this iterator has a reversed axis.

Specified by:
  `isReverse` in interface `DTMAxisIterator`
Overrides:
  `isReverse` in class `DTMAxisIteratorBase`
Returns:
  true since this iterator is a reversed axis.

#### cloneIterator

    public DTMAxisIterator cloneIterator()

Returns a deep copy of this iterator. The cloned iterator is not reset.

Specified by:
  `cloneIterator` in interface `DTMAxisIterator`
Overrides:
  `cloneIterator` in class `DTMAxisIteratorBase`
Returns:
  a deep copy of this iterator.

#### setStartNode

    public DTMAxisIterator setStartNode(int node)

Set start to END should 'close' the iterator, i.e. subsequent call to next() should return END.

Parameters:
  `node` - Sets the root of the iteration.
Returns:
  A DTMAxisIterator set to the start of the iteration.

#### next

    public int next()

Get the next node in the iteration.

Returns:
  The next node handle in the iteration, or END.

#### reset

    public DTMAxisIterator reset()

Resets the iterator to the last start node.

Specified by:
  `reset` in interface `DTMAxisIterator`
Overrides:
  `reset` in class `DTMAxisIteratorBase`
Returns:
  A DTMAxisIterator, which may or may not be the same as this iterator.

#### setMark

    public void setMark()

Description copied from class: `DTMDefaultBaseIterators.InternalAxisIteratorBase`
Remembers the current node for the next call to gotoMark(). %REVIEW% Should this save _position too?

Specified by:
  `setMark` in interface `DTMAxisIterator`
Overrides:
  `setMark` in class `DTMDefaultBaseIterators.InternalAxisIteratorBase`

#### gotoMark

    public void gotoMark()

Description copied from class: `DTMDefaultBaseIterators.InternalAxisIteratorBase`
Restores the current node remembered by setMark(). %REVEIW% Should this restore _position too?

Specified by:
  `gotoMark` in interface `DTMAxisIterator`
Overrides:
  `gotoMark` in class `DTMDefaultBaseIterators.InternalAxisIteratorBase`