com.google.protobuf
Class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.Builder>

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>
All Implemented Interfaces:
Message.Builder, MessageLite.Builder, MessageLiteOrBuilder, MessageOrBuilder, java.lang.Cloneable
Direct Known Subclasses:
DescriptorProtos.DescriptorProto.Builder, DescriptorProtos.DescriptorProto.ExtensionRange.Builder, DescriptorProtos.EnumDescriptorProto.Builder, DescriptorProtos.EnumValueDescriptorProto.Builder, DescriptorProtos.FieldDescriptorProto.Builder, DescriptorProtos.FileDescriptorProto.Builder, DescriptorProtos.FileDescriptorSet.Builder, DescriptorProtos.MethodDescriptorProto.Builder, DescriptorProtos.ServiceDescriptorProto.Builder, DescriptorProtos.SourceCodeInfo.Builder, DescriptorProtos.SourceCodeInfo.Location.Builder, DescriptorProtos.UninterpretedOption.Builder, DescriptorProtos.UninterpretedOption.NamePart.Builder, GeneratedMessage.ExtendableBuilder
Enclosing class:
GeneratedMessage

public abstract static class GeneratedMessage.Builder<BuilderType extends GeneratedMessage.Builder>
extends AbstractMessage.Builder<BuilderType>


Constructor Summary
protected GeneratedMessage.Builder()
           
protected GeneratedMessage.Builder(GeneratedMessage.BuilderParent builderParent)
           
 
Method Summary
 BuilderType addRepeatedField(Descriptors.FieldDescriptor field, java.lang.Object value)
          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.
 BuilderType clearField(Descriptors.FieldDescriptor field)
          Clears the field.
 BuilderType clone()
          Clones the Builder.
 java.util.Map<Descriptors.FieldDescriptor,java.lang.Object> getAllFields()
          Returns a collection of all the fields in this message which are set and their corresponding values.
 Descriptors.Descriptor getDescriptorForType()
          Get the message's type's descriptor.
 java.lang.Object getField(Descriptors.FieldDescriptor field)
          Obtains the value of the given field, or the default value if it is not set.
protected  GeneratedMessage.BuilderParent getParentForChildren()
          Gets the GeneratedMessage.BuilderParent for giving to our children.
 java.lang.Object getRepeatedField(Descriptors.FieldDescriptor field, int index)
          Gets an element of a repeated field.
 int getRepeatedFieldCount(Descriptors.FieldDescriptor field)
          Gets the number of elements of a repeated field.
 UnknownFieldSet getUnknownFields()
          Get the UnknownFieldSet for this message.
 boolean hasField(Descriptors.FieldDescriptor field)
          Returns true if the given field is set.
protected abstract  GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
          Get the FieldAccessorTable for this type.
protected  boolean isClean()
          Gets whether invalidations are needed
 boolean isInitialized()
          Returns true if all required fields in the message and all embedded messages are set, false otherwise.
protected  void markClean()
          Called by the subclass or a builder to notify us that a message was built and may be cached and therefore invalidations are needed.
 BuilderType mergeUnknownFields(UnknownFieldSet unknownFields)
          Merge some unknown fields into the UnknownFieldSet for this message.
 Message.Builder newBuilderForField(Descriptors.FieldDescriptor field)
          Create a Builder for messages of the appropriate type for the given field.
protected  void onBuilt()
          Called by the subclass when a message is built.
protected  void onChanged()
          Called when a the builder or one of its nested children has changed and any parent should be notified of its invalidation.
protected  boolean parseUnknownField(CodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistryLite extensionRegistry, int tag)
          Called by subclasses to parse an unknown field.
 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.
 BuilderType setUnknownFields(UnknownFieldSet unknownFields)
          Set the UnknownFieldSet for this message.
 
Methods inherited from class com.google.protobuf.AbstractMessage.Builder
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
 
Methods inherited from interface com.google.protobuf.MessageOrBuilder
getDefaultInstanceForType
 

Constructor Detail

GeneratedMessage.Builder

protected GeneratedMessage.Builder()

GeneratedMessage.Builder

protected GeneratedMessage.Builder(GeneratedMessage.BuilderParent builderParent)
Method Detail

