com.google.protobuf
Class AbstractMessage

java.lang.Object
  extended by com.google.protobuf.AbstractMessageLite
      extended by 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
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
AbstractMessage()
           
 
Method Summary
 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.