com.google.protobuf
Class DynamicMessage

java.lang.Object
  extended by com.google.protobuf.AbstractMessageLite
      extended by com.google.protobuf.AbstractMessage
          extended by com.google.protobuf.DynamicMessage
All Implemented Interfaces:
Message, MessageLite

public final class DynamicMessage
extends AbstractMessage

An implementation of Message that can represent arbitrary types, given a Descriptors.Descriptor.

Author:
[email protected] Kenton Varda

Nested Class Summary
static class DynamicMessage.Builder
          Builder for DynamicMessages.
 
Method Summary
 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.
static DynamicMessage getDefaultInstance(Descriptors.Descriptor type)
          Get a DynamicMessage representing the default instance of the given type.
 DynamicMessage getDefaultInstanceForType()
          Get an instance of the type with all fields set to their default 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.
 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.
 int getSerializedSize()
          Get the number of bytes required to encode this message.
 UnknownFieldSet getUnknownFields()
          Get the UnknownFieldSet for this message.
 boolean hasField(Descriptors.FieldDescriptor field)
          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.
static DynamicMessage.Builder newBuilder(Descriptors.Descriptor type)
          Construct a DynamicMessage.Builder for the given type.
static DynamicMessage.Builder newBuilder(Message prototype)
          Construct a DynamicMessage.Builder for a message of the same type as prototype, and initialize it with prototype's contents.
 DynamicMessage.Builder newBuilderForType()
          Constructs a new builder for a message of the same type as this message.
static DynamicMessage parseFrom(Descriptors.Descriptor type, byte[] data)
          Parse data as a message of the given type and return it.
static DynamicMessage parseFrom(Descriptors.Descriptor type, byte[] data, ExtensionRegistry extensionRegistry)
          Parse data as a message of the given type and return it.
static DynamicMessage parseFrom(Descriptors.Descriptor type, ByteString data)
          Parse data as a message of the given type and return it.
static DynamicMessage parseFrom(Descriptors.Descriptor type, ByteString data, ExtensionRegistry extensionRegistry)
          Parse data as a message of the given type and return it.
static DynamicMessage parseFrom(Descriptors.Descriptor type, CodedInputStream input)
          Parse a message of the given type from the given input stream.
static DynamicMessage parseFrom(Descriptors.Descriptor type, CodedInputStream input, ExtensionRegistry extensionRegistry)
          Parse a message of the given type from the given input stream.
static DynamicMessage parseFrom(Descriptors.Descriptor type, java.io.InputStream input)
          Parse a message of the given type from input and return it.
static DynamicMessage parseFrom(Descriptors.Descriptor type, java.io.InputStream input, ExtensionRegistry extensionRegistry)
          Parse a message of the given type from input and return it.
 DynamicMessage.Builder toBuilder()
          Constructs a builder initialized with the current message.
 void writeTo(CodedOutputStream output)
          Serializes the message and writes it to output.
 
Methods inherited from class com.google.protobuf.AbstractMessage
equals, hashCode, toString
 
Methods inherited from class com.google.protobuf.AbstractMessageLite
toByteArray, toByteString, writeDelimitedTo, writeTo
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.google.protobuf.MessageLite
toByteArray, toByteString, writeDelimitedTo, writeTo
 

Method Detail

getDefaultInstance

public static DynamicMessage getDefaultInstance(Descriptors.Descriptor type)
Get a DynamicMessage representing the default instance of the given type.


parseFrom

public static DynamicMessage parseFrom(Descriptors.Descriptor type,
                                       CodedInputStream input)
                                throws java.io.IOException
Parse a message of the given type from the given input stream.

Throws:
java.io.IOException

parseFrom

public static DynamicMessage parseFrom(Descriptors.Descriptor type,
                                       CodedInputStream input,
                                       ExtensionRegistry extensionRegistry)
                                throws java.io.IOException
Parse a message of the given type from the given input stream.

Throws:
java.io.IOException

parseFrom

public static DynamicMessage parseFrom(Descriptors.Descriptor type,
                                       ByteString data)
                                throws InvalidProtocolBufferException
