## net.sf.saxon.om
Class SingletonIterator

    java.lang.Object
      net.sf.saxon.om.SingletonIterator

All Implemented Interfaces:
  AxisIterator, GroundedIterator, LastPositionFinder, ReversibleIterator, SequenceIterator

public class SingletonIterator
extends java.lang.Object
implements AxisIterator, ReversibleIterator, LastPositionFinder, GroundedIterator

SingletonIterator: an iterator over a sequence of zero or one values

Method Summary
`Item` `current()` Get the current item in the sequence.
`SequenceIterator` `getAnother()` Get another iterator over the same sequence of items, positioned at the start of the sequence
`int` `getLastPosition()` Get the last position (that is, the number of items in the sequence)
`SequenceIterator` `getReverseIterator()` Get a new SequenceIterator that returns the same items in reverse order.
`Item` `getValue()`
`static AxisIterator` `makeIterator(Item item)` Factory method.
`Value` `materialize()` Return a SequenceExtent containing all the items in the sequence returned by this SequenceIterator
`Item` `next()` Get the next item in the sequence.
`int` `position()` Get the current position

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### makeIterator

    public static AxisIterator makeIterator(Item item)

  Factory method.

  Parameters:
    `item` - the item to iterate over
  Returns:
    a SingletonIterator over the supplied item, or an EmptyIterator if the supplied item is null.

### next

    public Item next()

  Description copied from interface: `AxisIterator`
  Get the next item in the sequence.

  Specified by:
    `next` in interface `AxisIterator`
  Returns:
    the next Item. If there are no more nodes, return null.

### current

    public Item current()

  Description copied from interface: `AxisIterator`
  Get the current item in the sequence.

  Specified by:
    `current` in interface `AxisIterator`
  Returns:
    the current item, that is, the item most recently returned by next()

### position

    public int position()

  Description copied from interface: `AxisIterator`
  Get the current position

  Specified by:
    `position` in interface `AxisIterator`
  Returns:
    the position of the current item (the item most recently returned by next()), starting at 1 for the first node

### getLastPosition

    public int getLastPosition()

  Description copied from interface: `LastPositionFinder`
  Get the last position (that is, the number of items in the sequence)

  Specified by:
    `getLastPosition` in interface `LastPositionFinder`

### getAnother

    public SequenceIterator getAnother()

  Description copied from interface: `AxisIterator`
  Get another iterator over the same sequence of items, positioned at the start of the sequence

  Specified by:
    `getAnother` in interface `AxisIterator`
  Returns:
    a new iterator over the same sequence

### getReverseIterator

    public SequenceIterator getReverseIterator()

  Description copied from interface: `ReversibleIterator`
  Get a new SequenceIterator that returns the same items in reverse order. If this SequenceIterator is an AxisIterator, then the returned SequenceIterator must also be an AxisIterator.

  Specified by:
    `getReverseIterator` in interface `ReversibleIterator`

### getValue

    public Item getValue()

### materialize

    public Value materialize()

  Return a SequenceExtent containing all the items in the sequence returned by this SequenceIterator

  Specified by:
    `materialize` in interface `GroundedIterator`
  Returns:
    the corresponding SequenceExtent if it exists, or null if it doesn't; in this case the caller must construct a new SequenceExtent by calling new SequenceExtent(iter.getAnother())