Package com.google.protobuf
Class MessageSetSchema<T>
- java.lang.Object
-
- com.google.protobuf.MessageSetSchema<T>
-
- All Implemented Interfaces:
Schema<T>
@CheckReturnValue final class MessageSetSchema<T> extends java.lang.Object implements Schema<T>
Schema used for proto2 messages using message_set_wireformat.
-
-
Field Summary
Fields Modifier and Type Field Description private MessageLite
defaultInstance
private ExtensionSchema<?>
extensionSchema
private boolean
hasExtensions
private UnknownFieldSchema<?,?>
unknownFieldSchema
-
Constructor Summary
Constructors Modifier Constructor Description private
MessageSetSchema(UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MessageLite defaultInstance)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(T message, T other)
Determine of the two messages are equal.int
getSerializedSize(T message)
Compute the serialized size of the message.private <UT,UB>
intgetUnknownFieldsSerializedSize(UnknownFieldSchema<UT,UB> schema, T message)
int
hashCode(T message)
Compute a hashCode for the message.boolean
isInitialized(T message)
Checks whether all required fields are set.void
makeImmutable(T message)
Marks repeated/map/extension/unknown fields as immutable.void
mergeFrom(T message, byte[] data, int position, int limit, ArrayDecoders.Registers registers)
Like the above but parses from a byte[] without extensions.void
mergeFrom(T message, Reader reader, ExtensionRegistryLite extensionRegistry)
Reads fields from the givenReader
and merges them into the message.void
mergeFrom(T message, T other)
Merge values fromother
intomessage
.private <UT,UB,ET extends FieldSet.FieldDescriptorLite<ET>>
voidmergeFromHelper(UnknownFieldSchema<UT,UB> unknownFieldSchema, ExtensionSchema<ET> extensionSchema, T message, Reader reader, ExtensionRegistryLite extensionRegistry)
A helper method for wildcard capture ofunknownFieldSchema
.T
newInstance()
Creates a new instance of the message class.(package private) static <T> MessageSetSchema<T>
newSchema(UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MessageLite defaultInstance)
private <UT,UB,ET extends FieldSet.FieldDescriptorLite<ET>>
booleanparseMessageSetItemOrUnknownField(Reader reader, ExtensionRegistryLite extensionRegistry, ExtensionSchema<ET> extensionSchema, FieldSet<ET> extensions, UnknownFieldSchema<UT,UB> unknownFieldSchema, UB unknownFields)
void
writeTo(T message, Writer writer)
Writes the given message to the targetWriter
.private <UT,UB>
voidwriteUnknownFieldsHelper(UnknownFieldSchema<UT,UB> unknownFieldSchema, T message, Writer writer)
A helper method for wildcard capture ofunknownFieldSchema
.
-
-
-
Field Detail
-
defaultInstance
private final MessageLite defaultInstance
-
unknownFieldSchema
private final UnknownFieldSchema<?,?> unknownFieldSchema
-
hasExtensions
private final boolean hasExtensions
-
extensionSchema
private final ExtensionSchema<?> extensionSchema
-
-
Constructor Detail
-
MessageSetSchema
private MessageSetSchema(UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MessageLite defaultInstance)
-
-
Method Detail
-
newSchema
static <T> MessageSetSchema<T> newSchema(UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MessageLite defaultInstance)
-
newInstance
public T newInstance()
Description copied from interface:Schema
Creates a new instance of the message class.- Specified by:
newInstance
in interfaceSchema<T>
-
equals
public boolean equals(T message, T other)
Description copied from interface:Schema
Determine of the two messages are equal.
-
hashCode
public int hashCode(T message)
Description copied from interface:Schema
Compute a hashCode for the message.
-
mergeFrom
public void mergeFrom(T message, T other)
Description copied from interface:Schema
Merge values fromother
intomessage
. This method doesn't make the message immutable. To make the message immutable after merging, useSchema.makeImmutable(T)
.
-
writeTo
public void writeTo(T message, Writer writer) throws java.io.IOException
Description copied from interface:Schema
Writes the given message to the targetWriter
.
-
writeUnknownFieldsHelper
private <UT,UB> void writeUnknownFieldsHelper(UnknownFieldSchema<UT,UB> unknownFieldSchema, T message, Writer writer) throws java.io.IOException
A helper method for wildcard capture ofunknownFieldSchema
. See: https://docs.oracle.com/javase/tutorial/java/generics/capture.html- Throws:
java.io.IOException
-
mergeFrom
public void mergeFrom(T message, byte[] data, int position, int limit, ArrayDecoders.Registers registers) throws java.io.IOException
Description copied from interface:Schema
Like the above but parses from a byte[] without extensions. Entry point of fast path. Note that this method may throw IndexOutOfBoundsException if the input data is not valid protobuf wire format. Protobuf public API methods should catch and convert that exception to InvalidProtocolBufferException.
-
mergeFrom
public void mergeFrom(T message, Reader reader, ExtensionRegistryLite extensionRegistry) throws java.io.IOException
Description copied from interface:Schema
Reads fields from the givenReader
and merges them into the message. It doesn't make the message immutable after parsing is done. To make the message immutable, useSchema.makeImmutable(T)
.
-
mergeFromHelper
private <UT,UB,ET extends FieldSet.FieldDescriptorLite<ET>> void mergeFromHelper(UnknownFieldSchema<UT,UB> unknownFieldSchema, ExtensionSchema<ET> extensionSchema, T message, Reader reader, ExtensionRegistryLite extensionRegistry) throws java.io.IOException
A helper method for wildcard capture ofunknownFieldSchema
. See: https://docs.oracle.com/javase/tutorial/java/generics/capture.html- Throws:
java.io.IOException
-
makeImmutable
public void makeImmutable(T message)
Description copied from interface:Schema
Marks repeated/map/extension/unknown fields as immutable.- Specified by:
makeImmutable
in interfaceSchema<T>
-
parseMessageSetItemOrUnknownField
private <UT,UB,ET extends FieldSet.FieldDescriptorLite<ET>> boolean parseMessageSetItemOrUnknownField(Reader reader, ExtensionRegistryLite extensionRegistry, ExtensionSchema<ET> extensionSchema, FieldSet<ET> extensions, UnknownFieldSchema<UT,UB> unknownFieldSchema, UB unknownFields) throws java.io.IOException
- Throws:
java.io.IOException
-
isInitialized
public final boolean isInitialized(T message)
Description copied from interface:Schema
Checks whether all required fields are set.- Specified by:
isInitialized
in interfaceSchema<T>
-
getSerializedSize
public int getSerializedSize(T message)
Description copied from interface:Schema
Compute the serialized size of the message.- Specified by:
getSerializedSize
in interfaceSchema<T>
-
getUnknownFieldsSerializedSize
private <UT,UB> int getUnknownFieldsSerializedSize(UnknownFieldSchema<UT,UB> schema, T message)
-
-