Class LazyFieldLite (3.19.4)

  public 
  
 class 
 LazyFieldLite 
 

LazyFieldLite encapsulates the logic of lazily parsing message fields. It stores the message in a ByteString initially and then parses it on-demand.

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.

Inheritance

Object > LazyFieldLite

Static Methods

fromValue(MessageLite value)

  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.

Parameter
Name
Description
value
Returns
Type
Description

Constructors

LazyFieldLite()

  public 
  
 LazyFieldLite 
 () 
 

Constructs a LazyFieldLite with no contents, and no ability to parse extensions.

LazyFieldLite(ExtensionRegistryLite extensionRegistry, ByteString bytes)

  public 
  
 LazyFieldLite 
 ( 
 ExtensionRegistryLite 
  
 extensionRegistry 
 , 
  
 ByteString 
  
 bytes 
 ) 
 

Constructs a LazyFieldLite with bytes that will be parsed lazily.

Parameters
Name
Description
extensionRegistry
bytes

Fields

value

  protected 
  
 volatile 
  
 MessageLite 
  
 value 
 

The parsed value. When this is null and a caller needs access to the MessageLite value, then delayedBytes will be parsed lazily at that time.

Field Value
Type
Description

Methods

clear()

  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()

  public 
  
 boolean 
  
 containsDefaultInstance 
 () 
 

Determines whether this LazyFieldLite instance represents the default instance of this type.

Returns
Type
Description

ensureInitialized(MessageLite defaultInstance)

  protected 
  
 void 
  
 ensureInitialized 
 ( 
 MessageLite 
  
 defaultInstance 
 ) 
 

Might lazily parse the bytes that were previously passed in. Is thread-safe.

Parameter
Name
Description
defaultInstance

equals(Object o)

  public 
  
 boolean 
  
 equals 
 ( 
 Object 
  
 o 
 ) 
 
Parameter
Name
Description
o
Returns
Type
Description
Overrides

getSerializedSize()

  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.

Returns
Type
Description
int

getValue(MessageLite defaultInstance)

  public 
  
 MessageLite 
  
 getValue 
 ( 
 MessageLite 
  
 defaultInstance 
 ) 
 

Returns message instance. It may do some thread-safe delayed parsing of bytes.

Parameter
Name
Description
defaultInstance
MessageLite

its message's default instance. It's also used to get parser for the message type.

Returns
Type
Description

hashCode()

  public 
  
 int 
  
 hashCode 
 () 
 
Returns
Type
Description
int
Overrides

merge(LazyFieldLite other)

  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 ExtensionRegistry but this does not, then this field will copy over that ExtensionRegistry .

LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations.

Parameter
Name
Description

mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

  public 
  
 void 
  
 mergeFrom 
 ( 
 CodedInputStream 
  
 input 
 , 
  
 ExtensionRegistryLite 
  
 extensionRegistry 
 ) 
 

Merges another instance's contents from a stream.

LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations.

Parameters
Name
Description
extensionRegistry
Exceptions
Type
Description

set(LazyFieldLite other)

  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.

Parameter
Name
Description

setByteString(ByteString bytes, ExtensionRegistryLite extensionRegistry)

  public 
  
 void 
  
 setByteString 
 ( 
 ByteString 
  
 bytes 
 , 
  
 ExtensionRegistryLite 
  
 extensionRegistry 
 ) 
 

Sets this field with bytes to delay-parse.

Parameters
Name
Description
bytes
extensionRegistry

setValue(MessageLite value)

  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.

Parameter
Name
Description
value
Returns
Type
Description

toByteString()

  public 
  
 ByteString 
  
 toByteString 
 () 
 

Returns a BytesString for this field in a thread-safe way.

Returns
Type
Description
Create a Mobile Website
View Site in Mobile | Classic
Share by: