Class NonBlockingByteArrayParser

  • All Implemented Interfaces:
    com.fasterxml.jackson.core.async.ByteArrayFeeder, com.fasterxml.jackson.core.async.NonBlockingInputFeeder, com.fasterxml.jackson.core.Versioned, java.io.Closeable, java.lang.AutoCloseable

    public class NonBlockingByteArrayParser
    extends NonBlockingParserBase
    implements com.fasterxml.jackson.core.async.ByteArrayFeeder
    • Field Detail

      • _inputBuffer

        protected byte[] _inputBuffer
        This buffer is actually provided via NonBlockingInputFeeder
      • _origBufferLen

        protected int _origBufferLen
        In addition to current buffer pointer, and end pointer, we will also need to know number of bytes originally contained. This is needed to correctly update location information when the block has been completed.
    • Constructor Detail

      • NonBlockingByteArrayParser

        public NonBlockingByteArrayParser​(com.fasterxml.jackson.core.io.IOContext ctxt,
                                          int parserFeatures,
                                          int smileFeatures,
                                          com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer sym)
    • Method Detail

      • getNonBlockingInputFeeder

        public com.fasterxml.jackson.core.async.ByteArrayFeeder getNonBlockingInputFeeder()
        Overrides:
        getNonBlockingInputFeeder in class com.fasterxml.jackson.core.JsonParser
      • needMoreInput

        public final boolean needMoreInput()
        Specified by:
        needMoreInput in interface com.fasterxml.jackson.core.async.NonBlockingInputFeeder
      • feedInput

        public void feedInput​(byte[] buf,
                              int start,
                              int end)
                       throws java.io.IOException
        Specified by:
        feedInput in interface com.fasterxml.jackson.core.async.ByteArrayFeeder
        Throws:
        java.io.IOException
      • endOfInput

        public void endOfInput()
        Specified by:
        endOfInput in interface com.fasterxml.jackson.core.async.NonBlockingInputFeeder
      • releaseBuffered

        public int releaseBuffered​(java.io.OutputStream out)
                            throws java.io.IOException
        Specified by:
        releaseBuffered in class NonBlockingParserBase
        Throws:
        java.io.IOException
      • nextToken

        public com.fasterxml.jackson.core.JsonToken nextToken()
                                                       throws java.io.IOException
        Specified by:
        nextToken in class com.fasterxml.jackson.core.base.ParserMinimalBase
        Throws:
        java.io.IOException
      • _finishToken

        protected final com.fasterxml.jackson.core.JsonToken _finishToken()
                                                                   throws java.io.IOException
        Method called when a (scalar) value type has been detected, but not all of contents have been decoded due to incomplete input available.
        Throws:
        java.io.IOException
      • _finishHeader

        protected com.fasterxml.jackson.core.JsonToken _finishHeader​(int state)
                                                              throws java.io.IOException
        Helper method that will decode information from a header block that has been detected.
        Throws:
        java.io.IOException
      • _startValue

        private final com.fasterxml.jackson.core.JsonToken _startValue​(int ch)
                                                                throws java.io.IOException
        Helper method called to detect type of a value token (at any level), and possibly decode it if contained in input buffer. Note that possible header has been ruled out by caller and is not checked here.
        Throws:
        java.io.IOException
      • _startFieldName

        protected final com.fasterxml.jackson.core.JsonToken _startFieldName​(int ch)
                                                                      throws java.io.IOException
        Method that handles initial token type recognition for token that has to be either FIELD_NAME or END_OBJECT.
        Throws:
        java.io.IOException
      • _finishLongFieldName

        private final com.fasterxml.jackson.core.JsonToken _finishLongFieldName​(int outPtr)
                                                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • _startShortASCII

        private final com.fasterxml.jackson.core.JsonToken _startShortASCII​(int len)
                                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • _startShortUnicode

        private final com.fasterxml.jackson.core.JsonToken _startShortUnicode​(int len)
                                                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • _startLongASCII

        private final com.fasterxml.jackson.core.JsonToken _startLongASCII()
                                                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishLongASCII

        private final com.fasterxml.jackson.core.JsonToken _finishLongASCII()
                                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • _startLongUnicode

        protected final com.fasterxml.jackson.core.JsonToken _startLongUnicode()
                                                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishLongUnicode

        private final com.fasterxml.jackson.core.JsonToken _finishLongUnicode()
                                                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishPartialUnicodeChar

        private final boolean _finishPartialUnicodeChar()
                                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • _decodeUTF8_2

        private final int _decodeUTF8_2​(int c,
                                        int d)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • _decodeUTF8_3

        private final int _decodeUTF8_3​(int c,
                                        int d,
                                        int e)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • _decodeUTF8_4

        private final int _decodeUTF8_4​(int c,
                                        int d,
                                        int e,
                                        int f)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • _startInt

        private final com.fasterxml.jackson.core.JsonToken _startInt()
                                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishInt

        private final com.fasterxml.jackson.core.JsonToken _finishInt​(int value,
                                                                      int bytesRead)
                                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • _startLong

        private final com.fasterxml.jackson.core.JsonToken _startLong()
                                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishLong

        private final com.fasterxml.jackson.core.JsonToken _finishLong​(long value,
                                                                       int bytesRead)
                                                                throws java.io.IOException
        Throws:
        java.io.IOException
      • _startBigInt

        private final com.fasterxml.jackson.core.JsonToken _startBigInt()
                                                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishBigIntLen

        private final com.fasterxml.jackson.core.JsonToken _finishBigIntLen​(int value,
                                                                            int bytesRead)
                                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishBigIntBody

        private final com.fasterxml.jackson.core.JsonToken _finishBigIntBody()
                                                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • _startFloat

        protected final com.fasterxml.jackson.core.JsonToken _startFloat()
                                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishFloat

        protected final com.fasterxml.jackson.core.JsonToken _finishFloat​(int value,
                                                                          int bytesRead)
                                                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • _startDouble

        protected final com.fasterxml.jackson.core.JsonToken _startDouble()
                                                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishDouble

        protected final com.fasterxml.jackson.core.JsonToken _finishDouble​(long value,
                                                                           int bytesRead)
                                                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • _startBigDecimal

        private final com.fasterxml.jackson.core.JsonToken _startBigDecimal()
                                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishBigDecimalScale

        private final com.fasterxml.jackson.core.JsonToken _finishBigDecimalScale​(int value,
                                                                                  int bytesRead)
                                                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishBigDecimalLen

        private final com.fasterxml.jackson.core.JsonToken _finishBigDecimalLen​(int value,
                                                                                int bytesRead)
                                                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishBigDecimalBody

        private final com.fasterxml.jackson.core.JsonToken _finishBigDecimalBody()
                                                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • _startRawBinary

        protected final com.fasterxml.jackson.core.JsonToken _startRawBinary()
                                                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishRawBinaryLen

        private final com.fasterxml.jackson.core.JsonToken _finishRawBinaryLen​(int value,
                                                                               int bytesRead)
                                                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • _finishRawBinaryBody

        private final com.fasterxml.jackson.core.JsonToken _finishRawBinaryBody()
                                                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • _start7BitBinary

        private final com.fasterxml.jackson.core.JsonToken _start7BitBinary()
                                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • _finish7BitBinaryLen

        private final com.fasterxml.jackson.core.JsonToken _finish7BitBinaryLen​(int value,
                                                                                int bytesRead)
                                                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • _finish7BitBinaryBody

        private final com.fasterxml.jackson.core.JsonToken _finish7BitBinaryBody()
                                                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • _decodeASCIIText

        private final java.lang.String _decodeASCIIText​(byte[] inBuf,
                                                        int inPtr,
                                                        int len)
                                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • _decodeShortUnicodeText

        private final java.lang.String _decodeShortUnicodeText​(byte[] inBuf,
                                                               int inPtr,
                                                               int len)
                                                        throws java.io.IOException
        Helper method used to decode short Unicode string, length for which actual length (in bytes) is known
        Parameters:
        len - Length between 1 and 64
        Throws:
        java.io.IOException
      • _decodeLongUnicodeName

        private final java.lang.String _decodeLongUnicodeName​(byte[] inBuf,
                                                              int inPtr,
                                                              int len)
                                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • _fourBytesToInt

        private final int _fourBytesToInt​(int ptr)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • _decodeVInt

        private final int _decodeVInt()
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • _decode7BitEncoded

        private final boolean _decode7BitEncoded()
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • _decode7BitEncodedTail

        protected final boolean _decode7BitEncodedTail​(int bytesToDecode,
                                                       int buffered)
                                                throws java.io.IOException
        Throws:
        java.io.IOException