org.apache.xalan.xsltc.dom

## Class SortingIterator

- java.lang.Object
- - org.apache.xml.dtm.ref.DTMAxisIteratorBase
  - - org.apache.xalan.xsltc.dom.SortingIterator

- All Implemented Interfaces:
    java.lang.Cloneable, DTMAxisIterator

      public final class SortingIterator
      extends DTMAxisIteratorBase

  Author:
    Jacek Ambroziak, Santiago Pericas-Geertsen, Morten Jorgensen

- - ### Field Summary

    - ### Fields inherited from interface org.apache.xml.dtm.DTMAxisIterator

      `END`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SortingIterator(DTMAxisIterator source, NodeSortRecordFactory factory)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `DTMAxisIterator` | `cloneIterator()` Clone a `SortingIterator` by cloning its source iterator and then sharing the factory and the array of `NodeSortRecords`.
    `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.
    `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. subsequent call to next() should return END.

    - ### Methods inherited from class org.apache.xml.dtm.ref.DTMAxisIteratorBase

      `getAxis, getNodeByPosition, getStartNode, includeSelf, isDocOrdered, isReverse, reset, setRestartable`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SortingIterator

          public SortingIterator(DTMAxisIterator source,
                         NodeSortRecordFactory factory)

  - ### Method Detail

    - #### 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:
        `getPosition` in interface `DTMAxisIterator`
      Overrides:
        `getPosition` in 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:
        `getLast` in interface `DTMAxisIterator`
      Overrides:
        `getLast` in 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 `SortingIterator` by cloning its source iterator and then sharing the factory and the array of `NodeSortRecords`.
      Specified by:
        `cloneIterator` in interface `DTMAxisIterator`
      Overrides:
        `cloneIterator` in class `DTMAxisIteratorBase`
      Returns:
        a deep copy of this iterator.

Copyright © 2014 Apache XML Project. All Rights Reserved.