Class CsvParserBootstrapper

java.lang.Object
com.fasterxml.jackson.dataformat.csv.impl.CsvParserBootstrapper

public final class CsvParserBootstrapper extends Object
This class is used to determine the encoding of byte stream that is to contain CSV document. Since there is no real specification for how this should work with CSV, it will be based on rules used with JSON (which themselves are similar to those used with XML); main points are to check for BOM first, then look for multi-byted fixed-length encodings (UTF-16, UTF-32). And finally, if neither found, must decide between most likely alternatives, UTF-8 and Latin-1.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected boolean
     
    protected int
     
    protected final com.fasterxml.jackson.core.ObjectCodec
     
    protected final com.fasterxml.jackson.core.io.IOContext
     
    protected final InputStream
     
    protected final byte[]
     
    protected int
    Current number of input units (bytes or chars) that were processed in previous blocks, before contents of current input buffer.
  • Constructor Summary

    Constructors
    Constructor
    Description
    CsvParserBootstrapper(com.fasterxml.jackson.core.io.IOContext ctxt, com.fasterxml.jackson.core.ObjectCodec codec, byte[] inputBuffer, int inputStart, int inputLen)
     
    CsvParserBootstrapper(com.fasterxml.jackson.core.io.IOContext ctxt, com.fasterxml.jackson.core.ObjectCodec codec, InputStream in)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    constructParser(int baseFeatures, int csvFeatures)
     
    protected boolean
    ensureLoaded(int minimum)
     
    static com.fasterxml.jackson.core.format.MatchStrength
    hasCSVFormat(com.fasterxml.jackson.core.format.InputAccessor acc, int quoteChar, char separatorChar)
    Current implementation is not as thorough as one used by other data formats like JSON.

    Methods inherited from class Object

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

    • _context

      protected final com.fasterxml.jackson.core.io.IOContext _context
    • _codec

      protected final com.fasterxml.jackson.core.ObjectCodec _codec
    • _in

      protected final 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 Details

    • CsvParserBootstrapper

      public CsvParserBootstrapper(com.fasterxml.jackson.core.io.IOContext ctxt, com.fasterxml.jackson.core.ObjectCodec codec, InputStream in)
    • CsvParserBootstrapper

      public CsvParserBootstrapper(com.fasterxml.jackson.core.io.IOContext ctxt, com.fasterxml.jackson.core.ObjectCodec codec, byte[] inputBuffer, int inputStart, int inputLen)
  • Method Details

    • constructParser

      public CsvParser constructParser(int baseFeatures, int csvFeatures) throws IOException
      Throws:
      IOException
    • hasCSVFormat

      public static com.fasterxml.jackson.core.format.MatchStrength hasCSVFormat(com.fasterxml.jackson.core.format.InputAccessor acc, int quoteChar, char separatorChar) throws IOException
      Current implementation is not as thorough as one used by other data formats like JSON. But it should work, for now, and can be improved as necessary.
      Throws:
      IOException
    • ensureLoaded

      protected boolean ensureLoaded(int minimum) throws IOException
      Throws:
      IOException