Class CodedInputStreamReader

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static CodedInputStreamReader forCodedInput​(CodedInputStream input)  
      int getFieldNumber()
      Gets the field number for the current field being read.
      int getTag()
      Gets the wire tag of the current field.
      <T> void mergeGroupField​(T target, Schema<T> schema, ExtensionRegistryLite extensionRegistry)
      Read a group field from the wire format and merge the results into the given target.
      private <T> void mergeGroupFieldInternal​(T target, Schema<T> schema, ExtensionRegistryLite extensionRegistry)  
      <T> void mergeMessageField​(T target, Schema<T> schema, ExtensionRegistryLite extensionRegistry)
      Read a message field from the wire format and merge the results into the given target.
      private <T> void mergeMessageFieldInternal​(T target, Schema<T> schema, ExtensionRegistryLite extensionRegistry)  
      boolean readBool()
      Reads and returns the next field of type BOOL and advances the reader to the next field.
      void readBoolList​(java.util.List<java.lang.Boolean> target)
      Reads the next field of type BOOL_LIST or BOOL_LIST_PACKED and advances the reader to the next field.
      ByteString readBytes()
      Reads and returns the next field of type BYTES and advances the reader to the next field.
      void readBytesList​(java.util.List<ByteString> target)
      Reads the next field of type BYTES_LIST and advances the reader to the next field.
      double readDouble()
      Reads and returns the next field of type DOUBLE and advances the reader to the next field.
      void readDoubleList​(java.util.List<java.lang.Double> target)
      Reads the next field of type DOUBLE_LIST or DOUBLE_LIST_PACKED and advances the reader to the next field.
      int readEnum()
      Reads and returns the next field of type ENUM and advances the reader to the next field.
      void readEnumList​(java.util.List<java.lang.Integer> target)
      Reads the next field of type ENUM_LIST or ENUM_LIST_PACKED and advances the reader to the next field.
      private java.lang.Object readField​(WireFormat.FieldType fieldType, java.lang.Class<?> messageType, ExtensionRegistryLite extensionRegistry)  
      int readFixed32()
      Reads and returns the next field of type FIXED32 and advances the reader to the next field.
      void readFixed32List​(java.util.List<java.lang.Integer> target)
      Reads the next field of type FIXED32_LIST or FIXED32_LIST_PACKED and advances the reader to the next field.
      long readFixed64()
      Reads and returns the next field of type FIXED64 and advances the reader to the next field.
      void readFixed64List​(java.util.List<java.lang.Long> target)
      Reads the next field of type FIXED64_LIST or FIXED64_LIST_PACKED and advances the reader to the next field.
      float readFloat()
      Reads and returns the next field of type FLOAT and advances the reader to the next field.
      void readFloatList​(java.util.List<java.lang.Float> target)
      Reads the next field of type FLOAT_LIST or FLOAT_LIST_PACKED and advances the reader to the next field.
      private <T> T readGroup​(Schema<T> schema, ExtensionRegistryLite extensionRegistry)  
      <T> T readGroup​(java.lang.Class<T> clazz, ExtensionRegistryLite extensionRegistry)
      Reads and returns the next field of type GROUP and advances the reader to the next field.
      <T> T readGroupBySchemaWithCheck​(Schema<T> schema, ExtensionRegistryLite extensionRegistry)  
      <T> void readGroupList​(java.util.List<T> target, Schema<T> schema, ExtensionRegistryLite extensionRegistry)  
      <T> void readGroupList​(java.util.List<T> target, java.lang.Class<T> targetType, ExtensionRegistryLite extensionRegistry)
      Reads the next field of type GROUP_LIST and advances the reader to the next field.
      int readInt32()
      Reads and returns the next field of type INT32 and advances the reader to the next field.
      void readInt32List​(java.util.List<java.lang.Integer> target)
      Reads the next field of type INT32_LIST or INT32_LIST_PACKED and advances the reader to the next field.
      long readInt64()
      Reads and returns the next field of type INT64 and advances the reader to the next field.
      void readInt64List​(java.util.List<java.lang.Long> target)
      Reads the next field of type INT64_LIST or INT64_LIST_PACKED and advances the reader to the next field.
      <K,​V>
      void
      readMap​(java.util.Map<K,​V> target, MapEntryLite.Metadata<K,​V> metadata, ExtensionRegistryLite extensionRegistry)
      Reads the next field of type MAP and advances the reader to the next field.
      private <T> T readMessage​(Schema<T> schema, ExtensionRegistryLite extensionRegistry)  
      <T> T readMessage​(java.lang.Class<T> clazz, ExtensionRegistryLite extensionRegistry)
      Reads and returns the next field of type MESSAGE and advances the reader to the next field.
      <T> T readMessageBySchemaWithCheck​(Schema<T> schema, ExtensionRegistryLite extensionRegistry)  
      <T> void readMessageList​(java.util.List<T> target, Schema<T> schema, ExtensionRegistryLite extensionRegistry)
      Reads the next field of type MESSAGE_LIST and advances the reader to the next field.
      <T> void readMessageList​(java.util.List<T> target, java.lang.Class<T> targetType, ExtensionRegistryLite extensionRegistry)  
      int readSFixed32()
      Reads and returns the next field of type SFIXED32 and advances the reader to the next field.
      void readSFixed32List​(java.util.List<java.lang.Integer> target)
      Reads the next field of type SFIXED32_LIST or SFIXED32_LIST_PACKED and advances the reader to the next field.
      long readSFixed64()
      Reads and returns the next field of type SFIXED64 and advances the reader to the next field.
      void readSFixed64List​(java.util.List<java.lang.Long> target)
      Reads the next field of type SFIXED64_LIST or SFIXED64_LIST_PACKED and advances the reader to the next field.
      int readSInt32()
      Reads and returns the next field of type SINT32 and advances the reader to the next field.
      void readSInt32List​(java.util.List<java.lang.Integer> target)
      Reads the next field of type SINT32_LIST or SINT32_LIST_PACKED and advances the reader to the next field.
      long readSInt64()
      Reads and returns the next field of type SINT64 and advances the reader to the next field.
      void readSInt64List​(java.util.List<java.lang.Long> target)
      Reads the next field of type SINT64_LIST or SINT64_LIST_PACKED and advances the reader to the next field.
      java.lang.String readString()
      Reads and returns the next field of type STRING and advances the reader to the next field.
      void readStringList​(java.util.List<java.lang.String> target)
      Reads the next field of type STRING_LIST and advances the reader to the next field.
      void readStringListInternal​(java.util.List<java.lang.String> target, boolean requireUtf8)  
      void readStringListRequireUtf8​(java.util.List<java.lang.String> target)
      Reads the next field of type STRING_LIST and advances the reader to the next field.
      java.lang.String readStringRequireUtf8()
      Reads and returns the next field of type STRING and advances the reader to the next field.
      int readUInt32()
      Reads and returns the next field of type UINT32 and advances the reader to the next field.
      void readUInt32List​(java.util.List<java.lang.Integer> target)
      Reads the next field of type UINT32_LIST or UINT32_LIST_PACKED and advances the reader to the next field.
      long readUInt64()
      Reads and returns the next field of type UINT64 and advances the reader to the next field.
      void readUInt64List​(java.util.List<java.lang.Long> target)
      Reads the next field of type UINT64_LIST or UINT64_LIST_PACKED and advances the reader to the next field.
      private void requirePosition​(int expectedPosition)  
      private void requireWireType​(int requiredWireType)  
      boolean shouldDiscardUnknownFields()  
      boolean skipField()
      Skips the current field and advances the reader to the next field.
      private void verifyPackedFixed32Length​(int bytes)  
      private void verifyPackedFixed64Length​(int bytes)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • tag

        private int tag
      • endGroupTag

        private int endGroupTag
      • nextTag

        private int nextTag
    • Constructor Detail

      • CodedInputStreamReader

        private CodedInputStreamReader​(CodedInputStream input)
    • Method Detail

      • getFieldNumber

        public int getFieldNumber()
                           throws java.io.IOException
        Description copied from interface: Reader
        Gets the field number for the current field being read.

        TODO(liujisi): Rename it to make it more explicit about the side effect on the underlying buffer.

        Specified by:
        getFieldNumber in interface Reader
        Returns:
        the current field number or Reader.READ_DONE if the end of input has been reached.
        Throws:
        java.io.IOException
      • getTag

        public int getTag()
        Description copied from interface: Reader
        Gets the wire tag of the current field.
        Specified by:
        getTag in interface Reader
        Returns:
        the current wire tag or Reader.TAG_UNKNOWN if the reader does not know the tag of the current field.
      • skipField

        public boolean skipField()
                          throws java.io.IOException
        Description copied from interface: Reader
        Skips the current field and advances the reader to the next field.
        Specified by:
        skipField in interface Reader
        Returns:
        true if there are more fields or false if the end of input has been reached.
        Throws:
        java.io.IOException
      • requireWireType

        private void requireWireType​(int requiredWireType)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • readDouble

        public double readDouble()
                          throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type DOUBLE and advances the reader to the next field.
        Specified by:
        readDouble in interface Reader
        Throws:
        java.io.IOException
      • readFloat

        public float readFloat()
                        throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type FLOAT and advances the reader to the next field.
        Specified by:
        readFloat in interface Reader
        Throws:
        java.io.IOException
      • readUInt64

        public long readUInt64()
                        throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type UINT64 and advances the reader to the next field.
        Specified by:
        readUInt64 in interface Reader
        Throws:
        java.io.IOException
      • readInt64

        public long readInt64()
                       throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type INT64 and advances the reader to the next field.
        Specified by:
        readInt64 in interface Reader
        Throws:
        java.io.IOException
      • readInt32

        public int readInt32()
                      throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type INT32 and advances the reader to the next field.
        Specified by:
        readInt32 in interface Reader
        Throws:
        java.io.IOException
      • readFixed64

        public long readFixed64()
                         throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type FIXED64 and advances the reader to the next field.
        Specified by:
        readFixed64 in interface Reader
        Throws:
        java.io.IOException
      • readFixed32

        public int readFixed32()
                        throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type FIXED32 and advances the reader to the next field.
        Specified by:
        readFixed32 in interface Reader
        Throws:
        java.io.IOException
      • readBool

        public boolean readBool()
                         throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type BOOL and advances the reader to the next field.
        Specified by:
        readBool in interface Reader
        Throws:
        java.io.IOException
      • readString

        public java.lang.String readString()
                                    throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type STRING and advances the reader to the next field. If the stream contains malformed UTF-8, replace the offending bytes with the standard UTF-8 replacement character.
        Specified by:
        readString in interface Reader
        Throws:
        java.io.IOException
      • readStringRequireUtf8

        public java.lang.String readStringRequireUtf8()
                                               throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type STRING and advances the reader to the next field. If the stream contains malformed UTF-8, throw exception InvalidProtocolBufferException.
        Specified by:
        readStringRequireUtf8 in interface Reader
        Throws:
        java.io.IOException
      • readMessage

        public <T> T readMessage​(java.lang.Class<T> clazz,
                                 ExtensionRegistryLite extensionRegistry)
                          throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type MESSAGE and advances the reader to the next field.
        Specified by:
        readMessage in interface Reader
        Throws:
        java.io.IOException
      • readGroup

        public <T> T readGroup​(java.lang.Class<T> clazz,
                               ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type GROUP and advances the reader to the next field.
        Specified by:
        readGroup in interface Reader
        Throws:
        java.io.IOException
      • mergeMessageField

        public <T> void mergeMessageField​(T target,
                                          Schema<T> schema,
                                          ExtensionRegistryLite extensionRegistry)
                                   throws java.io.IOException
        Description copied from interface: Reader
        Read a message field from the wire format and merge the results into the given target.
        Specified by:
        mergeMessageField in interface Reader
        Throws:
        java.io.IOException
      • mergeMessageFieldInternal

        private <T> void mergeMessageFieldInternal​(T target,
                                                   Schema<T> schema,
                                                   ExtensionRegistryLite extensionRegistry)
                                            throws java.io.IOException
        Throws:
        java.io.IOException
      • readMessage

        private <T> T readMessage​(Schema<T> schema,
                                  ExtensionRegistryLite extensionRegistry)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • mergeGroupField

        public <T> void mergeGroupField​(T target,
                                        Schema<T> schema,
                                        ExtensionRegistryLite extensionRegistry)
                                 throws java.io.IOException
        Description copied from interface: Reader
        Read a group field from the wire format and merge the results into the given target.
        Specified by:
        mergeGroupField in interface Reader
        Throws:
        java.io.IOException
      • mergeGroupFieldInternal

        private <T> void mergeGroupFieldInternal​(T target,
                                                 Schema<T> schema,
                                                 ExtensionRegistryLite extensionRegistry)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • readGroup

        private <T> T readGroup​(Schema<T> schema,
                                ExtensionRegistryLite extensionRegistry)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • readBytes

        public ByteString readBytes()
                             throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type BYTES and advances the reader to the next field.
        Specified by:
        readBytes in interface Reader
        Throws:
        java.io.IOException
      • readUInt32

        public int readUInt32()
                       throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type UINT32 and advances the reader to the next field.
        Specified by:
        readUInt32 in interface Reader
        Throws:
        java.io.IOException
      • readEnum

        public int readEnum()
                     throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type ENUM and advances the reader to the next field.
        Specified by:
        readEnum in interface Reader
        Throws:
        java.io.IOException
      • readSFixed32

        public int readSFixed32()
                         throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type SFIXED32 and advances the reader to the next field.
        Specified by:
        readSFixed32 in interface Reader
        Throws:
        java.io.IOException
      • readSFixed64

        public long readSFixed64()
                          throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type SFIXED64 and advances the reader to the next field.
        Specified by:
        readSFixed64 in interface Reader
        Throws:
        java.io.IOException
      • readSInt32

        public int readSInt32()
                       throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type SINT32 and advances the reader to the next field.
        Specified by:
        readSInt32 in interface Reader
        Throws:
        java.io.IOException
      • readSInt64

        public long readSInt64()
                        throws java.io.IOException
        Description copied from interface: Reader
        Reads and returns the next field of type SINT64 and advances the reader to the next field.
        Specified by:
        readSInt64 in interface Reader
        Throws:
        java.io.IOException
      • readDoubleList

        public void readDoubleList​(java.util.List<java.lang.Double> target)
                            throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type DOUBLE_LIST or DOUBLE_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readDoubleList in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readFloatList

        public void readFloatList​(java.util.List<java.lang.Float> target)
                           throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type FLOAT_LIST or FLOAT_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readFloatList in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readUInt64List

        public void readUInt64List​(java.util.List<java.lang.Long> target)
                            throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type UINT64_LIST or UINT64_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readUInt64List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readInt64List

        public void readInt64List​(java.util.List<java.lang.Long> target)
                           throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type INT64_LIST or INT64_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readInt64List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readInt32List

        public void readInt32List​(java.util.List<java.lang.Integer> target)
                           throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type INT32_LIST or INT32_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readInt32List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readFixed64List

        public void readFixed64List​(java.util.List<java.lang.Long> target)
                             throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type FIXED64_LIST or FIXED64_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readFixed64List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readFixed32List

        public void readFixed32List​(java.util.List<java.lang.Integer> target)
                             throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type FIXED32_LIST or FIXED32_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readFixed32List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readBoolList

        public void readBoolList​(java.util.List<java.lang.Boolean> target)
                          throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type BOOL_LIST or BOOL_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readBoolList in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readStringList

        public void readStringList​(java.util.List<java.lang.String> target)
                            throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type STRING_LIST and advances the reader to the next field.
        Specified by:
        readStringList in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readStringListRequireUtf8

        public void readStringListRequireUtf8​(java.util.List<java.lang.String> target)
                                       throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type STRING_LIST and advances the reader to the next field. If the stream contains malformed UTF-8, throw exception InvalidProtocolBufferException.
        Specified by:
        readStringListRequireUtf8 in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readStringListInternal

        public void readStringListInternal​(java.util.List<java.lang.String> target,
                                           boolean requireUtf8)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • readMessageList

        public <T> void readMessageList​(java.util.List<T> target,
                                        java.lang.Class<T> targetType,
                                        ExtensionRegistryLite extensionRegistry)
                                 throws java.io.IOException
        Specified by:
        readMessageList in interface Reader
        Throws:
        java.io.IOException
      • readMessageList

        public <T> void readMessageList​(java.util.List<T> target,
                                        Schema<T> schema,
                                        ExtensionRegistryLite extensionRegistry)
                                 throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type MESSAGE_LIST and advances the reader to the next field.
        Specified by:
        readMessageList in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readGroupList

        public <T> void readGroupList​(java.util.List<T> target,
                                      java.lang.Class<T> targetType,
                                      ExtensionRegistryLite extensionRegistry)
                               throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type GROUP_LIST and advances the reader to the next field.
        Specified by:
        readGroupList in interface Reader
        Parameters:
        target - the list that will receive the read values.
        targetType - the type of the elements stored in the target list.
        Throws:
        java.io.IOException
      • readGroupList

        public <T> void readGroupList​(java.util.List<T> target,
                                      Schema<T> schema,
                                      ExtensionRegistryLite extensionRegistry)
                               throws java.io.IOException
        Specified by:
        readGroupList in interface Reader
        Throws:
        java.io.IOException
      • readBytesList

        public void readBytesList​(java.util.List<ByteString> target)
                           throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type BYTES_LIST and advances the reader to the next field.
        Specified by:
        readBytesList in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readUInt32List

        public void readUInt32List​(java.util.List<java.lang.Integer> target)
                            throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type UINT32_LIST or UINT32_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readUInt32List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readEnumList

        public void readEnumList​(java.util.List<java.lang.Integer> target)
                          throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type ENUM_LIST or ENUM_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readEnumList in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readSFixed32List

        public void readSFixed32List​(java.util.List<java.lang.Integer> target)
                              throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type SFIXED32_LIST or SFIXED32_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readSFixed32List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readSFixed64List

        public void readSFixed64List​(java.util.List<java.lang.Long> target)
                              throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type SFIXED64_LIST or SFIXED64_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readSFixed64List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readSInt32List

        public void readSInt32List​(java.util.List<java.lang.Integer> target)
                            throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type SINT32_LIST or SINT32_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readSInt32List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • readSInt64List

        public void readSInt64List​(java.util.List<java.lang.Long> target)
                            throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type SINT64_LIST or SINT64_LIST_PACKED and advances the reader to the next field.
        Specified by:
        readSInt64List in interface Reader
        Parameters:
        target - the list that will receive the read values.
        Throws:
        java.io.IOException
      • verifyPackedFixed64Length

        private void verifyPackedFixed64Length​(int bytes)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • readMap

        public <K,​V> void readMap​(java.util.Map<K,​V> target,
                                        MapEntryLite.Metadata<K,​V> metadata,
                                        ExtensionRegistryLite extensionRegistry)
                                 throws java.io.IOException
        Description copied from interface: Reader
        Reads the next field of type MAP and advances the reader to the next field.
        Specified by:
        readMap in interface Reader
        Parameters:
        target - the mutable map that will receive the read values.
        metadata - the default entry of the map field.
        extensionRegistry - the extension registry for parsing message value fields.
        Throws:
        java.io.IOException
      • readField

        private java.lang.Object readField​(WireFormat.FieldType fieldType,
                                           java.lang.Class<?> messageType,
                                           ExtensionRegistryLite extensionRegistry)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • verifyPackedFixed32Length

        private void verifyPackedFixed32Length​(int bytes)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • requirePosition

        private void requirePosition​(int expectedPosition)
                              throws java.io.IOException
        Throws:
        java.io.IOException