org.apache.xml.dtm.ref.sax2dtm
Class SAX2DTM2.AncestorIterator

java.lang.Object
  extended by org.apache.xml.dtm.ref.DTMAxisIteratorBase
      extended by org.apache.xml.dtm.ref.DTMDefaultBaseIterators.InternalAxisIteratorBase
          extended by org.apache.xml.dtm.ref.sax2dtm.SAX2DTM2.AncestorIterator
All Implemented Interfaces:
java.lang.Cloneable, DTMAxisIterator
Direct Known Subclasses:
SAX2DTM2.TypedAncestorIterator
Enclosing class:
SAX2DTM2

public class SAX2DTM2.AncestorIterator
extends DTMDefaultBaseIterators.InternalAxisIteratorBase

Iterator that returns the ancestors of a given node in document order. (NOTE! This was changed from the XSLTC code!)


Field Summary
(package private)  int[] m_ancestors
           
(package private)  int m_ancestorsPos
           
private static int m_blocksize
           
(package private)  int m_markedPos
           
(package private)  int m_realStartNode
          The real start node for this axes, since _startNode will be adjusted.
(package private)  int m_size
           
 
Fields inherited from class org.apache.xml.dtm.ref.DTMDefaultBaseIterators.InternalAxisIteratorBase
_currentNode
 
Fields inherited from class org.apache.xml.dtm.ref.DTMAxisIteratorBase
_includeSelf, _isRestartable, _last, _markedNode, _position, _startNode
 
Fields inherited from interface org.apache.xml.dtm.DTMAxisIterator
END
 
Constructor Summary
SAX2DTM2.AncestorIterator()
           
 
Method Summary
 DTMAxisIterator cloneIterator()
          Returns a deep copy of this iterator.
 int getStartNode()
          Get start to END should 'close' the iterator, i.e.
 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.
 
Methods inherited from class org.apache.xml.dtm.ref.DTMAxisIteratorBase
getAxis, getLast, getNodeByPosition, getPosition, includeSelf, isDocOrdered, resetPosition, returnNode, setRestartable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_blocksize

private static final int m_blocksize
See Also:
Constant Field Values

m_ancestors

int[] m_ancestors

m_size

int m_size

m_ancestorsPos

int m_ancestorsPos

m_markedPos

int m_markedPos

m_realStartNode

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

Constructor Detail

SAX2DTM2.AncestorIterator

public SAX2DTM2.AncestorIterator()
Method Detail

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.

next

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

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

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