Package com.google.protobuf
Class MessageSchema<T>
- java.lang.Object
-
- com.google.protobuf.MessageSchema<T>
-
- All Implemented Interfaces:
Schema<T>
@CheckReturnValue final class MessageSchema<T> extends java.lang.Object implements Schema<T>
Schema used for standard messages.
-
-
Field Summary
Fields Modifier and Type Field Description private int[]
buffer
Holds all information for accessing the message fields.private static int
CHECK_INITIALIZED_BIT
private int
checkInitializedCount
Values at indices 0 -> checkInitializedCount in intArray are positions to check for initialization.private MessageLite
defaultInstance
private static int[]
EMPTY_INT_ARRAY
private static int
ENFORCE_UTF8_MASK
private ExtensionSchema<?>
extensionSchema
private static int
FIELD_TYPE_MASK
private static int
HAS_HAS_BIT
private boolean
hasExtensions
private int[]
intArray
Represents [checkInitialized positions, map field positions, repeated field offsets].private static int
INTS_PER_FIELD
private static int
LEGACY_ENUM_IS_CLOSED_BIT
private static int
LEGACY_ENUM_IS_CLOSED_MASK
private ListFieldSchema
listFieldSchema
private boolean
lite
private MapFieldSchema
mapFieldSchema
private int
maxFieldNumber
private int
minFieldNumber
private NewInstanceSchema
newInstanceSchema
private static int
NO_PRESENCE_SENTINEL
private java.lang.Object[]
objects
Holds object references for fields.private static int
OFFSET_BITS
private static int
OFFSET_MASK
(package private) static int
ONEOF_TYPE_OFFSET
An offset applied to the field type ID for scalar fields that are a member of a oneof.private int
repeatedFieldOffsetStart
Values at indices checkInitializedCount -> repeatedFieldOffsetStart are map positions.private static int
REQUIRED_BIT
Bit masks for field type extra feature bits encoded in Java gencode via GetExperimentalJavaFieldType in helpers.cc.private static int
REQUIRED_MASK
private UnknownFieldSchema<?,?>
unknownFieldSchema
private static sun.misc.Unsafe
UNSAFE
Keep a direct reference to the unsafe object so we don't need to go through the UnsafeUtil wrapper for every call.private boolean
useCachedSizeField
private static int
UTF8_CHECK_BIT
-
Constructor Summary
Constructors Modifier Constructor Description private
MessageSchema(int[] buffer, java.lang.Object[] objects, int minFieldNumber, int maxFieldNumber, MessageLite defaultInstance, boolean useCachedSizeField, int[] intArray, int checkInitialized, int mapFieldPositions, NewInstanceSchema newInstanceSchema, ListFieldSchema listFieldSchema, UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MapFieldSchema mapFieldSchema)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
arePresentForEquals(T message, T other, int pos)
Returns true the field is present in both messages, or neither.private static <T> boolean
booleanAt(T message, long offset)
private static void
checkMutable(java.lang.Object message)
private <K,V>
intdecodeMapEntry(byte[] data, int position, int limit, MapEntryLite.Metadata<K,V> metadata, java.util.Map<K,V> target, ArrayDecoders.Registers registers)
Decodes a map entry.private int
decodeMapEntryValue(byte[] data, int position, int limit, WireFormat.FieldType fieldType, java.lang.Class<?> messageType, ArrayDecoders.Registers registers)
Decodes a map entry key or value.private static <T> double
doubleAt(T message, long offset)
boolean
equals(T message, T other)
Determine of the two messages are equal.private boolean
equals(T message, T other, int pos)
private <UT,UB>
UBfilterMapUnknownEnumValues(java.lang.Object message, int pos, UB unknownFields, UnknownFieldSchema<UT,UB> unknownFieldSchema, java.lang.Object containerMessage)
private <K,V,UT,UB>
UBfilterUnknownEnumMap(int pos, int number, java.util.Map<K,V> mapData, Internal.EnumVerifier enumVerifier, UB unknownFields, UnknownFieldSchema<UT,UB> unknownFieldSchema, java.lang.Object containerMessage)
private static <T> float
floatAt(T message, long offset)
private Internal.EnumVerifier
getEnumFieldVerifier(int pos)
private java.lang.Object
getMapFieldDefaultEntry(int pos)
private Schema
getMessageFieldSchema(int pos)
(package private) static UnknownFieldSetLite
getMutableUnknownFields(java.lang.Object message)
(package private) int
getSchemaSize()
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.private static <T> int
intAt(T message, long offset)
private static boolean
isEnforceUtf8(int value)
private boolean
isFieldPresent(T message, int pos)
private boolean
isFieldPresent(T message, int pos, int presenceFieldOffset, int presenceField, int presenceMask)
private static boolean
isInitialized(java.lang.Object message, int typeAndOffset, Schema schema)
boolean
isInitialized(T message)
Checks whether all required fields are set.private static boolean
isLegacyEnumIsClosed(int value)
private <N> boolean
isListInitialized(java.lang.Object message, int typeAndOffset, int pos)
private boolean
isMapInitialized(T message, int typeAndOffset, int pos)
private static boolean
isMutable(java.lang.Object message)
private boolean
isOneofCaseEqual(T message, T other, int pos)
private boolean
isOneofPresent(T message, int fieldNumber, int pos)
private static boolean
isRequired(int value)
private static <T> long
longAt(T message, long offset)
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
.private <K,V>
voidmergeMap(java.lang.Object message, int pos, java.lang.Object mapDefaultEntry, ExtensionRegistryLite extensionRegistry, Reader reader)
private void
mergeMessage(T targetParent, T sourceParent, int pos)
private void
mergeOneofMessage(T targetParent, T sourceParent, int pos)
private void
mergeSingleField(T message, T other, int pos)
private java.lang.Object
mutableMessageFieldForMerge(T message, int pos)
private java.lang.Object
mutableOneofMessageFieldForMerge(T message, int fieldNumber, int pos)
T
newInstance()
Creates a new instance of the message class.(package private) static <T> MessageSchema<T>
newSchema(java.lang.Class<T> messageClass, MessageInfo messageInfo, NewInstanceSchema newInstanceSchema, ListFieldSchema listFieldSchema, UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MapFieldSchema mapFieldSchema)
(package private) static <T> MessageSchema<T>
newSchemaForMessageInfo(StructuralMessageInfo messageInfo, NewInstanceSchema newInstanceSchema, ListFieldSchema listFieldSchema, UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MapFieldSchema mapFieldSchema)
(package private) static <T> MessageSchema<T>
newSchemaForRawMessageInfo(RawMessageInfo messageInfo, NewInstanceSchema newInstanceSchema, ListFieldSchema listFieldSchema, UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MapFieldSchema mapFieldSchema)
private int
numberAt(int pos)
private static long
offset(int value)
private static <T> boolean
oneofBooleanAt(T message, long offset)
private static <T> double
oneofDoubleAt(T message, long offset)
private static <T> float
oneofFloatAt(T message, long offset)
private static <T> int
oneofIntAt(T message, long offset)
private static <T> long
oneofLongAt(T message, long offset)
private <K,V>
intparseMapField(T message, byte[] data, int position, int limit, int bufferPosition, long fieldOffset, ArrayDecoders.Registers registers)
(package private) int
parseMessage(T message, byte[] data, int position, int limit, int endDelimited, ArrayDecoders.Registers registers)
Parses a message and returns the position after the message/group.private int
parseOneofField(T message, byte[] data, int position, int limit, int tag, int number, int wireType, int typeAndOffset, int fieldType, long fieldOffset, int bufferPosition, ArrayDecoders.Registers registers)
private int
parseRepeatedField(T message, byte[] data, int position, int limit, int tag, int number, int wireType, int bufferPosition, long typeAndOffset, int fieldType, long fieldOffset, ArrayDecoders.Registers registers)
private int
positionForFieldNumber(int number)
private int
positionForFieldNumber(int number, int min)
private int
presenceMaskAndOffsetAt(int pos)
private <E> void
readGroupList(java.lang.Object message, long offset, Reader reader, Schema<E> schema, ExtensionRegistryLite extensionRegistry)
private <E> void
readMessageList(java.lang.Object message, int typeAndOffset, Reader reader, Schema<E> schema, ExtensionRegistryLite extensionRegistry)
private void
readString(java.lang.Object message, int typeAndOffset, Reader reader)
private void
readStringList(java.lang.Object message, int typeAndOffset, Reader reader)
private static java.lang.reflect.Field
reflectField(java.lang.Class<?> messageClass, java.lang.String fieldName)
private void
setFieldPresent(T message, int pos)
private void
setOneofPresent(T message, int fieldNumber, int pos)
private int
slowPositionForFieldNumber(int number, int min)
private static void
storeFieldData(FieldInfo fi, int[] buffer, int bufferIndex, java.lang.Object[] objects)
private void
storeMessageField(T message, int pos, java.lang.Object field)
private void
storeOneofMessageField(T message, int fieldNumber, int pos, java.lang.Object field)
private static int
type(int value)
private int
typeAndOffsetAt(int pos)
private void
writeFieldsInAscendingOrder(T message, Writer writer)
private void
writeFieldsInDescendingOrder(T message, Writer writer)
private <K,V>
voidwriteMapHelper(Writer writer, int number, java.lang.Object mapField, int pos)
private void
writeString(int fieldNumber, java.lang.Object value, Writer writer)
void
writeTo(T message, Writer writer)
Writes the given message to the targetWriter
.private <UT,UB>
voidwriteUnknownInMessageTo(UnknownFieldSchema<UT,UB> schema, T message, Writer writer)
-
-
-
Field Detail
-
INTS_PER_FIELD
private static final int INTS_PER_FIELD
- See Also:
- Constant Field Values
-
OFFSET_BITS
private static final int OFFSET_BITS
- See Also:
- Constant Field Values
-
OFFSET_MASK
private static final int OFFSET_MASK
- See Also:
- Constant Field Values
-
FIELD_TYPE_MASK
private static final int FIELD_TYPE_MASK
- See Also:
- Constant Field Values
-
REQUIRED_MASK
private static final int REQUIRED_MASK
- See Also:
- Constant Field Values
-
ENFORCE_UTF8_MASK
private static final int ENFORCE_UTF8_MASK
- See Also:
- Constant Field Values
-
LEGACY_ENUM_IS_CLOSED_MASK
private static final int LEGACY_ENUM_IS_CLOSED_MASK
- See Also:
- Constant Field Values
-
NO_PRESENCE_SENTINEL
private static final int NO_PRESENCE_SENTINEL
- See Also:
- Constant Field Values
-
EMPTY_INT_ARRAY
private static final int[] EMPTY_INT_ARRAY
-
REQUIRED_BIT
private static final int REQUIRED_BIT
Bit masks for field type extra feature bits encoded in Java gencode via GetExperimentalJavaFieldType in helpers.cc.- See Also:
- Constant Field Values
-
UTF8_CHECK_BIT
private static final int UTF8_CHECK_BIT
- See Also:
- Constant Field Values
-
CHECK_INITIALIZED_BIT
private static final int CHECK_INITIALIZED_BIT
- See Also:
- Constant Field Values
-
LEGACY_ENUM_IS_CLOSED_BIT
private static final int LEGACY_ENUM_IS_CLOSED_BIT
- See Also:
- Constant Field Values
-
HAS_HAS_BIT
private static final int HAS_HAS_BIT
- See Also:
- Constant Field Values
-
ONEOF_TYPE_OFFSET
static final int ONEOF_TYPE_OFFSET
An offset applied to the field type ID for scalar fields that are a member of a oneof.- See Also:
- Constant Field Values
-
UNSAFE
private static final sun.misc.Unsafe UNSAFE
Keep a direct reference to the unsafe object so we don't need to go through the UnsafeUtil wrapper for every call.
-
buffer
private final int[] buffer
Holds all information for accessing the message fields. The layout is as follows (field positions are relative to the offset of the start of the field in the buffer):buffer[i] [ 0 - 3] unused [ 4 - 31] field number buffer[i+1] [32 - 33] unused [34 - 34] whether UTF-8 enforcement should be applied to a string field. [35 - 35] whether the field is required [36 - 43] field type / for oneof: field type +
Offset refer to the field offsets returned by Unsafe.objectFieldOffset() for reflective access to corresponding field.ONEOF_TYPE_OFFSET
[44 - 63] field offset / oneof value field offset buffer[i+2] [64 - 69] unused [70 - 75] field presence mask shift (unused for oneof/repeated fields) [76 - 95] presence field offset / oneof case field offset / cached size field offsetNote that presence field offset can only use 20 bits - 1. All bits set to 1 is the sentinel value for non-presence. This is not validated at runtime, we simply assume message layouts will not exceed 1MB (assuming ~10 bytes per field, that implies 100k fields which should hit other javac limits first). This corresponds to a shared bitFieldN_, which must have the field presence mask shift applied to get the corresponding field's presence.
-
objects
private final java.lang.Object[] objects
Holds object references for fields. For each field entry inbuffer
, there are two corresponding entries in this array. The content is different from different field types:Map fields: objects[pos] = map default entry instance objects[pos + 1] = EnumVerifier if map value is enum, or message class reference if map value is message. Message fields: objects[pos] = null or cached message schema objects[pos + 1] = message class reference Enum fields: objects[pos] = null objects[pos + 1] = EnumVerifier
-
minFieldNumber
private final int minFieldNumber
-
maxFieldNumber
private final int maxFieldNumber
-
defaultInstance
private final MessageLite defaultInstance
-
hasExtensions
private final boolean hasExtensions
-
lite
private final boolean lite
-
useCachedSizeField
private final boolean useCachedSizeField
-
intArray
private final int[] intArray
Represents [checkInitialized positions, map field positions, repeated field offsets].
-
checkInitializedCount
private final int checkInitializedCount
Values at indices 0 -> checkInitializedCount in intArray are positions to check for initialization.
-
repeatedFieldOffsetStart
private final int repeatedFieldOffsetStart
Values at indices checkInitializedCount -> repeatedFieldOffsetStart are map positions. Everything after that are repeated field offsets.
-
newInstanceSchema
private final NewInstanceSchema newInstanceSchema
-
listFieldSchema
private final ListFieldSchema listFieldSchema
-
unknownFieldSchema
private final UnknownFieldSchema<?,?> unknownFieldSchema
-
extensionSchema
private final ExtensionSchema<?> extensionSchema
-
mapFieldSchema
private final MapFieldSchema mapFieldSchema
-
-
Constructor Detail
-
MessageSchema
private MessageSchema(int[] buffer, java.lang.Object[] objects, int minFieldNumber, int maxFieldNumber, MessageLite defaultInstance, boolean useCachedSizeField, int[] intArray, int checkInitialized, int mapFieldPositions, NewInstanceSchema newInstanceSchema, ListFieldSchema listFieldSchema, UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MapFieldSchema mapFieldSchema)
-
-
Method Detail
-
newSchema
static <T> MessageSchema<T> newSchema(java.lang.Class<T> messageClass, MessageInfo messageInfo, NewInstanceSchema newInstanceSchema, ListFieldSchema listFieldSchema, UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MapFieldSchema mapFieldSchema)
-
newSchemaForRawMessageInfo
static <T> MessageSchema<T> newSchemaForRawMessageInfo(RawMessageInfo messageInfo, NewInstanceSchema newInstanceSchema, ListFieldSchema listFieldSchema, UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MapFieldSchema mapFieldSchema)
-
reflectField
private static java.lang.reflect.Field reflectField(java.lang.Class<?> messageClass, java.lang.String fieldName)
-
newSchemaForMessageInfo
static <T> MessageSchema<T> newSchemaForMessageInfo(StructuralMessageInfo messageInfo, NewInstanceSchema newInstanceSchema, ListFieldSchema listFieldSchema, UnknownFieldSchema<?,?> unknownFieldSchema, ExtensionSchema<?> extensionSchema, MapFieldSchema mapFieldSchema)
-
storeFieldData
private static void storeFieldData(FieldInfo fi, int[] buffer, int bufferIndex, java.lang.Object[] objects)
-
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)
.
-
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)
-
writeTo
public void writeTo(T message, Writer writer) throws java.io.IOException
Description copied from interface:Schema
Writes the given message to the targetWriter
.
-
writeFieldsInAscendingOrder
private void writeFieldsInAscendingOrder(T message, Writer writer) throws java.io.IOException
- Throws:
java.io.IOException
-
writeFieldsInDescendingOrder
private void writeFieldsInDescendingOrder(T message, Writer writer) throws java.io.IOException
- Throws:
java.io.IOException
-
writeMapHelper
private <K,V> void writeMapHelper(Writer writer, int number, java.lang.Object mapField, int pos) throws java.io.IOException
- Throws:
java.io.IOException
-
writeUnknownInMessageTo
private <UT,UB> void writeUnknownInMessageTo(UnknownFieldSchema<UT,UB> schema, T message, Writer writer) throws java.io.IOException
- Throws:
java.io.IOException
-
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
-
getMutableUnknownFields
static UnknownFieldSetLite getMutableUnknownFields(java.lang.Object message)
-
decodeMapEntryValue
private int decodeMapEntryValue(byte[] data, int position, int limit, WireFormat.FieldType fieldType, java.lang.Class<?> messageType, ArrayDecoders.Registers registers) throws java.io.IOException
Decodes a map entry key or value. Stores result in registers.object1.- Throws:
java.io.IOException
-
decodeMapEntry
private <K,V> int decodeMapEntry(byte[] data, int position, int limit, MapEntryLite.Metadata<K,V> metadata, java.util.Map<K,V> target, ArrayDecoders.Registers registers) throws java.io.IOException
Decodes a map entry.- Throws:
java.io.IOException
-
parseRepeatedField
private int parseRepeatedField(T message, byte[] data, int position, int limit, int tag, int number, int wireType, int bufferPosition, long typeAndOffset, int fieldType, long fieldOffset, ArrayDecoders.Registers registers) throws java.io.IOException
- Throws:
java.io.IOException
-
parseMapField
private <K,V> int parseMapField(T message, byte[] data, int position, int limit, int bufferPosition, long fieldOffset, ArrayDecoders.Registers registers) throws java.io.IOException
- Throws:
java.io.IOException
-
parseOneofField
private int parseOneofField(T message, byte[] data, int position, int limit, int tag, int number, int wireType, int typeAndOffset, int fieldType, long fieldOffset, int bufferPosition, ArrayDecoders.Registers registers) throws java.io.IOException
- Throws:
java.io.IOException
-
getMessageFieldSchema
private Schema getMessageFieldSchema(int pos)
-
getMapFieldDefaultEntry
private java.lang.Object getMapFieldDefaultEntry(int pos)
-
getEnumFieldVerifier
private Internal.EnumVerifier getEnumFieldVerifier(int pos)
-
parseMessage
@CanIgnoreReturnValue int parseMessage(T message, byte[] data, int position, int limit, int endDelimited, ArrayDecoders.Registers registers) throws java.io.IOException
Parses a message and returns the position after the message/group. If it's parsing a LENGTH_PREFIXED message (endDelimited == 0), returns limit if parsing is successful; If it's parsing a DELIMITED message aka group (endDelimited != 0), parsing ends when a tag == endDelimited is encountered and the position after that tag is returned.- Throws:
java.io.IOException
-
mutableMessageFieldForMerge
private java.lang.Object mutableMessageFieldForMerge(T message, int pos)
-
storeMessageField
private void storeMessageField(T message, int pos, java.lang.Object field)
-
mutableOneofMessageFieldForMerge
private java.lang.Object mutableOneofMessageFieldForMerge(T message, int fieldNumber, int pos)
-
storeOneofMessageField
private void storeOneofMessageField(T message, int fieldNumber, int pos, java.lang.Object field)
-
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.
-
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>
-
mergeMap
private final <K,V> void mergeMap(java.lang.Object message, int pos, java.lang.Object mapDefaultEntry, ExtensionRegistryLite extensionRegistry, Reader reader) throws java.io.IOException
- Throws:
java.io.IOException
-
filterMapUnknownEnumValues
private <UT,UB> UB filterMapUnknownEnumValues(java.lang.Object message, int pos, UB unknownFields, UnknownFieldSchema<UT,UB> unknownFieldSchema, java.lang.Object containerMessage)
-
filterUnknownEnumMap
private <K,V,UT,UB> UB filterUnknownEnumMap(int pos, int number, java.util.Map<K,V> mapData, Internal.EnumVerifier enumVerifier, UB unknownFields, UnknownFieldSchema<UT,UB> unknownFieldSchema, java.lang.Object containerMessage)
-
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>
-
isInitialized
private static boolean isInitialized(java.lang.Object message, int typeAndOffset, Schema schema)
-
isListInitialized
private <N> boolean isListInitialized(java.lang.Object message, int typeAndOffset, int pos)
-
isMapInitialized
private boolean isMapInitialized(T message, int typeAndOffset, int pos)
-
writeString
private void writeString(int fieldNumber, java.lang.Object value, Writer writer) throws java.io.IOException
- Throws:
java.io.IOException
-
readString
private void readString(java.lang.Object message, int typeAndOffset, Reader reader) throws java.io.IOException
- Throws:
java.io.IOException
-
readStringList
private void readStringList(java.lang.Object message, int typeAndOffset, Reader reader) throws java.io.IOException
- Throws:
java.io.IOException
-
readMessageList
private <E> void readMessageList(java.lang.Object message, int typeAndOffset, Reader reader, Schema<E> schema, ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Throws:
java.io.IOException
-
readGroupList
private <E> void readGroupList(java.lang.Object message, long offset, Reader reader, Schema<E> schema, ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Throws:
java.io.IOException
-
numberAt
private int numberAt(int pos)
-
typeAndOffsetAt
private int typeAndOffsetAt(int pos)
-
presenceMaskAndOffsetAt
private int presenceMaskAndOffsetAt(int pos)
-
type
private static int type(int value)
-
isRequired
private static boolean isRequired(int value)
-
isEnforceUtf8
private static boolean isEnforceUtf8(int value)
-
isLegacyEnumIsClosed
private static boolean isLegacyEnumIsClosed(int value)
-
offset
private static long offset(int value)
-
isMutable
private static boolean isMutable(java.lang.Object message)
-
checkMutable
private static void checkMutable(java.lang.Object message)
-
doubleAt
private static <T> double doubleAt(T message, long offset)
-
floatAt
private static <T> float floatAt(T message, long offset)
-
intAt
private static <T> int intAt(T message, long offset)
-
longAt
private static <T> long longAt(T message, long offset)
-
booleanAt
private static <T> boolean booleanAt(T message, long offset)
-
oneofDoubleAt
private static <T> double oneofDoubleAt(T message, long offset)
-
oneofFloatAt
private static <T> float oneofFloatAt(T message, long offset)
-
oneofIntAt
private static <T> int oneofIntAt(T message, long offset)
-
oneofLongAt
private static <T> long oneofLongAt(T message, long offset)
-
oneofBooleanAt
private static <T> boolean oneofBooleanAt(T message, long offset)
-
arePresentForEquals
private boolean arePresentForEquals(T message, T other, int pos)
Returns true the field is present in both messages, or neither.
-
isFieldPresent
private boolean isFieldPresent(T message, int pos, int presenceFieldOffset, int presenceField, int presenceMask)
-
isFieldPresent
private boolean isFieldPresent(T message, int pos)
-
setFieldPresent
private void setFieldPresent(T message, int pos)
-
isOneofPresent
private boolean isOneofPresent(T message, int fieldNumber, int pos)
-
setOneofPresent
private void setOneofPresent(T message, int fieldNumber, int pos)
-
positionForFieldNumber
private int positionForFieldNumber(int number)
-
positionForFieldNumber
private int positionForFieldNumber(int number, int min)
-
slowPositionForFieldNumber
private int slowPositionForFieldNumber(int number, int min)
-
getSchemaSize
int getSchemaSize()
-
-