Class MemoSequence

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

public class MemoSequence extends Object implements Sequence
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.
  • Constructor Details

  • Method Details

    • setLearningEvaluator

      public void setLearningEvaluator(LearningEvaluator caller, int serialNumber)
    • head

      public Item head() throws XPathException
      Description copied from interface: Sequence
      Get the first item in the sequence.
      Specified by:
      head in interface Sequence
      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 iterate()
      Description copied from interface: Sequence
      Get a SequenceIterator over all the items in the sequence
      Specified by:
      iterate in interface Sequence
      Returns:
      an iterator (specifically, a Saxon SequenceIterator, which is not a Iterator) over all the items
    • 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