Class ByteSourceBootstrapper


  • public final class ByteSourceBootstrapper
    extends java.lang.Object
    This class is used to determine the encoding of byte stream that is to contain JSON content. Rules are fairly simple, and defined in JSON specification (RFC-4627 or newer), except for BOM handling, which is a property of underlying streams.
    • Field Detail

      • _context

        protected final IOContext _context
      • _in

        protected final java.io.InputStream _in
      • _inputBuffer

        protected final byte[] _inputBuffer
      • _inputProcessed

        protected int _inputProcessed
        Current number of input units (bytes or chars) that were processed in previous blocks, before contents of current input buffer.

        Note: includes possible BOMs, if those were part of the input.

      • _bigEndian

        protected boolean _bigEndian
      • _bytesPerChar

        protected int _bytesPerChar
    • Constructor Detail

      • ByteSourceBootstrapper

        public ByteSourceBootstrapper​(IOContext ctxt,
                                      java.io.InputStream in)
      • ByteSourceBootstrapper

        public ByteSourceBootstrapper​(IOContext ctxt,
                                      byte[] inputBuffer,
                                      int inputStart,
                                      int inputLen)
    • Method Detail

      • detectEncoding

        public JsonEncoding detectEncoding()
                                    throws java.io.IOException,
                                           JsonParseException
        Method that should be called after constructing an instace. It will figure out encoding that content uses, to allow for instantiating a proper scanner object.
        Throws:
        java.io.IOException
        JsonParseException
      • constructReader

        public java.io.Reader constructReader()
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • hasJSONFormat

        public static MatchStrength hasJSONFormat​(InputAccessor acc)
                                           throws java.io.IOException
        Current implementation is not as thorough as other functionality (ByteSourceBootstrapper); supports UTF-8, for example. But it should work, for now, and can be improved as necessary.
        Throws:
        java.io.IOException
        Since:
        1.8
      • ensureLoaded

        protected boolean ensureLoaded​(int minimum)
                                throws java.io.IOException
        Throws:
        java.io.IOException