org.apache.xalan.xsltc.dom
Class MultiValuedNodeHeapIterator
- Cloneable, DTMAxisIterator
public abstract class MultiValuedNodeHeapIterator
MultiValuedNodeHeapIterator
takes a set of multi-valued
heap nodes and produces a merged NodeSet in document order with duplicates
removed.
Each multi-valued heap node (which might be a
DTMAxisIterator
, but that's not necessary)
generates DTM node handles in document order. The class
maintains the multi-valued heap nodes in a heap, not surprisingly, sorted by
the next DTM node handle available form the heap node.
After a DTM node is pulled from the heap node that's at the top of the
heap, the heap node is advanced to the next DTM node handle it makes
available, and the heap nature of the heap is restored to ensure the next
DTM node handle pulled is next in document order overall.
- Jacek Ambroziak
- Santiago Pericas-Geertsen
cloneIterator , getAxis , getLast , getNodeByPosition , getPosition , getStartNode , includeSelf , isDocOrdered , isReverse , reset , setRestartable |
gotoMark
public void gotoMark()
Restores the current node remembered by setMark().
- gotoMark in interface DTMAxisIterator
next
public int next()
Get the next node in the iteration.
- next in interface DTMAxisIterator
- The next node handle in the iteration, or END.
setMark
public void setMark()
Remembers the current node for the next call to gotoMark().
- setMark in interface DTMAxisIterator
setStartNode
public DTMAxisIterator setStartNode(int node)
Set start to END should 'close' the iterator,
i.e. subsequent call to next() should return END.
- setStartNode in interface DTMAxisIterator
node
- Sets the root of the iteration.
- A DTMAxisIterator set to the start of the iteration.
Copyright B) 2006 Apache XML Project. All Rights Reserved.