LazyFieldLite is thread-compatible: concurrent reads are safe once the proto that this LazyFieldLite is a part of is no longer being mutated by its Builder. However, explicit synchronization is needed under read/write situations.
When a LazyFieldLite is used in the context of a MessageLite object, its behavior is considered to be immutable and none of the setter methods in its API are expected to be invoked. All of the getters are expected to be thread-safe. When used in the context of a MessageLite.Builder, setters can be invoked, but there is no guarantee of thread safety.
TODO(yatin,dweis): Consider splitting this class's functionality and put the mutable methods into a separate builder class to allow us to give stronger compile-time guarantees.
This class is internal implementation detail of the protobuf library, so you don't need to use it directly.
| Modifier and Type | Field and Description |
|---|---|
| private ByteString | delayedBytes
A delayed-parsed version of the contents of this field. |
| private static final ExtensionRegistryLite | |
| private ExtensionRegistryLite | extensionRegistry
An |
| private volatile ByteString | memoizedBytes
The memoized bytes for |
| protected volatile MessageLite | value
The parsed value. |
| Access | Constructor and Description |
|---|---|
| public | LazyFieldLite(ExtensionRegistryLite extensionRegistry, ByteString bytes)
Constructs a LazyFieldLite with bytes that will be parsed lazily. |
| public |
| Modifier and Type | Method and Description |
|---|---|
| private static void | |
| public void | |
| public boolean | containsDefaultInstance()
Determines whether this LazyFieldLite instance represents the default instance of this type. |
| protected void | ensureInitialized(MessageLite defaultInstance)
Might lazily parse the bytes that were previously passed in. Is thread-safe. |
| public boolean | equals(Object
the reference object with which to compare. o)Overrides java. |
| public static LazyFieldLite | |
| public int | getSerializedSize()
Due to the optional field can be duplicated at the end of serialized bytes, which will make the serialized size changed after LazyField parsed. |
| public MessageLite | getValue(MessageLite
its message's default instance. It's also used to get parser for the
message type. defaultInstance)Returns message instance. |
| public int | |
| public void | |
| public void | mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Merges another instance's contents from a stream. |
| private static MessageLite | mergeValueAndBytes(MessageLite value, ByteString otherBytes, ExtensionRegistryLite extensionRegistry)
|
| public void | |
| public void | setByteString(ByteString bytes, ExtensionRegistryLite extensionRegistry)
Sets this field with bytes to delay-parse. |
| public MessageLite | setValue(MessageLite value)
Sets the value of the instance and returns the old value without delay parsing anything. |
| public ByteString |
| delayedBytes | back to summary |
|---|---|
| private ByteString delayedBytes A delayed-parsed version of the contents of this field. When this field is non-null, then the "value" field is allowed to be null until the time that the value needs to be read. When delayedBytes is non-null then | |
| EMPTY_REGISTRY | back to summary |
|---|---|
| private static final ExtensionRegistryLite EMPTY_REGISTRY | |
| extensionRegistry | back to summary |
|---|---|
| private ExtensionRegistryLite extensionRegistry An | |
| memoizedBytes | back to summary |
|---|---|
| private volatile ByteString memoizedBytes The memoized bytes for | |
| value | back to summary |
|---|---|
| protected volatile MessageLite value The parsed value. When this is null and a caller needs access to the MessageLite value, then
| |
| LazyFieldLite | back to summary |
|---|---|
| public LazyFieldLite(ExtensionRegistryLite extensionRegistry, ByteString bytes) Constructs a LazyFieldLite with bytes that will be parsed lazily. | |
| LazyFieldLite | back to summary |
|---|---|
| public LazyFieldLite() Constructs a LazyFieldLite with no contents, and no ability to parse extensions. | |
| checkArguments | back to summary |
|---|---|
| private static void checkArguments(ExtensionRegistryLite extensionRegistry, ByteString bytes) | |
| clear | back to summary |
|---|---|
| public void clear() Clears the value state of this instance. LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations. | |
| containsDefaultInstance | back to summary |
|---|---|
| public boolean containsDefaultInstance() Determines whether this LazyFieldLite instance represents the default instance of this type. | |
| ensureInitialized | back to summary |
|---|---|
| protected void ensureInitialized(MessageLite defaultInstance) Might lazily parse the bytes that were previously passed in. Is thread-safe. | |
| equals | back to summary |
|---|---|
| public boolean equals(Object o) Overrides java. Doc from java. Indicates whether some other object is "equal to" this one.
The
An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes. | |
| fromValue | back to summary |
|---|---|
| public static LazyFieldLite fromValue(MessageLite value) Constructs a LazyFieldLite instance with a value. The LazyFieldLite may not be able to parse the extensions in the value as it has no ExtensionRegistry. | |
| getSerializedSize | back to summary |
|---|---|
| public int getSerializedSize() Due to the optional field can be duplicated at the end of serialized bytes, which will make the serialized size changed after LazyField parsed. Be careful when using this method. | |
| getValue | back to summary |
|---|---|
| public MessageLite getValue(MessageLite defaultInstance) Returns message instance. It may do some thread-safe delayed parsing of bytes.
| |
| hashCode | back to summary |
|---|---|
| public int hashCode() Overrides java. Doc from java. Returns a hash code value for the object. This method is
supported for the benefit of hash tables such as those provided by
The general contract of
| |
| merge | back to summary |
|---|---|
| public void merge(LazyFieldLite other) Merges another instance's contents. In some cases may drop some extensions if both fields
contain data. If the other field has an LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations. | |
| mergeFrom | back to summary |
|---|---|
| public void mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry) throws IOException Merges another instance's contents from a stream. LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations. | |
| mergeValueAndBytes | back to summary |
|---|---|
| private static MessageLite mergeValueAndBytes(MessageLite value, ByteString otherBytes, ExtensionRegistryLite extensionRegistry) | |
| set | back to summary |
|---|---|
| public void set(LazyFieldLite other) Overrides the contents of this LazyField. LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations. | |
| setByteString | back to summary |
|---|---|
| public void setByteString(ByteString bytes, ExtensionRegistryLite extensionRegistry) Sets this field with bytes to delay-parse. | |
| setValue | back to summary |
|---|---|
| public MessageLite setValue(MessageLite value) Sets the value of the instance and returns the old value without delay parsing anything. LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations. | |
| toByteString | back to summary |
|---|---|
| public ByteString toByteString() Returns a BytesString for this field in a thread-safe way. | |