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.
Inheritance
Object > AbstractMessageLite<MessageType,BuilderType> > AbstractMessage > GeneratedMessageV3Implements
SerializableStatic 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.
Static Methods
<M>parseDelimitedWithIOException(Parser<M> parser, InputStream input)
protected
static
M
< M>parseDelimitedWithIOException
(
Parser<M>
parser
,
InputStream
input
)
M
<M>parseDelimitedWithIOException(Parser<M> parser, InputStream input, ExtensionRegistryLite extensions)
protected
static
M
< M>parseDelimitedWithIOException
(
Parser<M>
parser
,
InputStream
input
,
ExtensionRegistryLite
extensions
)
M
<M>parseWithIOException(Parser<M> parser, CodedInputStream input)
protected
static
M
< M>parseWithIOException
(
Parser<M>
parser
,
CodedInputStream
input
)
M
<M>parseWithIOException(Parser<M> parser, CodedInputStream input, ExtensionRegistryLite extensions)
protected
static
M
< M>parseWithIOException
(
Parser<M>
parser
,
CodedInputStream
input
,
ExtensionRegistryLite
extensions
)
M
<M>parseWithIOException(Parser<M> parser, InputStream input)
protected
static
M
< M>parseWithIOException
(
Parser<M>
parser
,
InputStream
input
)
M
<M>parseWithIOException(Parser<M> parser, InputStream input, ExtensionRegistryLite extensions)
protected
static
M
< M>parseWithIOException
(
Parser<M>
parser
,
InputStream
input
,
ExtensionRegistryLite
extensions
)
M
<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
)
<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
)
<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
)
<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
)
canUseUnsafe()
protected
static
boolean
canUseUnsafe
()
computeStringSize(int fieldNumber, Object value)
protected
static
int
computeStringSize
(
int
fieldNumber
,
Object
value
)
computeStringSizeNoTag(Object value)
protected
static
int
computeStringSizeNoTag
(
Object
value
)
emptyBooleanList()
protected
static
Internal
.
BooleanList
emptyBooleanList
()
emptyDoubleList()
protected
static
Internal
.
DoubleList
emptyDoubleList
()
emptyFloatList()
protected
static
Internal
.
FloatList
emptyFloatList
()
emptyIntList()
protected
static
Internal
.
IntList
emptyIntList
()
emptyLongList()
protected
static
Internal
.
LongList
emptyLongList
()
isStringEmpty(Object value)
protected
static
boolean
isStringEmpty
(
Object
value
)
mutableCopy(Internal.BooleanList list)
protected
static
Internal
.
BooleanList
mutableCopy
(
Internal
.
BooleanList
list
)
mutableCopy(Internal.DoubleList list)
protected
static
Internal
.
DoubleList
mutableCopy
(
Internal
.
DoubleList
list
)
mutableCopy(Internal.FloatList list)
protected
static
Internal
.
FloatList
mutableCopy
(
Internal
.
FloatList
list
)
mutableCopy(Internal.IntList list)
protected
static
Internal
.
IntList
mutableCopy
(
Internal
.
IntList
list
)
mutableCopy(Internal.LongList list)
protected
static
Internal
.
LongList
mutableCopy
(
Internal
.
LongList
list
)
newBooleanList()
protected
static
Internal
.
BooleanList
newBooleanList
()
newDoubleList()
protected
static
Internal
.
DoubleList
newDoubleList
()
newFloatList()
protected
static
Internal
.
FloatList
newFloatList
()
newIntList()
protected
static
Internal
.
IntList
newIntList
()
newLongList()
protected
static
Internal
.
LongList
newLongList
()
writeString(CodedOutputStream output, int fieldNumber, Object value)
protected
static
void
writeString
(
CodedOutputStream
output
,
int
fieldNumber
,
Object
value
)
writeStringNoTag(CodedOutputStream output, Object value)
protected
static
void
writeStringNoTag
(
CodedOutputStream
output
,
Object
value
)
Constructors
GeneratedMessageV3()
protected
GeneratedMessageV3
()
GeneratedMessageV3(GeneratedMessageV3.Builder<?> builder)
protected
GeneratedMessageV3
(
GeneratedMessageV3
.
Builder
< ?
>
builder
)
Fields
unknownFields
protected
UnknownFieldSet
unknownFields
For use by generated code only.
Methods
getAllFields()
public
Map<Descriptors
.
FieldDescriptor
,
Object
>
getAllFields
()
getDescriptorForType()
public
Descriptors
.
Descriptor
getDescriptorForType
()
getField(Descriptors.FieldDescriptor field)
public
Object
getField
(
Descriptors
.
FieldDescriptor
field
)
getOneofFieldDescriptor(Descriptors.OneofDescriptor oneof)
public
Descriptors
.
FieldDescriptor
getOneofFieldDescriptor
(
Descriptors
.
OneofDescriptor
oneof
)
TODO(jieluo): Clear it when all subclasses have implemented this method.
getParserForType()
public
Parser
< ?
extends
GeneratedMessageV3
>
getParserForType
()
getRepeatedField(Descriptors.FieldDescriptor field, int index)
public
Object
getRepeatedField
(
Descriptors
.
FieldDescriptor
field
,
int
index
)
getRepeatedFieldCount(Descriptors.FieldDescriptor field)
public
int
getRepeatedFieldCount
(
Descriptors
.
FieldDescriptor
field
)
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.
If this message requires more than Integer.MAX_VALUE bytes to encode, the return value will be smaller than the actual number of bytes required and might be negative.
getUnknownFields()
public
UnknownFieldSet
getUnknownFields
()
hasField(Descriptors.FieldDescriptor field)
public
boolean
hasField
(
Descriptors
.
FieldDescriptor
field
)
hasOneof(Descriptors.OneofDescriptor oneof)
public
boolean
hasOneof
(
Descriptors
.
OneofDescriptor
oneof
)
TODO(jieluo): Clear it when all subclasses have implemented this method.
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.
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.
isInitialized()
public
boolean
isInitialized
()
Returns true if all required fields in the message and all embedded messages are set, false otherwise.
makeExtensionsImmutable()
protected
void
makeExtensionsImmutable
()
Used by parsing constructors in generated classes.
mergeFromAndMakeImmutableInternal(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
protected
void
mergeFromAndMakeImmutableInternal
(
CodedInputStream
input
,
ExtensionRegistryLite
extensionRegistry
)
newBuilderForType(AbstractMessage.BuilderParent parent)
protected
Message
.
Builder
newBuilderForType
(
AbstractMessage
.
BuilderParent
parent
)
Create a nested builder.
newBuilderForType(GeneratedMessageV3.BuilderParent parent)
protected
abstract
Message
.
Builder
newBuilderForType
(
GeneratedMessageV3
.
BuilderParent
parent
)
TODO(xiaofeng): remove this together with GeneratedMessageV3.BuilderParent.
newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
protected
Object
newInstance
(
GeneratedMessageV3
.
UnusedPrivateParameter
unused
)
Creates a new instance of this message type. Overridden in the generated code.
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.
input
unknownFields
extensionRegistry
tag
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.
input
unknownFields
extensionRegistry
tag
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();
writeTo(CodedOutputStream output)
public
void
writeTo
(
CodedOutputStream
output
)
Serializes the message and writes it to output
. This does not flush or close the
stream.