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

    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.

Author:
  kenton@google.com Kenton Varda

### Nested Class Summary

Nested Classes
`static class` `AbstractMessage.Builder<BuilderType extends AbstractMessage.Builder>` A partial implementation of the `Message.Builder` interface which implements as many methods of that interface as possible in terms of other methods.

### Field Summary

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

`memoizedHashCode`

### Constructor Summary

Constructors
`AbstractMessage()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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.
`int` `hashCode()` Returns the hash code value for this message.
`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.
`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.
`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

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

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

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