Class GeneratedMessageV3.ExtendableBuilder<MessageType extends GeneratedMessageV3.ExtendableMessage,BuilderType extends GeneratedMessageV3.ExtendableBuilder<MessageType,BuilderType>>

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderType>
com.google.protobuf.GeneratedMessageV3.Builder<BuilderType>
com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType,BuilderType>
All Implemented Interfaces:
GeneratedMessageV3.ExtendableMessageOrBuilder<MessageType>, Message.Builder, MessageLite.Builder, MessageLiteOrBuilder, MessageOrBuilder, Cloneable
Direct Known Subclasses:
DescriptorProtos.EnumOptions.Builder, DescriptorProtos.EnumValueOptions.Builder, DescriptorProtos.ExtensionRangeOptions.Builder, DescriptorProtos.FieldOptions.Builder, DescriptorProtos.FileOptions.Builder, DescriptorProtos.MessageOptions.Builder, DescriptorProtos.MethodOptions.Builder, DescriptorProtos.OneofOptions.Builder, DescriptorProtos.ServiceOptions.Builder
Enclosing class:
GeneratedMessageV3

public abstract static class GeneratedMessageV3.ExtendableBuilder<MessageType extends GeneratedMessageV3.ExtendableMessage,BuilderType extends GeneratedMessageV3.ExtendableBuilder<MessageType,BuilderType>> extends GeneratedMessageV3.Builder<BuilderType> implements GeneratedMessageV3.ExtendableMessageOrBuilder<MessageType>
Generated message builders for message types that contain extension ranges subclass this.

This class implements type-safe accessors for extensions. They implement all the same operations that you can do with normal fields -- e.g. "get", "set", and "add" -- but for extensions. The extensions are identified using instances of the class GeneratedMessage.GeneratedExtension; the protocol compiler generates a static instance of this class for every extension in its input. Through the magic of generics, all is made type-safe.

For example, imagine you have the .proto file:

 option java_class = "MyProto";

 message Foo {
   extensions 1000 to max;
 }

 extend Foo {
   optional int32 bar;
 }
 

Then you might write code like:

 MyProto.Foo foo =
   MyProto.Foo.newBuilder()
     .setExtension(MyProto.bar, 123)
     .build();
 

See also GeneratedMessageV3.ExtendableMessage.