public interface LazyStringList
extends java.util.List<java.lang.String>
List<String>
that also provides access to the
items of the list as UTF8-encoded ByteString objects. This is used by the
protocol buffer implementation to support lazily converting bytes parsed
over the wire to String objects until needed and also increases the
efficiency of serialization if the String was never requested as the
ByteString is already cached.
This only adds additional methods that are required for the use in the
protocol buffer code in order to be able successfully round trip byte arrays
through parsing and serialization without conversion to strings. It's not
attempting to support the functionality of say List<ByteString>
, hence
why only these two very specific methods are added.
Modifier and Type | Method and Description |
---|---|
void |
add(ByteString element)
Appends the specified element to the end of this list (optional
operation).
|
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 . |
ByteString getByteString(int index)
index
- index of the element to returnjava.lang.IndexOutOfBoundsException
- if the index is out of range
(index < 0 || index >= size()
)void add(ByteString element)
element
- element to be appended to this listjava.lang.UnsupportedOperationException
- if the add operation
is not supported by this listjava.util.List<?> getUnderlyingElements()
String
or its equivalent UTF-8 encoded
ByteString
. It is an error for the caller to modify the returned
List, and attempting to do so will result in an
UnsupportedOperationException
.