UnmodifiableLazyStringList
Date: 2017-07-08

com.google.protobuf

## Class UnmodifiableLazyStringList

- java.lang.Object
- - java.util.AbstractCollection<E>
  - - java.util.AbstractList<java.lang.String>
    - - com.google.protobuf.UnmodifiableLazyStringList

- All Implemented Interfaces:
    LazyStringList, ProtocolStringList, java.lang.Iterable<java.lang.String>, java.util.Collection<java.lang.String>, java.util.List<java.lang.String>, java.util.RandomAccess

      public class UnmodifiableLazyStringList
      extends java.util.AbstractList<java.lang.String>
      implements LazyStringList, java.util.RandomAccess

  An implementation of `LazyStringList` that wraps another `LazyStringList` such that it cannot be modified via the wrapper.

- - ### Field Summary

    - ### Fields inherited from class java.util.AbstractList

      `modCount`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UnmodifiableLazyStringList(LazyStringList list)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(byte[] element)` Appends the specified element to the end of this list (optional operation).
    `void` | `add(ByteString element)` Appends the specified element to the end of this list (optional operation).
    `boolean` | `addAllByteArray(java.util.Collection<byte[]> element)` Appends all elements in the specified byte[] collection to the end of this list.
    `boolean` | `addAllByteString(java.util.Collection<? extends ByteString> element)` Appends all elements in the specified ByteString collection to the end of this list.
    `java.util.List<byte[]>` | `asByteArrayList()` Returns a mutable view of this list.
    `java.util.List<ByteString>` | `asByteStringList()` Returns a view of the data as a list of ByteStrings.
    `java.lang.String` | `get(int index)`
    `byte[]` | `getByteArray(int index)` Returns the element at the specified position in this list as byte[].
    `ByteString` | `getByteString(int index)` Returns the element at the specified position in this list as a ByteString.
    `java.lang.Object` | `getRaw(int index)` Returns the element at the specified position in this list as an Object that will either be a String or a ByteString.
    `java.util.List<?>` | `getUnderlyingElements()` Returns an unmodifiable List of the underlying elements, each of which is either a `String` or its equivalent UTF-8 encoded `ByteString` or byte[].
    `LazyStringList` | `getUnmodifiableView()` Returns an unmodifiable view of the list.
    `java.util.Iterator<java.lang.String>` | `iterator()`
    `java.util.ListIterator<java.lang.String>` | `listIterator(int index)`
    `void` | `mergeFrom(LazyStringList other)` Merges all elements from another LazyStringList into this one.
    `void` | `set(int index, byte[] element)` Replaces the element at the specified position in this list with the specified element (optional operation).
    `void` | `set(int index, ByteString element)` Replaces the element at the specified position in this list with the specified element (optional operation).
    `int` | `size()`

    - ### Methods inherited from class java.util.AbstractList

      `add, add, addAll, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, remove, removeRange, set, subList`

    - ### Methods inherited from class java.util.AbstractCollection

      `addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.List

      `add, add, addAll, addAll, clear, contains, containsAll, equals, hashCode, indexOf, isEmpty, lastIndexOf, listIterator, remove, remove, removeAll, retainAll, set, subList, toArray, toArray`

