Class GeneratedMessageV3

public abstract class GeneratedMessageV3 extends AbstractMessage implements Serializable

All generated protocol message classes extend this class. This class implements most of the Message and Builder interfaces using Java reflection. Users can ignore this class and pretend that generated messages implement the Message interface directly.

Implements

Serializable

Constructors

GeneratedMessageV3()

protected GeneratedMessageV3()

GeneratedMessageV3(GeneratedMessageV3.Builder<?> builder)

protected GeneratedMessageV3(GeneratedMessageV3.Builder<?> builder)
Parameter
NameDescription
builderBuilder<?>

Fields

alwaysUseFieldBuilders

protected static boolean alwaysUseFieldBuilders

For testing. Allows a test to disable the optimization that avoids using field builders for nested messages until they are requested. By disabling this optimization, existing tests can be reused to test the field builders.

Field Value
TypeDescription
boolean

unknownFields

protected UnknownFieldSet unknownFields

For use by generated code only.

Field Value
TypeDescription
UnknownFieldSet

Methods

<M>parseDelimitedWithIOException(Parser<M> parser, InputStream input)

protected static M <M>parseDelimitedWithIOException(Parser<M> parser, InputStream input)
Parameters
NameDescription
parserParser<M>
inputInputStream
Returns
TypeDescription
M
Exceptions
TypeDescription
IOException

<M>parseDelimitedWithIOException(Parser<M> parser, InputStream input, ExtensionRegistryLite extensions)

protected static M <M>parseDelimitedWithIOException(Parser<M> parser, InputStream input, ExtensionRegistryLite extensions)
Parameters
NameDescription
parserParser<M>
inputInputStream
extensionsExtensionRegistryLite
Returns
TypeDescription
M
Exceptions
TypeDescription
IOException

<M>parseWithIOException(Parser<M> parser, CodedInputStream input)

protected static M <M>parseWithIOException(Parser<M> parser, CodedInputStream input)
Parameters
NameDescription
parserParser<M>
inputCodedInputStream
Returns
TypeDescription
M
Exceptions
TypeDescription
IOException

<M>parseWithIOException(Parser<M> parser, CodedInputStream input, ExtensionRegistryLite extensions)

protected static M <M>parseWithIOException(Parser<M> parser, CodedInputStream input, ExtensionRegistryLite extensions)
Parameters
NameDescription
parserParser<M>
inputCodedInputStream
extensionsExtensionRegistryLite
Returns
TypeDescription
M
Exceptions
TypeDescription
IOException

<M>parseWithIOException(Parser<M> parser, InputStream input)

protected static M <M>parseWithIOException(Parser<M> parser, InputStream input)
Parameters
NameDescription
parserParser<M>
inputInputStream
Returns
TypeDescription
M
Exceptions
TypeDescription
IOException

<M>parseWithIOException(Parser<M> parser, InputStream input, ExtensionRegistryLite extensions)

protected static M <M>parseWithIOException(Parser<M> parser, InputStream input, ExtensionRegistryLite extensions)
Parameters
NameDescription
parserParser<M>
inputInputStream
extensionsExtensionRegistryLite
Returns
TypeDescription
M
Exceptions
TypeDescription
IOException

<V>serializeBooleanMapTo(CodedOutputStream out, MapField<Boolean,V> field, MapEntry<Boolean,V> defaultEntry, int fieldNumber)

protected static void <V>serializeBooleanMapTo(CodedOutputStream out, MapField<Boolean,V> field, MapEntry<Boolean,V> defaultEntry, int fieldNumber)
Parameters
NameDescription
outCodedOutputStream
fieldMapField<Boolean,V>
defaultEntryMapEntry<Boolean,V>
fieldNumberint
Exceptions
TypeDescription
IOException

<V>serializeIntegerMapTo(CodedOutputStream out, MapField<Integer,V> field, MapEntry<Integer,V> defaultEntry, int fieldNumber)

protected static void <V>serializeIntegerMapTo(CodedOutputStream out, MapField<Integer,V> field, MapEntry<Integer,V> defaultEntry, int fieldNumber)
Parameters
NameDescription
outCodedOutputStream
fieldMapField<Integer,V>
defaultEntryMapEntry<Integer,V>
fieldNumberint
Exceptions
TypeDescription
IOException

<V>serializeLongMapTo(CodedOutputStream out, MapField<Long,V> field, MapEntry<Long,V> defaultEntry, int fieldNumber)

protected static void <V>serializeLongMapTo(CodedOutputStream out, MapField<Long,V> field, MapEntry<Long,V> defaultEntry, int fieldNumber)
Parameters
NameDescription
outCodedOutputStream
fieldMapField<Long,V>
defaultEntryMapEntry<Long,V>
fieldNumberint
Exceptions
TypeDescription
IOException

<V>serializeStringMapTo(CodedOutputStream out, MapField<String,V> field, MapEntry<String,V> defaultEntry, int fieldNumber)

