org.apache.xml.dtm.ref
Class DTMDefaultBaseIterators.TypedAncestorIterator

java.lang.Object
  extended byorg.apache.xml.dtm.ref.DTMAxisIteratorBase
      extended byorg.apache.xml.dtm.ref.DTMDefaultBaseIterators.InternalAxisIteratorBase
          extended byorg.apache.xml.dtm.ref.DTMDefaultBaseIterators.AncestorIterator
              extended byorg.apache.xml.dtm.ref.DTMDefaultBaseIterators.TypedAncestorIterator
All Implemented Interfaces:
Cloneable, DTMAxisIterator
Enclosing class:
DTMDefaultBaseIterators

private final class DTMDefaultBaseIterators.TypedAncestorIterator
extends DTMDefaultBaseIterators.AncestorIterator

Typed iterator that returns the ancestors of a given node.


Field Summary
protected  int _currentNode
          Current iteration location.
private  int _nodeType
          The extended type ID that was requested.
(package private)  NodeVector m_ancestors
           
(package private)  int m_ancestorsPos
           
(package private)  int m_realStartNode
          The real start node for this axes, since _startNode will be adjusted.
 
Fields inherited from class org.apache.xml.dtm.ref.DTMAxisIteratorBase
_includeSelf, _isRestartable, _markedNode, _startNode
 
Fields inherited from interface org.apache.xml.dtm.DTMAxisIterator
END
 
Constructor Summary
DTMDefaultBaseIterators.TypedAncestorIterator(int type)
          Constructor TypedAncestorIterator
 
Method Summary
 DTMAxisIterator cloneIterator()
          Returns a deep copy of this iterator.
 int getLast()
          Returns the last element in this interation.
 int getStartNode()
          Get start to END should 'close' the iterator, i.e. subsequent call to next() should return END.
 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, getPosition, includeSelf, isDocOrdered, resetPosition, returnNode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_nodeType

private final int _nodeType
The extended type ID that was requested.


m_ancestors

NodeVector m_ancestors

m_ancestorsPos

int m_ancestorsPos

m_realStartNode

int m_realStartNode
The real start node for this axes, since _startNode will be adjusted.


_currentNode

protected int _currentNode
Current iteration location. Usually this is the last location returned (starting point for the next() search); for single-node iterators it may instead be initialized to point to that single node.

Constructor Detail

DTMDefaultBaseIterators.TypedAncestorIterator

public DTMDefaultBaseIterators.TypedAncestorIterator(int type)
Constructor TypedAncestorIterator

Parameters:
type - The extended type ID being requested.
Method Detail

next

public int next()
Get the next node in the iteration.

Specified by:
next in interface DTMAxisIterator
Overrides:
next in class DTMDefaultBaseIterators.AncestorIterator
Returns:
The next node handle in the iteration, or END.

getLast

public int getLast()
Returns the last element in this interation.

Specified by:
getLast in interface DTMAxisIterator
Overrides:
getLast in class DTMDefaultBaseIterators.AncestorIterator
Returns:
the last element in this interation.

getStartNode

public int getStartNode()
Get start to END should 'close' the iterator, i.e. subsequent call to next() should return END.

Specified by:
getStartNode in interface DTMAxisIterator
Overrides:
getStartNode in class DTMAxisIteratorBase
Returns:
The root node of the iteration.

isReverse

public final 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.

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()
Remembers the current node for the next call to gotoMark(). %REVIEW% Should this save _position too?


gotoMark

public void gotoMark()
Restores the current node remembered by setMark(). %REVEIW% Should this restore _position too?