- - ### Constructor Detail

    - #### UnmodifiableLazyStringList

          public UnmodifiableLazyStringList(LazyStringList list)

  - ### Method Detail

    - #### get

          public java.lang.String get(int index)

      Specified by:
        `get` in interface `java.util.List<java.lang.String>`
      Specified by:
        `get` in class `java.util.AbstractList<java.lang.String>`

    - #### getRaw

          public java.lang.Object getRaw(int index)

      Description copied from interface: `LazyStringList`
      Returns the element at the specified position in this list as an Object that will either be a String or a ByteString.
      Specified by:
        `getRaw` in interface `LazyStringList`
      Parameters:
        `index` - index of the element to return
      Returns:
        the element at the specified position in this list

    - #### size

          public int size()

      Specified by:
        `size` in interface `java.util.Collection<java.lang.String>`
      Specified by:
        `size` in interface `java.util.List<java.lang.String>`
      Specified by:
        `size` in class `java.util.AbstractCollection<java.lang.String>`

    - #### getByteString

          public ByteString getByteString(int index)

      Description copied from interface: `LazyStringList`
      Returns the element at the specified position in this list as a ByteString.
      Specified by:
        `getByteString` in interface `LazyStringList`
      Parameters:
        `index` - index of the element to return
      Returns:
        the element at the specified position in this list

    - #### add

          public void add(ByteString element)

      Description copied from interface: `LazyStringList`
      Appends the specified element to the end of this list (optional operation).
      Specified by:
        `add` in interface `LazyStringList`
      Parameters:
        `element` - element to be appended to this list

    - #### set

          public void set(int index,
                 ByteString element)

      Description copied from interface: `LazyStringList`
      Replaces the element at the specified position in this list with the specified element (optional operation).
      Specified by:
        `set` in interface `LazyStringList`
      Parameters:
        `index` - index of the element to replace
        `element` - the element to be stored at the specified position

    - #### addAllByteString

          public boolean addAllByteString(java.util.Collection<? extends ByteString> element)

      Description copied from interface: `LazyStringList`
      Appends all elements in the specified ByteString collection to the end of this list.
      Specified by:
        `addAllByteString` in interface `LazyStringList`
      Parameters:
        `element` - collection whose elements are to be added to this list
      Returns:
        true if this list changed as a result of the call

    - #### getByteArray

          public byte[] getByteArray(int index)

      Description copied from interface: `LazyStringList`
      Returns the element at the specified position in this list as byte[].
      Specified by:
        `getByteArray` in interface `LazyStringList`
      Parameters:
        `index` - index of the element to return
      Returns:
        the element at the specified position in this list

    - #### add

          public void add(byte[] element)

      Description copied from interface: `LazyStringList`
      Appends the specified element to the end of this list (optional operation).
      Specified by:
        `add` in interface `LazyStringList`
      Parameters:
        `element` - element to be appended to this list

    - #### set

          public void set(int index,
                 byte[] element)

      Description copied from interface: `LazyStringList`
      Replaces the element at the specified position in this list with the specified element (optional operation).
      Specified by:
        `set` in interface `LazyStringList`
      Parameters:
        `index` - index of the element to replace
        `element` - the element to be stored at the specified position

    - #### addAllByteArray

          public boolean addAllByteArray(java.util.Collection<byte[]> element)

      Description copied from interface: `LazyStringList`
      Appends all elements in the specified byte[] collection to the end of this list.
      Specified by:
        `addAllByteArray` in interface `LazyStringList`
      Parameters:
        `element` - collection whose elements are to be added to this list
      Returns:
        true if this list changed as a result of the call

    - #### listIterator

          public java.util.ListIterator<java.lang.String> listIterator(int index)

      Specified by:
        `listIterator` in interface `java.util.List<java.lang.String>`
      Overrides:
        `listIterator` in class `java.util.AbstractList<java.lang.String>`

    - #### iterator

          public java.util.Iterator<java.lang.String> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<java.lang.String>`
      Specified by:
        `iterator` in interface `java.util.Collection<java.lang.String>`
      Specified by:
        `iterator` in interface `java.util.List<java.lang.String>`
      Overrides:
        `iterator` in class `java.util.AbstractList<java.lang.String>`

    - #### getUnderlyingElements

          public java.util.List<?> getUnderlyingElements()

      Description copied from interface: `LazyStringList`
      Returns an unmodifiable List of the underlying elements, each of which is either a `String` or its equivalent UTF-8 encoded `ByteString` or byte[]. It is an error for the caller to modify the returned List, and attempting to do so will result in an `UnsupportedOperationException`.
      Specified by:
        `getUnderlyingElements` in interface `LazyStringList`

    - #### mergeFrom

          public void mergeFrom(LazyStringList other)

      Description copied from interface: `LazyStringList`
      Merges all elements from another LazyStringList into this one. This method differs from `List.addAll(Collection)` on that underlying byte arrays are copied instead of reference shared. Immutable API doesn't need to use this method as byte[] is not used there at all.
      Specified by:
        `mergeFrom` in interface `LazyStringList`

    - #### asByteArrayList

          public java.util.List<byte[]> asByteArrayList()

      Description copied from interface: `LazyStringList`
      Returns a mutable view of this list. Changes to the view will be made into the original list. This method is used in mutable API only.
      Specified by:
        `asByteArrayList` in interface `LazyStringList`

    - #### asByteStringList

          public java.util.List<ByteString> asByteStringList()

      Description copied from interface: `ProtocolStringList`
      Returns a view of the data as a list of ByteStrings.
      Specified by:
        `asByteStringList` in interface `ProtocolStringList`

    - #### getUnmodifiableView

          public LazyStringList getUnmodifiableView()

      Description copied from interface: `LazyStringList`
      Returns an unmodifiable view of the list.
      Specified by:
        `getUnmodifiableView` in interface `LazyStringList`