Class ArrayIterator

    • Constructor Detail

      • ArrayIterator

        public ArrayIterator​(Item[] nodes)
        Create an iterator over all the items in an array
        Parameters:
        nodes - the array (of any items, not necessarily nodes) to be processed by the iterator
      • ArrayIterator

        public ArrayIterator​(Item[] nodes,
                             int start,
                             int end)
        Create an iterator over a range of an array. Note that the start position is zero-based
        Parameters:
        nodes - the array (of nodes or simple values) to be processed by the iterator
        start - the position of the first item to be processed (numbering from zero). Must be between zero and nodes.length-1; if not, undefined exceptions are likely to occur.
        end - position of first item that is NOT returned, zero-based. Must be beween 1 and nodes.length; if not, undefined exceptions are likely to occur.
    • Method Detail

      • makeSliceIterator

        public SequenceIterator makeSliceIterator​(int min,
                                                  int max)
        Create a new ArrayIterator over the same items, with a different start point and end point
        Parameters:
        min - the start position (1-based) of the new ArrayIterator relative to the original
        max - the end position (1-based) of the last item to be delivered by the new ArrayIterator, relative to the original. For example, min=2, max=3 delivers the two items ($base[2], $base[3]). Set this to Integer.MAX_VALUE if there is no end limit.
      • hasNext

        public boolean hasNext()
        Test whether there are any more items
        Specified by:
        hasNext in interface LookaheadIterator
        Returns:
        true if there are more items
      • current

        public Item current()
        Get the current item in the array
        Specified by:
        current in interface AxisIterator
        Specified by:
        current in interface SequenceIterator
        Returns:
        the item returned by the most recent call of next()
      • position

        public int position()
        Get the position of the current item in the array
        Specified by:
        position in interface AxisIterator
        Specified by:
        position in interface SequenceIterator
        Returns:
        the current position (starting at 1 for the first item)
      • getLastPosition

        public int getLastPosition()
        Get the number of items in the part of the array being processed
        Specified by:
        getLastPosition in interface LastPositionFinder
        Returns:
        the number of items; equivalently, the position of the last item
      • getArray

        public Item[] getArray()
        Get the underlying array
        Returns:
        the underlying array being processed by the iterator
      • getStartPosition

        public int getStartPosition()
        Get the initial start position
        Returns:
        the start position of the iterator in the array (zero-based)
      • getEndPosition

        public int getEndPosition()
        Get the end position in the array
        Returns:
        the position in the array (zero-based) of the first item not included in the iteration
      • materialize

        public Value materialize()
        Return a SequenceValue containing all the items in the sequence returned by this SequenceIterator
        Specified by:
        materialize in interface GroundedIterator
        Returns:
        the corresponding SequenceValue