Package 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.

Author:
  jonp@google.com (Jon Perlow)

### Field Summary

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

`modCount`

### Constructor Summary

Constructors
`UnmodifiableLazyStringList​(LazyStringList list)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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.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.Collection

`parallelStream, removeIf, stream, toArray`

### Methods inherited from interface java.lang.Iterable

`forEach`

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

`add, add, addAll, addAll, clear, contains, containsAll, equals, hashCode, indexOf, isEmpty, lastIndexOf, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, sort, spliterator, 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>`

#### 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.util.Collection<java.lang.String>`
Specified by:
  `iterator` in interface `java.lang.Iterable<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`