org.apache.xalan.xsltc.dom
Class MultiValuedNodeHeapIterator.HeapNode

java.lang.Object
  extended by org.apache.xalan.xsltc.dom.MultiValuedNodeHeapIterator.HeapNode
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
KeyIndex.KeyIndexIterator.KeyIndexHeapNode, UnionIterator.LookAheadIterator
Enclosing class:
MultiValuedNodeHeapIterator

public abstract class MultiValuedNodeHeapIterator.HeapNode
extends java.lang.Object
implements java.lang.Cloneable

An abstract representation of a set of nodes that will be retrieved in document order.


Field Summary
protected  boolean _isStartSet
           
protected  int _markedNode
           
protected  int _node
           
 
Constructor Summary
MultiValuedNodeHeapIterator.HeapNode()
           
 
Method Summary
 MultiValuedNodeHeapIterator.HeapNode cloneHeapNode()
          Creates a deep copy of this MultiValuedNodeHeapIterator.HeapNode.
 void gotoMark()
          Restores the current node remembered by setMark().
abstract  boolean isLessThan(MultiValuedNodeHeapIterator.HeapNode heapNode)
          Performs a comparison of the two heap nodes
abstract  MultiValuedNodeHeapIterator.HeapNode reset()
          Reset the heap node back to its beginning.
 void setMark()
          Remembers the current node for the next call to gotoMark().
abstract  MultiValuedNodeHeapIterator.HeapNode setStartNode(int node)
          Sets context with respect to which this heap node is evaluated.
abstract  int step()
          Advance to the next node represented by this MultiValuedNodeHeapIterator.HeapNode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_node

protected int _node

_markedNode

protected int _markedNode

_isStartSet

protected boolean _isStartSet
Constructor Detail

MultiValuedNodeHeapIterator.HeapNode

public MultiValuedNodeHeapIterator.HeapNode()
Method Detail

step

public abstract int step()
Advance to the next node represented by this MultiValuedNodeHeapIterator.HeapNode

Returns:
the next DTM node.

cloneHeapNode

public MultiValuedNodeHeapIterator.HeapNode cloneHeapNode()
Creates a deep copy of this MultiValuedNodeHeapIterator.HeapNode. The clone is not reset from the current position of the original.

Returns:
the cloned heap node

setMark

public void setMark()
Remembers the current node for the next call to gotoMark().


gotoMark

public void gotoMark()
Restores the current node remembered by setMark().


isLessThan

public abstract boolean isLessThan(MultiValuedNodeHeapIterator.HeapNode heapNode)
Performs a comparison of the two heap nodes

Parameters:
heapNode - the heap node against which to compare
Returns:
true if and only if the current node for this heap node is before the current node of the argument heap node in document order.

setStartNode

public abstract MultiValuedNodeHeapIterator.HeapNode setStartNode(int node)
Sets context with respect to which this heap node is evaluated.

Parameters:
node - The new context node
Returns:
a MultiValuedNodeHeapIterator.HeapNode which may or may not be the same as this HeapNode.

reset

public abstract MultiValuedNodeHeapIterator.HeapNode reset()
Reset the heap node back to its beginning.

Returns:
a MultiValuedNodeHeapIterator.HeapNode which may or may not be the same as this HeapNode.