onBuilt

protected void onBuilt()
Called by the subclass when a message is built.


markClean

protected void markClean()
Called by the subclass or a builder to notify us that a message was built and may be cached and therefore invalidations are needed.


isClean

protected boolean isClean()
Gets whether invalidations are needed

Returns:
whether invalidations are needed

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
Specified by:
clone in class AbstractMessage.Builder<BuilderType extends GeneratedMessage.Builder>
See Also:
Object.clone()

clear

public 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.

Specified by:
clear in interface Message.Builder
Specified by:
clear in interface MessageLite.Builder
Overrides:
clear in class AbstractMessage.Builder<BuilderType extends GeneratedMessage.Builder>

internalGetFieldAccessorTable

protected abstract GeneratedMessage.FieldAccessorTable 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

public Descriptors.Descriptor getDescriptorForType()
Description copied from interface: Message.Builder
Get the message's type's descriptor. See MessageOrBuilder.getDescriptorForType().


getAllFields

public java.util.Map<Descriptors.FieldDescriptor,java.lang.Object> getAllFields()
Description copied from interface: MessageOrBuilder
Returns 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 getRepeatedFieldSize() is greater than zero. The values are exactly what would be returned by calling 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.
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.


newBuilderForField

public Message.Builder newBuilderForField(Descriptors.FieldDescriptor field)
Description copied from interface: Message.Builder
Create a Builder for messages of the appropriate type for the given field. Messages built with this can then be passed to setField(), setRepeatedField(), or addRepeatedField().


hasField

public boolean hasField(Descriptors.FieldDescriptor field)
Description copied from interface: MessageOrBuilder
Returns true if the given field is set. This is exactly equivalent to calling the generated "has" accessor method corresponding to the field.


getField

public java.lang.Object getField(Descriptors.FieldDescriptor field)
Description copied from interface: MessageOrBuilder
Obtains 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 returend. For embedded message fields, the sub-message is returned. For repeated fields, a java.util.List is returned.


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 MessageOrBuilder.getField(Descriptors.FieldDescriptor) would return.


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.


getRepeatedFieldCount

public int getRepeatedFieldCount(Descriptors.FieldDescriptor field)
Description copied from interface: MessageOrBuilder
Gets the number of elements of a repeated field. This is exactly equivalent to calling the generated "Count" accessor method corresponding to the field.


getRepeatedField

public java.lang.Object getRepeatedField(Descriptors.FieldDescriptor field,
                                         int index)
Description copied from interface: MessageOrBuilder
Gets an element of a repeated field. For primitive fields, the boxed primitive value is returned. For enum fields, the EnumValueDescriptor for the value is returend. For embedded message fields, the sub-message is returned.


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 MessageOrBuilder.getRepeatedField(Descriptors.FieldDescriptor,int) would return.


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.


setUnknownFields

public final BuilderType setUnknownFields(UnknownFieldSet unknownFields)
Description copied from interface: Message.Builder
Set the UnknownFieldSet for this message.


mergeUnknownFields

public final BuilderType mergeUnknownFields(UnknownFieldSet unknownFields)
Description copied from interface: Message.Builder
Merge some unknown fields into the UnknownFieldSet for this message.

Specified by:
mergeUnknownFields in interface Message.Builder
Overrides:
mergeUnknownFields in class AbstractMessage.Builder<BuilderType extends GeneratedMessage.Builder>

isInitialized

public boolean isInitialized()
Description copied from interface: MessageLiteOrBuilder
Returns true if all required fields in the message and all embedded messages are set, false otherwise.


getUnknownFields

public final UnknownFieldSet getUnknownFields()
Description copied from interface: MessageOrBuilder
Get the UnknownFieldSet for this message.


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.

Returns:
true unless the tag is an end-group tag.
Throws:
java.io.IOException

getParentForChildren

protected GeneratedMessage.BuilderParent getParentForChildren()
Gets the GeneratedMessage.BuilderParent for giving to our children.

Returns:
The builder parent for our children.

onChanged

protected final void onChanged()
Called when a the builder or one of its nested children has changed and any parent should be notified of its invalidation.



Copyright © 2008-2011 Google. All Rights Reserved.