Class DynamicMessage

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

public final class DynamicMessage extends AbstractMessage
An implementation of Message that can represent arbitrary types, given a Descriptors.Descriptor.
  • Method Details

    • 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, com.google.protobuf.CodedInputStream input) throws IOException
      Parse a message of the given type from the given input stream.
      Throws:
      IOException
    • parseFrom

      public static DynamicMessage parseFrom(Descriptors.Descriptor type, com.google.protobuf.CodedInputStream input, ExtensionRegistry extensionRegistry) throws IOException
      Parse a message of the given type from the given input stream.
      Throws:
      IOException
    • parseFrom

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

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

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

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

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

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

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

      public static DynamicMessage.Builder newBuilder(Message prototype)
      Construct a Message.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: MessageOrBuilder
      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()
    • getAllFields

      public Map<Descriptors.FieldDescriptor,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 getRepeatedFieldCount() 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.
    • hasOneof

      public boolean hasOneof(Descriptors.OneofDescriptor oneof)
      Description copied from interface: MessageOrBuilder
      Returns true if the given oneof is set.
      Specified by:
      hasOneof in interface MessageOrBuilder
      Overrides:
      hasOneof in class AbstractMessage
    • getOneofFieldDescriptor

      public Descriptors.FieldDescriptor getOneofFieldDescriptor(Descriptors.OneofDescriptor oneof)
      Description copied from interface: MessageOrBuilder
      Obtains the FieldDescriptor if the given oneof is set. Returns null if no field is set.
      Specified by:
      getOneofFieldDescriptor in interface MessageOrBuilder
      Overrides:
      getOneofFieldDescriptor in class AbstractMessage
    • 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. The return value of hasField() is semantically meaningful only for fields where field.hasPresence() == true.
    • getField

      public 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 returned. 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: 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 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 returned. For embedded message fields, the sub-message is returned.
    • getUnknownFields

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

      public boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class AbstractMessage
    • writeTo

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
      Specified by:
      writeTo in interface com.google.protobuf.MessageLite
      Overrides:
      writeTo in class AbstractMessage
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class AbstractMessage
    • newBuilderForType

      public DynamicMessage.Builder newBuilderForType()
    • toBuilder

      public DynamicMessage.Builder toBuilder()
    • getParserForType

      public com.google.protobuf.Parser<DynamicMessage> getParserForType()