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[]bufferHolds all information for accessing the message fields.private static intCHECK_INITIALIZED_BITprivate intcheckInitializedCountValues at indices 0 -> checkInitializedCount in intArray are positions to check for initialization.private MessageLitedefaultInstanceprivate static int[]EMPTY_INT_ARRAYprivate static intENFORCE_UTF8_MASKprivate ExtensionSchema<?>extensionSchemaprivate static intFIELD_TYPE_MASKprivate static intHAS_HAS_BITprivate booleanhasExtensionsprivate int[]intArrayRepresents [checkInitialized positions, map field positions, repeated field offsets].private static intINTS_PER_FIELDprivate static intLEGACY_ENUM_IS_CLOSED_BITprivate static intLEGACY_ENUM_IS_CLOSED_MASKprivate ListFieldSchemalistFieldSchemaprivate booleanliteprivate MapFieldSchemamapFieldSchemaprivate intmaxFieldNumberprivate intminFieldNumberprivate NewInstanceSchemanewInstanceSchemaprivate static intNO_PRESENCE_SENTINELprivate java.lang.Object[]objectsHolds object references for fields.private static intOFFSET_BITSprivate static intOFFSET_MASK(package private) static intONEOF_TYPE_OFFSETAn offset applied to the field type ID for scalar fields that are a member of a oneof.private intrepeatedFieldOffsetStartValues at indices checkInitializedCount -> repeatedFieldOffsetStart are map positions.private static intREQUIRED_BITBit masks for field type extra feature bits encoded in Java gencode via GetExperimentalJavaFieldType in helpers.cc.private static intREQUIRED_MASKprivate ProtoSyntaxsyntaxprivate UnknownFieldSchema<?,?>unknownFieldSchemaprivate static sun.misc.UnsafeUNSAFEKeep a direct reference to the unsafe object so we don't need to go through the UnsafeUtil wrapper for every call.private booleanuseCachedSizeFieldprivate static intUTF8_CHECK_BIT
-
Constructor Summary
Constructors Modifier Constructor Description privateMessageSchema(int[] buffer, java.lang.Object[] objects, int minFieldNumber, int maxFieldNumber, MessageLite defaultInstance, ProtoSyntax syntax, 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 booleanarePresentForEquals(T message, T other, int pos)Returns true the field is present in both messages, or neither.private static <T> booleanbooleanAt(T message, long offset)private static voidcheckMutable(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 intdecodeMapEntryValue(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> doubledoubleAt(T message, long offset)booleanequals(T message, T other)Determine of the two messages are equal.private booleanequals(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> floatfloatAt(T message, long offset)private Internal.EnumVerifiergetEnumFieldVerifier(int pos)private java.lang.ObjectgetMapFieldDefaultEntry(int pos)private SchemagetMessageFieldSchema(int pos)(package private) static UnknownFieldSetLitegetMutableUnknownFields(java.lang.Object message)(package private) intgetSchemaSize()intgetSerializedSize(T message)Compute the serialized size of the message.private <UT,UB>
intgetUnknownFieldsSerializedSize(UnknownFieldSchema<UT,UB> schema, T message)inthashCode(T message)Compute a hashCode for the message.private static <T> intintAt(T message, long offset)private static booleanisEnforceUtf8(int value)private booleanisFieldPresent(T message, int pos)private booleanisFieldPresent(T message, int pos, int presenceFieldOffset, int presenceField, int presenceMask)private static booleanisInitialized(java.lang.Object message, int typeAndOffset, Schema schema)booleanisInitialized(T message)Checks whether all required fields are set.private static booleanisLegacyEnumIsClosed(int value)private <N> booleanisListInitialized(java.lang.Object message, int typeAndOffset, int pos)private booleanisMapInitialized(T message, int typeAndOffset, int pos)private static booleanisMutable(java.lang.Object message)private booleanisOneofCaseEqual(T message, T other, int pos)private booleanisOneofPresent(T message, int fieldNumber, int pos)private static booleanisRequired(int value)private static <T> longlongAt(T message, long offset)voidmakeImmutable(T message)Marks repeated/map/extension/unknown fields as immutable.voidmergeFrom(T message, byte[] data, int position, int limit, ArrayDecoders.Registers registers)Like the above but parses from a byte[] without extensions.voidmergeFrom(T message, Reader reader, ExtensionRegistryLite extensionRegistry)Reads fields from the givenReaderand merges them into the message.voidmergeFrom(T message, T other)Merge values fromotherintomessage.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 voidmergeMessage(T targetParent, T sourceParent, int pos)private voidmergeOneofMessage(T targetParent, T sourceParent, int pos)private voidmergeSingleField(T message, T other, int pos)private java.lang.ObjectmutableMessageFieldForMerge(T message, int pos)private java.lang.ObjectmutableOneofMessageFieldForMerge(T message, int fieldNumber, int pos)TnewInstance()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 intnumberAt(int pos)private static longoffset(int value)private static <T> booleanoneofBooleanAt(T message, long offset)private static <T> doubleoneofDoubleAt(T message, long offset)private static <T> floatoneofFloatAt(T message, long offset)private static <T> intoneofIntAt(T message, long offset)private static <T> longoneofLongAt(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) intparseMessage(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 intparseOneofField(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 intparseRepeatedField(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 intpositionForFieldNumber(int number)private intpositionForFieldNumber(int number, int min)private intpresenceMaskAndOffsetAt(int pos)private <E> voidreadGroupList(java.lang.Object message, long offset, Reader reader, Schema<E> schema, ExtensionRegistryLite extensionRegistry)private <E> voidreadMessageList(java.lang.Object message, int typeAndOffset, Reader reader, Schema<E> schema, ExtensionRegistryLite extensionRegistry)private voidreadString(java.lang.Object message, int typeAndOffset, Reader reader)private voidreadStringList(java.lang.Object message, int typeAndOffset, Reader reader)private static java.lang.reflect.FieldreflectField(java.lang.Class<?> messageClass, java.lang.String fieldName)private voidsetFieldPresent(T message, int pos)private voidsetOneofPresent(T message, int fieldNumber, int pos)private intslowPositionForFieldNumber(int number, int min)private static voidstoreFieldData(FieldInfo fi, int[] buffer, int bufferIndex, java.lang.Object[] objects)private voidstoreMessageField(T message, int pos, java.lang.Object field)private voidstoreOneofMessageField(T message, int fieldNumber, int pos, java.lang.Object field)private static inttype(int value)private inttypeAndOffsetAt(int pos)private voidwriteFieldsInAscendingOrder(T message, Writer writer)private voidwriteFieldsInDescendingOrder(T message, Writer writer)private <K,V>
voidwriteMapHelper(Writer writer, int number, java.lang.Object mapField, int pos)private voidwriteString(int fieldNumber, java.lang.Object value, Writer writer)voidwriteTo(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
-
syntax
private final ProtoSyntax syntax
-
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, ProtoSyntax syntax, 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:SchemaCreates a new instance of the message class.- Specified by:
newInstancein interfaceSchema<T>
-
equals
public boolean equals(T message, T other)
Description copied from interface:SchemaDetermine of the two messages are equal.
-
hashCode
public int hashCode(T message)
Description copied from interface:SchemaCompute a hashCode for the message.
-
mergeFrom
public void mergeFrom(T message, T other)
Description copied from interface:SchemaMerge values fromotherintomessage. 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:SchemaCompute the serialized size of the message.- Specified by:
getSerializedSizein 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:SchemaWrites 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:SchemaReads fields from the givenReaderand 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.IOExceptionDecodes 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.IOExceptionDecodes 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:SchemaLike 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:SchemaMarks repeated/map/extension/unknown fields as immutable.- Specified by:
makeImmutablein 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:SchemaChecks whether all required fields are set.- Specified by:
isInitializedin 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()
-
-