org.apache.xalan.xsltc.dom

## Class KeyIndex.KeyIndexIterator

- java.lang.Object
- - org.apache.xml.dtm.ref.DTMAxisIteratorBase
  - - org.apache.xalan.xsltc.dom.MultiValuedNodeHeapIterator
    - - org.apache.xalan.xsltc.dom.KeyIndex.KeyIndexIterator

All Implemented Interfaces:
  java.lang.Cloneable, DTMAxisIterator

Enclosing class:
  KeyIndex

    public class KeyIndex.KeyIndexIterator
    extends MultiValuedNodeHeapIterator

An iterator representing the result of a reference to either the XSLT `key` function or the XPath `id` function.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.xalan.xsltc.dom.MultiValuedNodeHeapIterator

`MultiValuedNodeHeapIterator.HeapNode`

### Field Summary

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

`END`

### Method Summary

Methods
`int` `getLast()` Returns the number of nodes in this iterator.
`int` `getNodeByPosition(int position)` Return the node at the given position.
`int` `next()` Get the next node in the iteration.
`DTMAxisIterator` `reset()` Resets the iterator to the last start node.
`DTMAxisIterator` `setStartNode(int node)` Set context node for the iterator.

### Methods inherited from class org.apache.xalan.xsltc.dom.MultiValuedNodeHeapIterator

`cloneIterator, gotoMark, setMark`

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

`getAxis, getPosition, getStartNode, includeSelf, isDocOrdered, isReverse, setRestartable`

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

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

### Method Detail

#### setStartNode

    public DTMAxisIterator setStartNode(int node)

Set context node for the iterator. This will cause the iterator to reset itself, reevaluate arguments to the function, look up nodes in the input and reinitialize its internal heap.

Specified by:
  `setStartNode` in interface `DTMAxisIterator`
Overrides:
  `setStartNode` in class `MultiValuedNodeHeapIterator`
Parameters:
  `node` - the context node
Returns:
  A `DTMAxisIterator` set to the start of the iteration.

#### next

    public int next()

Get the next node in the iteration.

Specified by:
  `next` in interface `DTMAxisIterator`
Overrides:
  `next` in class `MultiValuedNodeHeapIterator`
Returns:
  The next node handle in the iteration, or END.

#### reset

    public DTMAxisIterator reset()

Resets the iterator to the last start node.

Specified by:
  `reset` in interface `DTMAxisIterator`
Overrides:
  `reset` in class `MultiValuedNodeHeapIterator`
Returns:
  A DTMAxisIterator, which may or may not be the same as this iterator.

#### getLast

    public int getLast()

Returns the number of nodes in this iterator.

Specified by:
  `getLast` in interface `DTMAxisIterator`
Overrides:
  `getLast` in class `DTMAxisIteratorBase`
Returns:
  the number of nodes

#### getNodeByPosition

    public int getNodeByPosition(int position)

Return the node at the given position.

Specified by:
  `getNodeByPosition` in interface `DTMAxisIterator`
Overrides:
  `getNodeByPosition` in class `DTMAxisIteratorBase`
Parameters:
  `position` - The position
Returns:
  The node at the given position.