org.apache.xalan.xsltc.dom
Class SortingIterator
java.lang.Object
   org.apache.xml.dtm.ref.DTMAxisIteratorBase
org.apache.xml.dtm.ref.DTMAxisIteratorBase
       org.apache.xalan.xsltc.dom.SortingIterator
org.apache.xalan.xsltc.dom.SortingIterator
- All Implemented Interfaces: 
- java.lang.Cloneable, DTMAxisIterator
- public final class SortingIterator 
- extends DTMAxisIteratorBase
 
 
 
 
| Method Summary | 
| private  void | addRecord(NodeSortRecord record)
 | 
|  DTMAxisIterator | cloneIterator()Clone a
 SortingIteratorby cloning its source
 iterator and then sharing the factory and the array ofNodeSortRecords. | 
|  int | getLast()Returns the position of the last node within the iteration, as
 defined by XPath.
 | 
|  int | getPosition()
 | 
|  void | gotoMark()Restores the current node remembered by setMark().
 | 
|  int | next()Get the next node in the iteration.
 | 
| private  int | partition(int p,
                   int r)
 | 
| private  void | quicksort(int p,
                   int r)
 | 
|  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 java.lang.Object | 
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
INIT_DATA_SIZE
private static final int INIT_DATA_SIZE
- See Also:
- Constant Field Values
_source
private DTMAxisIterator _source
_factory
private NodeSortRecordFactory _factory
_data
private NodeSortRecord[] _data
_free
private int _free
_current
private int _current
SortingIterator
public SortingIterator(DTMAxisIterator source,
                       NodeSortRecordFactory factory)
next
public int next()
- Description copied from interface: DTMAxisIterator
- Get the next node in the iteration.
 
- 
- Returns:
- The next node handle in the iteration, or END.
 
setStartNode
public DTMAxisIterator setStartNode(int node)
- Description copied from interface: DTMAxisIterator
- 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.
 
getPosition
public int getPosition()
- 
- Specified by:
- getPositionin interface- DTMAxisIterator
- Overrides:
- getPositionin class- DTMAxisIteratorBase
 
- 
- Returns:
- The position of the current node within the set, as defined by
 XPath. Note that this is one-based, not zero-based.
 
getLast
public int getLast()
- Description copied from class: DTMAxisIteratorBase
- Returns the position of the last node within the iteration, as
 defined by XPath.  In a forward iterator, I believe this equals the number of nodes which this
 iterator will yield. In a reverse iterator, I believe it should return
 1 (since the "last" is the first produced.)
 This may be an expensive operation when called the first time, since
 it may have to iterate through a large part of the document to produce
 its answer.
 
- 
- Specified by:
- getLastin interface- DTMAxisIterator
- Overrides:
- getLastin class- DTMAxisIteratorBase
 
- 
- Returns:
- The number of nodes in this iterator (forward) or 1 (reverse).
 
setMark
public void setMark()
- Description copied from interface: DTMAxisIterator
- Remembers the current node for the next call to gotoMark().
 
- 
 
gotoMark
public void gotoMark()
- Description copied from interface: DTMAxisIterator
- Restores the current node remembered by setMark().
 
- 
 
cloneIterator
public DTMAxisIterator cloneIterator()
- Clone a SortingIteratorby cloning its source
 iterator and then sharing the factory and the array ofNodeSortRecords.
 
- 
- Specified by:
- cloneIteratorin interface- DTMAxisIterator
- Overrides:
- cloneIteratorin class- DTMAxisIteratorBase
 
- 
- Returns:
- a deep copy of this iterator.
 
addRecord
private void addRecord(NodeSortRecord record)
- 
 
quicksort
private void quicksort(int p,
                       int r)
- 
 
partition
private int partition(int p,
                      int r)
-