protected static void <V>serializeStringMapTo(CodedOutputStream out, MapField<String,V> field, MapEntry<String,V> defaultEntry, int fieldNumber)
Parameters
NameDescription
outCodedOutputStream
fieldMapField<String,V>
defaultEntryMapEntry<String,V>
fieldNumberint
Exceptions
TypeDescription
IOException

canUseUnsafe()

protected static boolean canUseUnsafe()
Returns
TypeDescription
boolean

computeStringSize(int fieldNumber, Object value)

protected static int computeStringSize(int fieldNumber, Object value)
Parameters
NameDescription
fieldNumberint
valueObject
Returns
TypeDescription
int

computeStringSizeNoTag(Object value)

protected static int computeStringSizeNoTag(Object value)
Parameter
NameDescription
valueObject
Returns
TypeDescription
int

emptyBooleanList()

protected static Internal.BooleanList emptyBooleanList()
Returns
TypeDescription
Internal.BooleanList

emptyDoubleList()

protected static Internal.DoubleList emptyDoubleList()
Returns
TypeDescription
Internal.DoubleList

emptyFloatList()

protected static Internal.FloatList emptyFloatList()
Returns
TypeDescription
Internal.FloatList

emptyIntList()

protected static Internal.IntList emptyIntList()
Returns
TypeDescription
Internal.IntList

emptyLongList()

protected static Internal.LongList emptyLongList()
Returns
TypeDescription
Internal.LongList

getAllFields()

public Map<Descriptors.FieldDescriptor,Object> getAllFields()
Returns
TypeDescription
Map<FieldDescriptor,Object>

getDescriptorForType()

public Descriptors.Descriptor getDescriptorForType()
Returns
TypeDescription
Descriptors.Descriptor

getField(Descriptors.FieldDescriptor field)

public Object getField(Descriptors.FieldDescriptor field)
Parameter
NameDescription
fieldDescriptors.FieldDescriptor
Returns
TypeDescription
Object

getOneofFieldDescriptor(Descriptors.OneofDescriptor oneof)

public Descriptors.FieldDescriptor getOneofFieldDescriptor(Descriptors.OneofDescriptor oneof)

TODO(jieluo): Clear it when all subclasses have implemented this method.

Parameter
NameDescription
oneofDescriptors.OneofDescriptor
Returns
TypeDescription
Descriptors.FieldDescriptor
Overrides

getParserForType()

public Parser<? extends GeneratedMessageV3> getParserForType()
Returns
TypeDescription
Parser<? extends com.google.protobuf.GeneratedMessageV3>

getRepeatedField(Descriptors.FieldDescriptor field, int index)

public Object getRepeatedField(Descriptors.FieldDescriptor field, int index)
Parameters
NameDescription
fieldDescriptors.FieldDescriptor
indexint
Returns
TypeDescription
Object

getRepeatedFieldCount(Descriptors.FieldDescriptor field)

public int getRepeatedFieldCount(Descriptors.FieldDescriptor field)
Parameter
NameDescription
fieldDescriptors.FieldDescriptor
Returns
TypeDescription
int

getSerializedSize()

public int getSerializedSize()

Get the number of bytes required to encode this message. The result is only computed on the first call and memoized after that.

Returns
TypeDescription
int
Overrides

getUnknownFields()

public UnknownFieldSet getUnknownFields()
Returns
TypeDescription
UnknownFieldSet

hasField(Descriptors.FieldDescriptor field)

public boolean hasField(Descriptors.FieldDescriptor field)
Parameter
NameDescription
fieldDescriptors.FieldDescriptor
Returns
TypeDescription
boolean

hasOneof(Descriptors.OneofDescriptor oneof)

public boolean hasOneof(Descriptors.OneofDescriptor oneof)

TODO(jieluo): Clear it when all subclasses have implemented this method.

Parameter
NameDescription
oneofDescriptors.OneofDescriptor
Returns
TypeDescription
boolean
Overrides

internalGetFieldAccessorTable()

protected abstract GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()

Get the FieldAccessorTable for this type. We can't have the message class pass this in to the constructor because of bootstrapping trouble with DescriptorProtos.

Returns
TypeDescription
GeneratedMessageV3.FieldAccessorTable

internalGetMapField(int fieldNumber)

protected MapField internalGetMapField(int fieldNumber)

Gets the map field with the given field number. This method should be overridden in the generated message class if the message contains map fields.

Unlike other field types, reflection support for map fields can't be implemented based on generated public API because we need to access a map field as a list in reflection API but the generated API only allows us to access it as a map. This method returns the underlying map field directly and thus enables us to access the map field as a list.

Parameter
NameDescription
fieldNumberint
Returns
TypeDescription
MapField

isInitialized()

public boolean isInitialized()

Returns true if all required fields in the message and all embedded messages are set, false otherwise.

See also: MessageOrBuilder#getInitializationErrorString()

Returns
TypeDescription
boolean
Overrides

