Class DTMDefaultBaseIterators.DescendantIterator
java.lang.Object
org.loboevolution.apache.xml.dtm.ref.DTMAxisIteratorBase
org.loboevolution.apache.xml.dtm.ref.DTMDefaultBaseIterators.InternalAxisIteratorBase
org.loboevolution.apache.xml.dtm.ref.DTMDefaultBaseIterators.DescendantIterator
- All Implemented Interfaces:
Cloneable
,DTMAxisIterator
- Enclosing class:
DTMDefaultBaseIterators
public class DTMDefaultBaseIterators.DescendantIterator
extends DTMDefaultBaseIterators.InternalAxisIteratorBase
Iterator that returns the descendants of a given node.
-
Field Summary
Fields inherited from class org.loboevolution.apache.xml.dtm.ref.DTMDefaultBaseIterators.InternalAxisIteratorBase
_currentNode
Fields inherited from class org.loboevolution.apache.xml.dtm.ref.DTMAxisIteratorBase
_includeSelf, _isRestartable, _position, _startNode
Fields inherited from interface org.loboevolution.apache.xml.dtm.DTMAxisIterator
END
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
isDescendant
(int identity) Tell if this node identity is a descendant.int
next()
Get the next node in the iteration.void
reset()
Resets the iterator to the last start node.void
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.loboevolution.apache.xml.dtm.ref.DTMAxisIteratorBase
cloneIterator, includeSelf, isReverse, resetPosition, returnNode
-
Constructor Details
-
DescendantIterator
public DescendantIterator()
-
-
Method Details
-
setStartNode
public void 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.
-
isDescendant
protected boolean isDescendant(int identity) Tell if this node identity is a descendant. Assumes that the node info for the element has already been obtained.This one-sided test works only if the parent has been previously tested and is known to be a descendent. It fails if the parent is the _startNode's next sibling, or indeed any node that follows _startNode in document order. That may suffice for this iterator, but it's not really an isDescendent() test. %REVIEW% rename?
- Parameters:
identity
- The index number of the node in question.- Returns:
- true if the index is a descendant of _startNode.
-
next
public int next()Get the next node in the iteration.- Returns:
- The next node handle in the iteration, or END.
-
reset
public void reset()Resets the iterator to the last start node.- Specified by:
reset
in interfaceDTMAxisIterator
- Overrides:
reset
in classDTMAxisIteratorBase
-