Interface ListIndex<T>

  • Type Parameters:
    T - the type of elements in this list
    All Superinterfaces:
    java.lang.Iterable<T>
    All Known Implementing Classes:
    ListIndexProxy, ProofListIndexProxy

    public interface ListIndex<T>
    extends java.lang.Iterable<T>
    A list index proxy is a contiguous list of elements.

    The "destructive" methods of the list, i.e., those that change its contents, are specified to throw UnsupportedOperationException if this list has been created with a read-only database view.

    When the corresponding view goes out of scope, this list is destroyed. Subsequent use of the closed list is prohibited and will result in IllegalStateException.

    This interface prohibits null elements. All method arguments are non-null by default.

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void add​(T e)
      Adds a new element to the end of the list.
      void addAll​(java.util.Collection<? extends T> elements)
      Adds all elements from the specified collection to this list.
      void clear()
      Clears the list.
      T get​(long index)
      Returns the element at the given index.
      T getLast()
      Returns the last element of the list.
      java.lang.String getName()
      Returns the name of this index.
      boolean isEmpty()
      Returns true if the list is empty, false — otherwise.
      java.util.Iterator<T> iterator()
      Returns an iterator over the elements of the list.
      void set​(long index, T e)
      Replaces the element at the given index of the list with the specified element.
      long size()
      Returns the number of elements in the list.
      java.util.stream.Stream<T> stream()
      Returns a stream of elements in this list.
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Method Detail

      • add

        void add​(T e)
        Adds a new element to the end of the list.
        Parameters:
        e - an element to append to the list
        Throws:
        java.lang.IllegalStateException - if this list is not valid
        java.lang.UnsupportedOperationException - if this list is read-only
      • addAll

        void addAll​(java.util.Collection<? extends T> elements)
        Adds all elements from the specified collection to this list.

        If the collection contains an invalid element, this list is not modified.

        Parameters:
        elements - elements to add to this list
        Throws:
        java.lang.NullPointerException - if the collection is null or it contains null elements. In this case the collection is not modified.
        java.lang.IllegalStateException - if this list is not valid
        java.lang.UnsupportedOperationException - if this list is read-only
      • set

        void set​(long index,
                 T e)
        Replaces the element at the given index of the list with the specified element.
        Parameters:
        index - an index of the element to replace
        e - an element to add
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is invalid
        java.lang.IllegalStateException - if this list is not valid
        java.lang.UnsupportedOperationException - if this list is read-only
      • get

        T get​(long index)
        Returns the element at the given index.
        Parameters:
        index - an index of the element to return
        Returns:
        an element at the given index
        Throws:
        java.lang.IndexOutOfBoundsException - if index is invalid
        java.lang.IllegalStateException - if this list is not valid
      • getLast

        T getLast()
        Returns the last element of the list.
        Returns:
        the last element of the list
        Throws:
        java.util.NoSuchElementException - if the list is empty
        java.lang.IllegalStateException - if this list is not valid
      • clear

        void clear()
        Clears the list.
        Throws:
        java.lang.IllegalStateException - if this list is not valid
        java.lang.UnsupportedOperationException - if this list is read-only
      • isEmpty

        boolean isEmpty()
        Returns true if the list is empty, false — otherwise.
        Throws:
        java.lang.IllegalStateException - if this list is not valid
      • size

        long size()
        Returns the number of elements in the list.
        Throws:
        java.lang.IllegalStateException - if this list is not valid
      • iterator

        java.util.Iterator<T> iterator()
        Returns an iterator over the elements of the list.

        Any destructive operation on the same Fork this list uses (but not necessarily on this list) will invalidate the iterator.

        Specified by:
        iterator in interface java.lang.Iterable<T>
        Throws:
        java.lang.IllegalStateException - if this list is not valid
      • stream

        java.util.stream.Stream<T> stream()
        Returns a stream of elements in this list. The returned stream is fail-fast and late-binding; the stream can be used as long as the source list is valid.

        Any destructive operation on the same Fork this list uses (but not necessarily on this list) will invalidate the corresponding spliterator.

        Throws:
        java.lang.IllegalStateException - if this list is not valid
      • getName

        java.lang.String getName()
        Returns the name of this index.