isStringEmpty(Object value)

protected static boolean isStringEmpty(Object value)
Parameter
NameDescription
valueObject
Returns
TypeDescription
boolean

makeExtensionsImmutable()

protected void makeExtensionsImmutable()

Used by parsing constructors in generated classes.

mergeFromAndMakeImmutableInternal(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

protected void mergeFromAndMakeImmutableInternal(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputCodedInputStream
extensionRegistryExtensionRegistryLite
Exceptions
TypeDescription
InvalidProtocolBufferException

mutableCopy(Internal.BooleanList list)

protected static Internal.BooleanList mutableCopy(Internal.BooleanList list)
Parameter
NameDescription
listInternal.BooleanList
Returns
TypeDescription
Internal.BooleanList

mutableCopy(Internal.DoubleList list)

protected static Internal.DoubleList mutableCopy(Internal.DoubleList list)
Parameter
NameDescription
listInternal.DoubleList
Returns
TypeDescription
Internal.DoubleList

mutableCopy(Internal.FloatList list)

protected static Internal.FloatList mutableCopy(Internal.FloatList list)
Parameter
NameDescription
listInternal.FloatList
Returns
TypeDescription
Internal.FloatList

mutableCopy(Internal.IntList list)

protected static Internal.IntList mutableCopy(Internal.IntList list)
Parameter
NameDescription
listInternal.IntList
Returns
TypeDescription
Internal.IntList

mutableCopy(Internal.LongList list)

protected static Internal.LongList mutableCopy(Internal.LongList list)
Parameter
NameDescription
listInternal.LongList
Returns
TypeDescription
Internal.LongList

newBooleanList()

protected static Internal.BooleanList newBooleanList()
Returns
TypeDescription
Internal.BooleanList

newBuilderForType(AbstractMessage.BuilderParent parent)

protected Message.Builder newBuilderForType(AbstractMessage.BuilderParent parent)

Create a nested builder.

Parameter
NameDescription
parentAbstractMessage.BuilderParent
Returns
TypeDescription
Message.Builder
Overrides

newBuilderForType(GeneratedMessageV3.BuilderParent parent)

protected abstract Message.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)

TODO(xiaofeng): remove this together with GeneratedMessageV3.BuilderParent.

Parameter
NameDescription
parentGeneratedMessageV3.BuilderParent
Returns
TypeDescription
Message.Builder

newDoubleList()

protected static Internal.DoubleList newDoubleList()
Returns
TypeDescription
Internal.DoubleList

newFloatList()

protected static Internal.FloatList newFloatList()
Returns
TypeDescription
Internal.FloatList

newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

Creates a new instance of this message type. Overridden in the generated code.

Parameter
NameDescription
unusedGeneratedMessageV3.UnusedPrivateParameter
Returns
TypeDescription
Object

newIntList()

protected static Internal.IntList newIntList()
Returns
TypeDescription
Internal.IntList

newLongList()

protected static Internal.LongList newLongList()
Returns
TypeDescription
Internal.LongList

parseUnknownField(CodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag)

protected boolean parseUnknownField(CodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag)

Called by subclasses to parse an unknown field.

Parameters
NameDescription
inputCodedInputStream
unknownFieldsUnknownFieldSet.Builder
extensionRegistryExtensionRegistryLite
tagint
Returns
TypeDescription
boolean

true unless the tag is an end-group tag.

Exceptions
TypeDescription
IOException

parseUnknownFieldProto3(CodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag)

protected boolean parseUnknownFieldProto3(CodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag)

Delegates to parseUnknownField. This method is obsolete, but we must retain it for compatibility with older generated code.

Parameters
NameDescription
inputCodedInputStream
unknownFieldsUnknownFieldSet.Builder
extensionRegistryExtensionRegistryLite
tagint
Returns
TypeDescription
boolean
Exceptions
TypeDescription
IOException

writeReplace()

protected Object writeReplace()

Replaces this object in the output stream with a serialized form. Part of Java's serialization magic. Generated sub-classes must override this method by calling return super.writeReplace();

Returns
TypeDescription
Object

a SerializedForm of this message

Exceptions
TypeDescription
ObjectStreamException

writeString(CodedOutputStream output, int fieldNumber, Object value)

protected static void writeString(CodedOutputStream output, int fieldNumber, Object value)
Parameters
NameDescription
outputCodedOutputStream
fieldNumberint
valueObject
Exceptions
TypeDescription
IOException

writeStringNoTag(CodedOutputStream output, Object value)

protected static void writeStringNoTag(CodedOutputStream output, Object value)
Parameters
NameDescription
outputCodedOutputStream
valueObject
Exceptions
TypeDescription
IOException

writeTo(CodedOutputStream output)

public void writeTo(CodedOutputStream output)

Serializes the message and writes it to output. This does not flush or close the stream.

Parameter
NameDescription
outputCodedOutputStream
Overrides Exceptions
TypeDescription
IOException