Parse data as a message of the given type and return it.

Throws:
InvalidProtocolBufferException

parseFrom

public static DynamicMessage parseFrom(Descriptors.Descriptor type,
                                       ByteString data,
                                       ExtensionRegistry extensionRegistry)
                                throws InvalidProtocolBufferException
Parse data as a message of the given type and return it.

Throws:
InvalidProtocolBufferException

parseFrom

public static DynamicMessage parseFrom(Descriptors.Descriptor type,
                                       byte[] data)
                                throws InvalidProtocolBufferException
Parse data as a message of the given type and return it.

Throws:
InvalidProtocolBufferException

parseFrom

public static DynamicMessage parseFrom(Descriptors.Descriptor type,
                                       byte[] data,
                                       ExtensionRegistry extensionRegistry)
                                throws InvalidProtocolBufferException
Parse data as a message of the given type and return it.

Throws:
InvalidProtocolBufferException

parseFrom

public static DynamicMessage parseFrom(Descriptors.Descriptor type,
                                       java.io.InputStream input)
                                throws java.io.IOException
Parse a message of the given type from input and return it.

Throws:
java.io.IOException

parseFrom

public static DynamicMessage parseFrom(Descriptors.Descriptor type,
                                       java.io.InputStream input,
                                       ExtensionRegistry extensionRegistry)
                                throws java.io.IOException
Parse a message of the given type from input and return it.

Throws:
java.io.IOException

newBuilder

public static DynamicMessage.Builder newBuilder(Descriptors.Descriptor type)
Construct a DynamicMessage.Builder for the given type.


newBuilder

public static DynamicMessage.Builder newBuilder(Message prototype)
Construct a DynamicMessage.Builder for a message of the same type as prototype, and initialize it with prototype's contents.


getDescriptorForType

public Descriptors.Descriptor getDescriptorForType()
Description copied from interface: Message
Get the message's type's descriptor. This differs from the getDescriptor() method of generated message classes in that this method is an abstract method of the Message interface whereas getDescriptor() is a static method of a specific class. They return the same thing.


getDefaultInstanceForType

public DynamicMessage getDefaultInstanceForType()
Description copied from interface: MessageLite
Get an instance of the type with all fields set to their default values. This may or may not be a singleton. This differs from the getDefaultInstance() method of generated message classes in that this method is an abstract method of the MessageLite interface whereas getDefaultInstance() is a static method of a specific class. They return the same thing.


getAllFields

public java.util.Map<Descriptors.FieldDescriptor,java.lang.Object> getAllFields()
Description copied from interface: Message
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 Message.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.


hasField

public boolean hasField(Descriptors.FieldDescriptor field)
Description copied from interface: Message
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: Message
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.


getRepeatedFieldCount

public int getRepeatedFieldCount(Descriptors.FieldDescriptor field)
Description copied from interface: Message
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: Message
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.


getUnknownFields

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


isInitialized

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

Specified by:
isInitialized in interface MessageLite
Overrides:
isInitialized in class AbstractMessage

writeTo

public void writeTo(CodedOutputStream output)
             throws java.io.IOException
Description copied from interface: MessageLite
Serializes the message and writes it to output. This does not flush or close the stream.

Specified by:
writeTo in interface MessageLite
Overrides:
writeTo in class AbstractMessage
Throws:
java.io.IOException

getSerializedSize

public int getSerializedSize()
Description copied from interface: MessageLite
Get the number of bytes required to encode this message. The result is only computed on the first call and memoized after that.

Specified by:
getSerializedSize in interface MessageLite
Overrides:
getSerializedSize in class AbstractMessage

newBuilderForType

public DynamicMessage.Builder newBuilderForType()
Description copied from interface: MessageLite
Constructs a new builder for a message of the same type as this message.


toBuilder

public DynamicMessage.Builder toBuilder()
Description copied from interface: MessageLite
Constructs a builder initialized with the current message. Use this to derive a new message from the current one.



Copyright © 2008-2010 Google. All Rights Reserved.