Class MemoSequence<T extends Item<?>>

java.lang.Object
net.sf.saxon.om.MemoSequence<T>
All Implemented Interfaces:
Sequence<T>

public class MemoSequence<T extends Item<?>> extends Object implements Sequence<T>
A Sequence implementation that represents a lazy evaluation of a supplied iterator. Items are read from the base iterator only when they are first required, and are then remembered within the local storage of the MemoSequence, which eventually (if the sequence is read to the end) contains the entire value.
  • Field Details

  • Constructor Details

  • Method Details

    • head

      public T head() throws XPathException
      Description copied from interface: Sequence
      Get the first item in the sequence.
      Specified by:
      head in interface Sequence<T extends Item<?>>
      Returns:
      the first item in the sequence if there is one, or null if the sequence is empty
      Throws:
      XPathException - in the situation where the sequence is evaluated lazily, and evaluation of the first item causes a dynamic error.
    • iterate

      public SequenceIterator<T> iterate() throws XPathException
      Description copied from interface: Sequence
      Get a SequenceIterator over all the items in the sequence
      Specified by:
      iterate in interface Sequence<T extends Item<?>>
      Returns:
      an iterator (specifically, a Saxon SequenceIterator, which is not a Iterator) over all the items
      Throws:
      XPathException - in the situation where the sequence is evaluated lazily, and constructing an iterator over the items causes a dynamic error.
    • itemAt

      public Item itemAt(int n) throws XPathException
      Get the Nth item in the sequence (0-based), reading new items into the internal reservoir if necessary
      Parameters:
      n - the index of the required item
      Returns:
      the Nth item if it exists, or null otherwise
      Throws:
      XPathException - if the input sequence cannot be read