com.google.protobuf

## Class AbstractMessage

- java.lang.Object
- - com.google.protobuf.AbstractMessageLite
  - - com.google.protobuf.AbstractMessage

- All Implemented Interfaces:
    Message, MessageLite, MessageLiteOrBuilder, MessageOrBuilder
  Direct Known Subclasses:
    DynamicMessage, GeneratedMessage, GeneratedMessageV3, MapEntry

      public abstract class AbstractMessage
      extends AbstractMessageLite
      implements Message

  A partial implementation of the `Message` interface which implements as many methods of that interface as possible in terms of other methods.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `AbstractMessage.Builder<BuilderType extends AbstractMessage.Builder<BuilderType>>` A partial implementation of the `Message.Builder` interface which implements as many methods of that interface as possible in terms of other methods.
    `protected static interface` | `AbstractMessage.BuilderParent` Interface for the parent of a Builder that allows the builder to communicate invalidations back to the parent for use when using nested builders.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `memoizedSize`

    - ### Fields inherited from class com.google.protobuf.AbstractMessageLite

      `memoizedHashCode`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractMessage()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object other)` Compares the specified object with this message for equality.
    `java.util.List<java.lang.String>` | `findInitializationErrors()` Returns a list of field paths (e.g.
    `java.lang.String` | `getInitializationErrorString()` Returns a comma-delimited list of required fields which are not set in this message object.
    `Descriptors.FieldDescriptor` | `getOneofFieldDescriptor(Descriptors.OneofDescriptor oneof)` TODO(jieluo): Clear it when all subclasses have implemented this method.
    `int` | `getSerializedSize()` Get the number of bytes required to encode this message.
    `protected static int` | `hashBoolean(boolean b)` Deprecated. from v3.0.0-beta-3+, for compatibility with v2.5.0 and v2.6.1 generated code.
    `int` | `hashCode()` Returns the hash code value for this message.
    `protected static int` | `hashEnum(Internal.EnumLite e)` Deprecated. from v3.0.0-beta-3+, for compatibility with v2.5.0 and v2.6.1 generated code.
    `protected static int` | `hashEnumList(java.util.List<? extends Internal.EnumLite> list)` Deprecated. from v3.0.0-beta-3+, for compatibility with v2.5.0 and v2.6.1 generated code.
    `protected static int` | `hashFields(int hash, java.util.Map<Descriptors.FieldDescriptor,java.lang.Object> map)` Get a hash code for given fields and values, using the given seed.
    `protected static int` | `hashLong(long n)` Deprecated. from v3.0.0-beta-3+, for compatibility with v2.5.0 and v2.6.1 generated code.
    `boolean` | `hasOneof(Descriptors.OneofDescriptor oneof)` TODO(jieluo): Clear it when all subclasses have implemented this method.
    `boolean` | `isInitialized()` Returns true if all required fields in the message and all embedded messages are set, false otherwise.
    `protected Message.Builder` | `newBuilderForType(AbstractMessage.BuilderParent parent)` Create a nested builder.
    `java.lang.String` | `toString()` Converts the message to a string in protocol buffer text format.
    `void` | `writeTo(CodedOutputStream output)` Serializes the message and writes it to `output`.

    - ### Methods inherited from class com.google.protobuf.AbstractMessageLite

      `addAll, checkByteStringIsUtf8, 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.Message

      `getParserForType, newBuilderForType, toBuilder`

    - ### Methods inherited from interface com.google.protobuf.MessageLite

      `toByteArray, toByteString, writeDelimitedTo, writeTo`

    - ### Methods inherited from interface com.google.protobuf.MessageOrBuilder

      `getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField`

