com.google.protobuf
Class GeneratedMessage.ExtendableBuilder<MessageType extends GeneratedMessage.ExtendableMessage,BuilderType extends GeneratedMessage.ExtendableBuilder>

java.lang.Object
  extended by com.google.protobuf.AbstractMessageLite.Builder<BuilderType>
      extended by com.google.protobuf.AbstractMessage.Builder<BuilderType>
          extended by com.google.protobuf.GeneratedMessage.Builder<BuilderType>
              extended by com.google.protobuf.GeneratedMessage.ExtendableBuilder<MessageType,BuilderType>
All Implemented Interfaces:
Message.Builder, MessageLite.Builder, java.lang.Cloneable
Enclosing class:
GeneratedMessage

public abstract static class GeneratedMessage.ExtendableBuilder<MessageType extends GeneratedMessage.ExtendableMessage,BuilderType extends GeneratedMessage.ExtendableBuilder>
extends GeneratedMessage.Builder<BuilderType>

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 GeneratedMessage.ExtendableMessage.


Constructor Summary
protected GeneratedMessage.ExtendableBuilder()
           
 
Method Summary
<Type> BuilderType
addExtension(GeneratedMessage.GeneratedExtension<MessageType,java.util.List<Type>> extension, Type value)
          Append a value to a repeated extension.
 BuilderType addRepeatedField(Descriptors.FieldDescriptor field, java.lang.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,java.util.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,java.util.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,java.util.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, java.lang.Object value)
          Sets a field to the given value.
 BuilderType setRepeatedField(Descriptors.FieldDescriptor field, int index, java.lang.Object value)
          Sets an element of a repeated field to the given value.
 
Methods inherited from class com.google.protobuf.GeneratedMessage.Builder
getAllFields, getDescriptorForType, getField, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, isInitialized, mergeUnknownFields, newBuilderForField, setUnknownFields
 
Methods inherited from class com.google.protobuf.AbstractMessage.Builder
clear, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException
 
Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder
addAll, newUninitializedMessageException
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.google.protobuf.Message.Builder
build, buildPartial, getDefaultInstanceForType
 

Constructor Detail

GeneratedMessage.ExtendableBuilder

protected GeneratedMessage.ExtendableBuilder()
Method Detail

clone

public BuilderType clone()
Description copied from interface: MessageLite.Builder
Clones the Builder.

Specified by:
clone in interface Message.Builder
Specified by:
clone in interface MessageLite.Builder
Overrides:
clone in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>
See Also:
Object.clone()

internalGetResult

protected abstract GeneratedMessage.ExtendableMessage<MessageType> internalGetResult()
Description copied from class: GeneratedMessage.Builder
Get the message being built. We don't just pass this to the constructor because it becomes null when build() is called.

Specified by:
internalGetResult in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>

hasExtension

public final boolean hasExtension(GeneratedMessage.GeneratedExtension<MessageType,?> extension)
Check if a singular extension is present.


getExtensionCount

public final <Type> int getExtensionCount(GeneratedMessage.GeneratedExtension<MessageType,java.util.List<Type>> extension)
Get the number of elements in a repeated extension.


getExtension

public final <Type> Type getExtension(GeneratedMessage.GeneratedExtension<MessageType,Type> extension)
Get the value of an extension.


getExtension

public final <Type> Type getExtension(GeneratedMessage.GeneratedExtension<MessageType,java.util.List<Type>> extension,
                                      int index)
Get one element of a repeated extension.


setExtension

public final <Type> BuilderType setExtension(GeneratedMessage.GeneratedExtension<MessageType,Type> extension,
                                             Type value)
Set the value of an extension.


setExtension

public final <Type> BuilderType setExtension(GeneratedMessage.GeneratedExtension<MessageType,java.util.List<Type>> extension,
                                             int index,
                                             Type value)
Set the value of one element of a repeated extension.


addExtension

public final <Type> BuilderType addExtension(GeneratedMessage.GeneratedExtension<MessageType,java.util.List<Type>> extension,
                                             Type value)
Append a value to a repeated extension.


clearExtension

public final <Type> BuilderType clearExtension(GeneratedMessage.GeneratedExtension<MessageType,?> extension)
Clear an extension.


parseUnknownField

protected boolean parseUnknownField(CodedInputStream input,
                                    UnknownFieldSet.Builder unknownFields,
                                    ExtensionRegistryLite extensionRegistry,
                                    int tag)
                             throws java.io.IOException
Called by subclasses to parse an unknown field or an extension.

Overrides:
parseUnknownField in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>
Returns:
true unless the tag is an end-group tag.
Throws:
java.io.IOException

setField

public BuilderType setField(Descriptors.FieldDescriptor field,
                            java.lang.Object value)
Description copied from interface: Message.Builder
Sets a field to the given value. The value must be of the correct type for this field, i.e. the same type that Message.getField(Descriptors.FieldDescriptor) would return.

Specified by:
setField in interface Message.Builder
Overrides:
setField in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>

clearField

public BuilderType clearField(Descriptors.FieldDescriptor field)
Description copied from interface: Message.Builder
Clears the field. This is exactly equivalent to calling the generated "clear" accessor method corresponding to the field.

Specified by:
clearField in interface Message.Builder
Overrides:
clearField in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>

setRepeatedField

public BuilderType setRepeatedField(Descriptors.FieldDescriptor field,
                                    int index,
                                    java.lang.Object value)
Description copied from interface: Message.Builder
Sets an element of a repeated field to the given value. The value must be of the correct type for this field, i.e. the same type that Message.getRepeatedField(Descriptors.FieldDescriptor,int) would return.

Specified by:
setRepeatedField in interface Message.Builder
Overrides:
setRepeatedField in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>

addRepeatedField

public BuilderType addRepeatedField(Descriptors.FieldDescriptor field,
                                    java.lang.Object value)
Description copied from interface: Message.Builder
Like setRepeatedField, but appends the value as a new element.

Specified by:
addRepeatedField in interface Message.Builder
Overrides:
addRepeatedField in class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.ExtendableBuilder>

mergeExtensionFields

protected final void mergeExtensionFields(GeneratedMessage.ExtendableMessage other)


Copyright © 2008-2010 Google. All Rights Reserved.