Class NonBlockingJsonParser

    • Method Detail

      • getNonBlockingInputFeeder

        public ByteArrayFeeder getNonBlockingInputFeeder()
        Description copied from class: JsonParser
        Method that will either return a feeder instance (if parser uses non-blocking, aka asynchronous access); or null for parsers that use blocking I/O.
        Overrides:
        getNonBlockingInputFeeder in class JsonParser
        Returns:
        Input feeder to use with non-blocking (async) parsing
      • needMoreInput

        public final boolean needMoreInput()
        Description copied from interface: NonBlockingInputFeeder
        Method called to check whether it is ok to feed more data: parser returns true if it has no more content to parse (and it is ok to feed more); otherwise false (and no data should yet be fed).
        Specified by:
        needMoreInput in interface NonBlockingInputFeeder
        Returns:
        True if more input is needed (and can be fed); false if there is still some input to decode
      • feedInput

        public void feedInput​(byte[] buf,
                              int start,
                              int end)
                       throws java.io.IOException
        Description copied from interface: ByteArrayFeeder
        Method that can be called to feed more data, if (and only if) NonBlockingInputFeeder.needMoreInput() returns true.
        Specified by:
        feedInput in interface ByteArrayFeeder
        Parameters:
        buf - Byte array that contains data to feed: caller must ensure data remains stable until it is fully processed (which is true when NonBlockingInputFeeder.needMoreInput() returns true)
        start - Offset within array where input data to process starts
        end - Offset after last byte contained in the input array
        Throws:
        java.io.IOException - if the state is such that this method should not be called (has not yet consumed existing input data, or has been marked as closed)
      • releaseBuffered

        public int releaseBuffered​(java.io.OutputStream out)
                            throws java.io.IOException
        Description copied from class: JsonParser
        Method that can be called to push back any content that has been read but not consumed by the parser. This is usually done after reading all content of interest using parser. Content is released by writing it to given stream if possible; if underlying input is byte-based it can released, if not (char-based) it can not.
        Specified by:
        releaseBuffered in class NonBlockingJsonParserBase
        Parameters:
        out - OutputStream to which buffered, undecoded content is written to
        Returns:
        -1 if the underlying content source is not byte based (that is, input can not be sent to OutputStream; otherwise number of bytes released (0 if there was nothing to release)
        Throws:
        java.io.IOException - if write to stream threw exception
      • nextToken

        public JsonToken nextToken()
                            throws java.io.IOException
        Description copied from class: JsonParser
        Main iteration method, which will advance stream enough to determine type of the next token, if any. If none remaining (stream has no content other than possible white space before ending), null will be returned.
        Specified by:
        nextToken in class ParserMinimalBase
        Returns:
        Next token from the stream, if any found, or null to indicate end-of-input
        Throws:
        java.io.IOException - for low-level read issues, or JsonParseException for decoding problems