- - ### Field Detail

    - #### memoizedSize

          protected int memoizedSize

  - ### Constructor Detail

    - #### AbstractMessage

          public AbstractMessage()

  - ### Method Detail

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

      See also: `MessageOrBuilder.getInitializationErrorString()`

      Specified by:
        `isInitialized` in interface `MessageLiteOrBuilder`

    - #### newBuilderForType

          protected Message.Builder newBuilderForType(AbstractMessage.BuilderParent parent)

      Create a nested builder.

    - #### findInitializationErrors

          public java.util.List<java.lang.String> findInitializationErrors()

      Description copied from interface: `MessageOrBuilder`
      Returns a list of field paths (e.g. "foo.bar.baz") of required fields which are not set in this message. You should call `MessageLiteOrBuilder.isInitialized()` first to check if there are any missing fields, as that method is likely to be much faster than this one even when the message is fully-initialized.
      Specified by:
        `findInitializationErrors` in interface `MessageOrBuilder`

    - #### getInitializationErrorString

          public java.lang.String getInitializationErrorString()

      Description copied from interface: `MessageOrBuilder`
      Returns a comma-delimited list of required fields which are not set in this message object. You should call `MessageLiteOrBuilder.isInitialized()` first to check if there are any missing fields, as that method is likely to be much faster than this one even when the message is fully-initialized.
      Specified by:
        `getInitializationErrorString` in interface `MessageOrBuilder`

    - #### hasOneof

          public boolean hasOneof(Descriptors.OneofDescriptor oneof)

      TODO(jieluo): Clear it when all subclasses have implemented this method.
      Specified by:
        `hasOneof` in interface `MessageOrBuilder`

    - #### getOneofFieldDescriptor

          public Descriptors.FieldDescriptor getOneofFieldDescriptor(Descriptors.OneofDescriptor oneof)

      TODO(jieluo): Clear it when all subclasses have implemented this method.
      Specified by:
        `getOneofFieldDescriptor` in interface `MessageOrBuilder`

    - #### toString

          public final java.lang.String toString()

      Description copied from interface: `Message`
      Converts the message to a string in protocol buffer text format. This is just a trivial wrapper around `TextFormat.printToString(MessageOrBuilder)`.
      Specified by:
        `toString` in interface `Message`
      Overrides:
        `toString` in class `java.lang.Object`

    - #### 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`
      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`

    - #### equals

          public boolean equals(java.lang.Object other)

      Description copied from interface: `Message`
      Compares the specified object with this message for equality. Returns `true` if the given object is a message of the same type (as defined by `getDescriptorForType()`) and has identical values for all of its fields. Subclasses must implement this; inheriting `Object.equals()` is incorrect.
      Specified by:
        `equals` in interface `Message`
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `other` - object to be compared for equality with this message
      Returns:
        `true` if the specified object is equal to this message

    - #### hashCode

          public int hashCode()

      Description copied from interface: `Message`
      Returns the hash code value for this message. The hash code of a message should mix the message's type (object identity of the descriptor) with its contents (known and unknown field values). Subclasses must implement this; inheriting `Object.hashCode()` is incorrect.
      Specified by:
        `hashCode` in interface `Message`
      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        the hash code value for this message
      See Also:
        `Map.hashCode()`

    - #### hashFields

          protected static int hashFields(int hash,
                       java.util.Map<Descriptors.FieldDescriptor,java.lang.Object> map)

      Get a hash code for given fields and values, using the given seed.

    - #### hashLong

          @Deprecated
          protected static int hashLong(long n)

      Deprecated. from v3.0.0-beta-3+, for compatibility with v2.5.0 and v2.6.1 generated code.

    - #### hashBoolean

          @Deprecated
          protected static int hashBoolean(boolean b)

      Deprecated. from v3.0.0-beta-3+, for compatibility with v2.5.0 and v2.6.1 generated code.

    - #### hashEnum

          @Deprecated
          protected static int hashEnum(Internal.EnumLite e)

      Deprecated. from v3.0.0-beta-3+, for compatibility with v2.5.0 and v2.6.1 generated code.

    - #### hashEnumList

          @Deprecated
          protected static int hashEnumList(java.util.List<? extends Internal.EnumLite> list)

      Deprecated. from v3.0.0-beta-3+, for compatibility with v2.5.0 and v2.6.1 generated code.