Package com.google.protobuf
Class GeneratedMessage
java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
- All Implemented Interfaces:
Message,MessageLite,MessageLiteOrBuilder,MessageOrBuilder,Serializable
- Direct Known Subclasses:
DescriptorProtos.DescriptorProto,DescriptorProtos.DescriptorProto.ExtensionRange,DescriptorProtos.EnumDescriptorProto,DescriptorProtos.EnumValueDescriptorProto,DescriptorProtos.FieldDescriptorProto,DescriptorProtos.FileDescriptorProto,DescriptorProtos.FileDescriptorSet,DescriptorProtos.MethodDescriptorProto,DescriptorProtos.OneofDescriptorProto,DescriptorProtos.ServiceDescriptorProto,DescriptorProtos.SourceCodeInfo,DescriptorProtos.SourceCodeInfo.Location,DescriptorProtos.UninterpretedOption,DescriptorProtos.UninterpretedOption.NamePart,GeneratedMessage.ExtendableMessage
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.
- Author:
- kenton@google.com Kenton Varda
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classprotected static interfaceInterface for the parent of a Builder that allows the builder to communicate invalidations back to the parent for use when using nested builders.static classGeneratedMessage.ExtendableBuilder<MessageType extends GeneratedMessage.ExtendableMessage,BuilderType extends GeneratedMessage.ExtendableBuilder> Generated message builders for message types that contain extension ranges subclass this.static classGenerated message classes for message types that contain extension ranges subclass this.static interfacestatic final classUsers should ignore this class.static classType used to represent generated extensions. -
Field Summary
FieldsFields inherited from class com.google.protobuf.AbstractMessageLite
memoizedHashCode -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedprotectedGeneratedMessage(GeneratedMessage.Builder<?> builder) -
Method Summary
Modifier and TypeMethodDescriptionReturns a collection of all the fields in this message which are set and their corresponding values.Get the message's type's descriptor.Obtains the value of the given field, or the default value if it is not set.TODO(jieluo): Clear it when all subclasses have implemented this method.Parser<? extends GeneratedMessage>Gets the parser for a message of the same type as this message.getRepeatedField(Descriptors.FieldDescriptor field, int index) Gets an element of a repeated field.intGets the number of elements of a repeated field.Get theUnknownFieldSetfor this message.booleanReturns true if the given field is set.booleanTODO(jieluo): Clear it when all subclasses have implemented this method.protected abstract GeneratedMessage.FieldAccessorTableGet the FieldAccessorTable for this type.booleanReturns true if all required fields in the message and all embedded messages are set, false otherwise.protected voidUsed by parsing constructors in generated classes.protected abstract Message.Builderstatic <ContainingType extends Message,Type>
GeneratedMessage.GeneratedExtension<ContainingType,Type> newFileScopedGeneratedExtension(Class singularType, Message defaultInstance) For use by generated code only.static <ContainingType extends Message,Type>
GeneratedMessage.GeneratedExtension<ContainingType,Type> newFileScopedGeneratedExtension(Class singularType, Message defaultInstance, String descriptorOuterClass, String extensionName) Used in proto1 generated code only.static <ContainingType extends Message,Type>
GeneratedMessage.GeneratedExtension<ContainingType,Type> newMessageScopedGeneratedExtension(Message scope, int descriptorIndex, Class singularType, Message defaultInstance) For use by generated code only.static <ContainingType extends Message,Type>
GeneratedMessage.GeneratedExtension<ContainingType,Type> newMessageScopedGeneratedExtension(Message scope, String name, Class singularType, Message defaultInstance) Used in proto1 generated code only.protected booleanparseUnknownField(CodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag) Called by subclasses to parse an unknown field.protected ObjectReplaces this object in the output stream with a serialized form.Methods inherited from class com.google.protobuf.AbstractMessage
equals, findInitializationErrors, getInitializationErrorString, getSerializedSize, hashCode, hashFields, toString, writeToMethods inherited from class com.google.protobuf.AbstractMessageLite
checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeToMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.google.protobuf.Message
newBuilderForType, toBuilderMethods inherited from interface com.google.protobuf.MessageLite
toByteArray, toByteString, writeDelimitedTo, writeToMethods inherited from interface com.google.protobuf.MessageOrBuilder
getDefaultInstanceForType
-
Field Details
-
alwaysUseFieldBuilders
protected static boolean alwaysUseFieldBuildersFor 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.
-
-
Constructor Details
-
GeneratedMessage
protected GeneratedMessage() -
GeneratedMessage
-
-
Method Details
-
getParserForType
Description copied from interface:MessageLiteGets the parser for a message of the same type as this message.- Specified by:
getParserForTypein interfaceMessage- Specified by:
getParserForTypein interfaceMessageLite
-
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. -
getDescriptorForType
Description copied from interface:MessageOrBuilderGet the message's type's descriptor. This differs from thegetDescriptor()method of generated message classes in that this method is an abstract method of theMessageinterface whereasgetDescriptor()is a static method of a specific class. They return the same thing.- Specified by:
getDescriptorForTypein interfaceMessageOrBuilder
-
isInitialized
public boolean isInitialized()Description copied from interface:MessageLiteOrBuilderReturns true if all required fields in the message and all embedded messages are set, false otherwise.- Specified by:
isInitializedin interfaceMessageLiteOrBuilder- Overrides:
isInitializedin classAbstractMessage
-
getAllFields
Description copied from interface:MessageOrBuilderReturns a collection of all the fields in this message which are set and their corresponding values. A singular ("required" or "optional") field is set iff hasField() returns true for that field. A "repeated" field is set iff getRepeatedFieldCount() is greater than zero. The values are exactly what would be returned by callingMessageOrBuilder.getField(Descriptors.FieldDescriptor)for each field. The map is guaranteed to be a sorted map, so iterating over it will return fields in order by field number.
If this is for a builder, the returned map may or may not reflect future changes to the builder. Either way, the returned map is itself unmodifiable.- Specified by:
getAllFieldsin interfaceMessageOrBuilder
-
hasOneof
Description copied from class:AbstractMessageTODO(jieluo): Clear it when all subclasses have implemented this method.- Specified by:
hasOneofin interfaceMessageOrBuilder- Overrides:
hasOneofin classAbstractMessage
-
getOneofFieldDescriptor
Description copied from class:AbstractMessageTODO(jieluo): Clear it when all subclasses have implemented this method.- Specified by:
getOneofFieldDescriptorin interfaceMessageOrBuilder- Overrides:
getOneofFieldDescriptorin classAbstractMessage
-
hasField
Description copied from interface:MessageOrBuilderReturns true if the given field is set. This is exactly equivalent to calling the generated "has" accessor method corresponding to the field.- Specified by:
hasFieldin interfaceMessageOrBuilder
-
getField
Description copied from interface:MessageOrBuilderObtains the value of the given field, or the default value if it is not set. For primitive fields, the boxed primitive value is returned. For enum fields, the EnumValueDescriptor for the value is returned. For embedded message fields, the sub-message is returned. For repeated fields, a java.util.List is returned.- Specified by:
getFieldin interfaceMessageOrBuilder
-
getRepeatedFieldCount
Description copied from interface:MessageOrBuilderGets the number of elements of a repeated field. This is exactly equivalent to calling the generated "Count" accessor method corresponding to the field.- Specified by:
getRepeatedFieldCountin interfaceMessageOrBuilder
-
getRepeatedField
Description copied from interface:MessageOrBuilderGets an element of a repeated field. For primitive fields, the boxed primitive value is returned. For enum fields, the EnumValueDescriptor for the value is returned. For embedded message fields, the sub-message is returned.- Specified by:
getRepeatedFieldin interfaceMessageOrBuilder
-
getUnknownFields
Description copied from interface:MessageOrBuilderGet theUnknownFieldSetfor this message.- Specified by:
getUnknownFieldsin interfaceMessageOrBuilder
-
parseUnknownField
protected boolean parseUnknownField(CodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag) throws IOException Called by subclasses to parse an unknown field.- Returns:
trueunless the tag is an end-group tag.- Throws:
IOException
-
makeExtensionsImmutable
protected void makeExtensionsImmutable()Used by parsing constructors in generated classes. -
newBuilderForType
-
newMessageScopedGeneratedExtension
public static <ContainingType extends Message,Type> GeneratedMessage.GeneratedExtension<ContainingType,Type> newMessageScopedGeneratedExtension(Message scope, int descriptorIndex, Class singularType, Message defaultInstance) For use by generated code only. -
newFileScopedGeneratedExtension
public static <ContainingType extends Message,Type> GeneratedMessage.GeneratedExtension<ContainingType,Type> newFileScopedGeneratedExtension(Class singularType, Message defaultInstance) For use by generated code only. -
newMessageScopedGeneratedExtension
public static <ContainingType extends Message,Type> GeneratedMessage.GeneratedExtension<ContainingType,Type> newMessageScopedGeneratedExtension(Message scope, String name, Class singularType, Message defaultInstance) Used in proto1 generated code only. After enabling bridge, we can define proto2 extensions (the extended type is a proto2 mutable message) in a proto1 .proto file. For these extensions we should generate proto2 GeneratedExtensions. -
newFileScopedGeneratedExtension
public static <ContainingType extends Message,Type> GeneratedMessage.GeneratedExtension<ContainingType,Type> newFileScopedGeneratedExtension(Class singularType, Message defaultInstance, String descriptorOuterClass, String extensionName) Used in proto1 generated code only. After enabling bridge, we can define proto2 extensions (the extended type is a proto2 mutable message) in a proto1 .proto file. For these extensions we should generate proto2 GeneratedExtensions. -
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 callingreturn super.writeReplace();- Returns:
- a SerializedForm of this message
- Throws:
ObjectStreamException
-