public abstract static class GeneratedMessage.ExtendableBuilder<MessageType extends GeneratedMessage.ExtendableMessage extends GeneratedMessage ,BuilderType extends GeneratedMessage .ExtendableBuilder > .Builder <BuilderType> implements GeneratedMessage .ExtendableMessageOrBuilder <MessageType>
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 GeneratedMessage.ExtendableMessage.
| Modifier | Constructor and Description |
|---|---|
protected |
ExtendableBuilder()
|
protected |
ExtendableBuilder(GeneratedMessage
|
| Modifier and Type | Method and Description |
|---|---|
<Type> BuilderType |
addExtension(Extension
Append a value to a repeated extension.
|
BuilderType |
addRepeatedField(Descriptors
Like
setRepeatedField, but appends the value as a new element.
|
BuilderType |
clear()
Called by the initialization and clear code paths to allow subclasses to reset any of their builtin fields back to the initial values.
|
<Type> BuilderType |
clearExtension(Extension
Clear an extension.
|
BuilderType |
clearField(Descriptors
Clears the field.
|
BuilderType |
clone()
Clones the Builder.
|
protected boolean |
extensionsAreInitialized()
Called by subclasses to check if all extensions are initialized.
|
Map |
getAllFields()
Returns a collection of all the fields in this message which are set and their corresponding values.
|
<Type> Type |
getExtension(Extension
Get one element of a repeated extension.
|
<Type> Type |
getExtension(Extension
Get the value of an extension.
|
<Type> int |
getExtensionCount(Extension
Get the number of elements in a repeated extension.
|
Object |
getField(Descriptors
Obtains the value of the given field, or the default value if it is not set.
|
Object |
getRepeatedField(Descriptors
Gets an element of a repeated field.
|
int |
getRepeatedFieldCount(Descriptors
Gets the number of elements of a repeated field.
|
<Type> boolean |
hasExtension(Extension
Check if a singular extension is present.
|
boolean |
hasField(Descriptors
Returns true if the given field is set.
|
boolean |
isInitialized()
Returns true if all required fields in the message and all embedded messages are set, false otherwise.
|
protected void |
mergeExtensionFields(GeneratedMessage
|
protected boolean |
parseUnknownField(CodedInputStream
Called by subclasses to parse an unknown field or an extension.
|
<Type> BuilderType |
setExtension(Extension
Set the value of one element of a repeated extension.
|
<Type> BuilderType |
setExtension(Extension
Set the value of an extension.
|
BuilderType |
setField(Descriptors
Sets a field to the given value.
|
BuilderType |
setRepeatedField(Descriptors
Sets an element of a repeated field to the given value.
|
clearOneof, getDescriptorForType, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getUnknownFields, hasOneof, internalGetFieldAccessorTable, isClean, markClean, mergeUnknownFields, newBuilderForField, onBuilt, onChanged, setUnknownFieldsfindInitializationErrors, getInitializationErrorString, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toStringaddAll, newUninitializedMessageExceptionequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetDefaultInstanceForTypefindInitializationErrors, getDescriptorForType, getInitializationErrorString, getOneofFieldDescriptor, getUnknownFields, hasOneofbuild, buildPartialprotected ExtendableBuilder()
protected ExtendableBuilder(GeneratedMessage.BuilderParent parent)
public BuilderType clear()
GeneratedMessage.Builder
public BuilderType clone()
MessageLite.Builder
clone in interface
Message.Builder
clone in interface
MessageLite.Builder
clone in class
GeneratedMessage.Builder <BuilderType extends GeneratedMessage.ExtendableBuilder >
Object.clone()
public final <Type> boolean hasExtension(Extension<MessageType ,Type> extension)
public final <Type> int getExtensionCount(Extension<MessageType ,List <Type>> extension)
public final <Type> Type getExtension(Extension<MessageType ,Type> extension)
public final <Type> Type getExtension(Extension<MessageType ,List <Type>> extension, int index)
public final <Type> BuilderType setExtension(Extension<MessageType ,Type> extension, Type value)
public final <Type> BuilderType setExtension(Extension<MessageType ,List <Type>> extension, int index, Type value)
public final <Type> BuilderType addExtension(Extension<MessageType ,List <Type>> extension, Type value)
public final <Type> BuilderType clearExtension(Extension<MessageType ,?> extension)
protected boolean extensionsAreInitialized()
public boolean isInitialized()
MessageLiteOrBuilder
protected boolean parseUnknownField(CodedInputStreaminput, UnknownFieldSet .Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag) throws IOException
parseUnknownField in class
GeneratedMessage.Builder <BuilderType extends GeneratedMessage.ExtendableBuilder >
true unless the tag is an end-group tag.
IOException
public Map<Descriptors .FieldDescriptor ,Object > getAllFields()
MessageOrBuilder
MessageOrBuilder.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.
public ObjectgetField(Descriptors .FieldDescriptor field)
MessageOrBuilder
public int getRepeatedFieldCount(Descriptors.FieldDescriptor field)
MessageOrBuilder
public ObjectgetRepeatedField(Descriptors .FieldDescriptor field, int index)
MessageOrBuilder
public boolean hasField(Descriptors.FieldDescriptor field)
MessageOrBuilder
public BuilderType setField(Descriptors.FieldDescriptor field, Object value)
Message.Builder
MessageOrBuilder.getField(Descriptors.FieldDescriptor) would return.
public BuilderType clearField(Descriptors.FieldDescriptor field)
Message.Builder
public BuilderType setRepeatedField(Descriptors.FieldDescriptor field, int index, Object value)
Message.Builder
MessageOrBuilder.getRepeatedField(Descriptors.FieldDescriptor,int) would return.
public BuilderType addRepeatedField(Descriptors.FieldDescriptor field, Object value)
Message.Builder
setRepeatedField, but appends the value as a new element.
protected final void mergeExtensionFields(GeneratedMessage.ExtendableMessage other)