Class ArrayIterator.Of<T extends Item>

    • Field Detail

      • items

        protected T extends Item[] items
    • Constructor Detail

      • Of

        public Of​(T[] items)
      • Of

        public Of​(T[] items,
                  int start,
                  int end)
        Create an iterator over a range of an array. Note that the start position is zero-based
        Parameters:
        items - 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 between 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
        Specified by:
        makeSliceIterator in class ArrayIterator
        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.
        Returns:
        an iterator over the items between the min and max positions
      • hasNext

        public boolean hasNext()
        Test whether there are any more items
        Returns:
        true if there are more items
      • next

        public Item next()
        Get the next item in the array
        Returns:
        the next item in the array
      • getLength

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

        public T[] 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 GroundedValue materialize()
        Return a SequenceValue containing all the items in the sequence returned by this SequenceIterator
        Returns:
        the corresponding SequenceValue
      • getResidue

        public GroundedValue getResidue()
        Description copied from interface: GroundedIterator
        Return a GroundedValue containing all the remaining items in the sequence returned by this SequenceIterator, starting at the current position. This should be an "in-memory" value, not a Closure. This method does not change the state of the iterator (in particular, it does not consume the iterator).
        Returns:
        the corresponding Value
      • 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.
        Returns:
        an iterator over the items in reverse order