public abstract static class GeneratedMessage.ExtendableBuilder<MessageType extends GeneratedMessage.ExtendableMessage,BuilderType extends GeneratedMessage.ExtendableBuilder> extends GeneratedMessage.Builder<BuilderType>
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 |
GeneratedMessage.ExtendableBuilder() |
Modifier and Type | Method and Description |
---|---|
<Type> BuilderType |
addExtension(GeneratedMessage.GeneratedExtension<MessageType,List<Type>> extension,
Type value)
Append a value to a repeated extension.
|
BuilderType |
addRepeatedField(Descriptors.FieldDescriptor field,
Object value)
Like
setRepeatedField , but appends the value as a new element. |
<Type> BuilderType |
clearExtension(GeneratedMessage.GeneratedExtension<MessageType,?> extension)
Clear an extension.
|
BuilderType |
clearField(Descriptors.FieldDescriptor field)
Clears the field.
|
BuilderType |
clone()
Clones the Builder.
|
<Type> Type |
getExtension(GeneratedMessage.GeneratedExtension<MessageType,List<Type>> extension,
int index)
Get one element of a repeated extension.
|
<Type> Type |
getExtension(GeneratedMessage.GeneratedExtension<MessageType,Type> extension)
Get the value of an extension.
|
<Type> int |
getExtensionCount(GeneratedMessage.GeneratedExtension<MessageType,List<Type>> extension)
Get the number of elements in a repeated extension.
|
boolean |
hasExtension(GeneratedMessage.GeneratedExtension<MessageType,?> extension)
Check if a singular extension is present.
|
protected abstract GeneratedMessage.ExtendableMessage<MessageType> |
internalGetResult()
Get the message being built.
|
protected void |
mergeExtensionFields(GeneratedMessage.ExtendableMessage other) |
protected boolean |
parseUnknownField(CodedInputStream input,
UnknownFieldSet.Builder unknownFields,
ExtensionRegistryLite extensionRegistry,
int tag)
Called by subclasses to parse an unknown field or an extension.
|
<Type> BuilderType |
setExtension(GeneratedMessage.GeneratedExtension<MessageType,List<Type>> extension,
int index,
Type value)
Set the value of one element of a repeated extension.
|
<Type> BuilderType |
setExtension(GeneratedMessage.GeneratedExtension<MessageType,Type> extension,
Type value)
Set the value of an extension.
|
BuilderType |
setField(Descriptors.FieldDescriptor field,
Object value)
Sets a field to the given value.
|
BuilderType |
setRepeatedField(Descriptors.FieldDescriptor field,
int index,
Object value)
Sets an element of a repeated field to the given value.
|
getAllFields, getDescriptorForType, getField, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, isInitialized, mergeUnknownFields, newBuilderForField, setUnknownFields
clear, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException
addAll, newUninitializedMessageException
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
build, buildPartial, getDefaultInstanceForType
protected GeneratedMessage.ExtendableBuilder()
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()
protected abstract GeneratedMessage.ExtendableMessage<MessageType> internalGetResult()
GeneratedMessage.Builder
internalGetResult
in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>
public final boolean hasExtension(GeneratedMessage.GeneratedExtension<MessageType,?> extension)
public final <Type> int getExtensionCount(GeneratedMessage.GeneratedExtension<MessageType,List<Type>> extension)
public final <Type> Type getExtension(GeneratedMessage.GeneratedExtension<MessageType,Type> extension)
public final <Type> Type getExtension(GeneratedMessage.GeneratedExtension<MessageType,List<Type>> extension, int index)
public final <Type> BuilderType setExtension(GeneratedMessage.GeneratedExtension<MessageType,Type> extension, Type value)
public final <Type> BuilderType setExtension(GeneratedMessage.GeneratedExtension<MessageType,List<Type>> extension, int index, Type value)
public final <Type> BuilderType addExtension(GeneratedMessage.GeneratedExtension<MessageType,List<Type>> extension, Type value)
public final <Type> BuilderType clearExtension(GeneratedMessage.GeneratedExtension<MessageType,?> extension)
protected boolean parseUnknownField(CodedInputStream input, 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 BuilderType setField(Descriptors.FieldDescriptor field, Object value)
Message.Builder
Message.getField(Descriptors.FieldDescriptor)
would return.setField
in interface Message.Builder
setField
in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>
public BuilderType clearField(Descriptors.FieldDescriptor field)
Message.Builder
clearField
in interface Message.Builder
clearField
in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>
public BuilderType setRepeatedField(Descriptors.FieldDescriptor field, int index, Object value)
Message.Builder
Message.getRepeatedField(Descriptors.FieldDescriptor,int)
would
return.setRepeatedField
in interface Message.Builder
setRepeatedField
in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>
public BuilderType addRepeatedField(Descriptors.FieldDescriptor field, Object value)
Message.Builder
setRepeatedField
, but appends the value as a new element.addRepeatedField
in interface Message.Builder
addRepeatedField
in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>
protected final void mergeExtensionFields(GeneratedMessage.ExtendableMessage other)
Copyright © 2008-2012. All Rights Reserved.