## com.fasterxml.jackson.core.format
Class DataFormatDetector

    java.lang.Object
      com.fasterxml.jackson.core.format.DataFormatDetector

    public class DataFormatDetector

extends Object

Simple helper class that allows data format (content type) auto-detection, given an ordered set of `JsonFactory` instances to use for actual low-level detection.

Field Summary
`protected JsonFactory[]` `_detectors` Ordered list of factories which both represent data formats to detect (in precedence order, starting with highest) and are used for actual detection.
`protected int` `_maxInputLookahead` Maximum number of leading bytes of the input that we can read to determine data format.
`protected MatchStrength` `_minimalMatch` Strength of minimal match we accept as the answer, unless better matches are found.
`protected MatchStrength` `_optimalMatch` Strength of match we consider to be good enough to be used without checking any other formats.
`static int` `DEFAULT_MAX_INPUT_LOOKAHEAD` By default we will look ahead at most 64 bytes; in most cases, much less (4 bytes or so) is needed, but we will allow bit more leniency to support data formats that need more complex heuristics.

Constructor Summary
`DataFormatDetector(Collection<JsonFactory> detectors)`
`DataFormatDetector(JsonFactory... detectors)`

Method Summary
`DataFormatMatcher` `findFormat(byte[] fullInputData)` Method to call to find format that given content (full document) has, as per configuration of this detector instance.
`DataFormatMatcher` `findFormat(byte[] fullInputData, int offset, int len)` Method to call to find format that given content (full document) has, as per configuration of this detector instance.
`DataFormatMatcher` `findFormat(InputStream in)` Method to call to find format that content (accessible via given `InputStream`) given has, as per configuration of this detector instance.
`String` `toString()`
`DataFormatDetector` `withMaxInputLookahead(int lookaheadBytes)` Method that will return a detector instance that allows detectors to read up to specified number of bytes when determining format match strength.
`DataFormatDetector` `withMinimalMatch(MatchStrength minMatch)` Method that will return a detector instance that uses given minimal match level; match that may be returned unless a stronger match is found with other format detectors.
`DataFormatDetector` `withOptimalMatch(MatchStrength optMatch)` Method that will return a detector instance that uses given optimal match level (match that is considered sufficient to return, without trying to find stronger matches with other formats).

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### DEFAULT_MAX_INPUT_LOOKAHEAD

    public static final int DEFAULT_MAX_INPUT_LOOKAHEAD

  By default we will look ahead at most 64 bytes; in most cases, much less (4 bytes or so) is needed, but we will allow bit more leniency to support data formats that need more complex heuristics.

  See Also:
    Constant Field Values

### _detectors

    protected final JsonFactory[] _detectors

  Ordered list of factories which both represent data formats to detect (in precedence order, starting with highest) and are used for actual detection.

### _optimalMatch

    protected final MatchStrength _optimalMatch

  Strength of match we consider to be good enough to be used without checking any other formats. Default value is `MatchStrength.SOLID_MATCH`,

### _minimalMatch

    protected final MatchStrength _minimalMatch

  Strength of minimal match we accept as the answer, unless better matches are found. Default value is `MatchStrength.WEAK_MATCH`,

### _maxInputLookahead

    protected final int _maxInputLookahead

  Maximum number of leading bytes of the input that we can read to determine data format.

  Default value is `DEFAULT_MAX_INPUT_LOOKAHEAD`.

Constructor Detail

### DataFormatDetector

    public DataFormatDetector(JsonFactory... detectors)

### DataFormatDetector

    public DataFormatDetector(Collection<JsonFactory> detectors)

Method Detail

### withOptimalMatch

    public DataFormatDetector withOptimalMatch(MatchStrength optMatch)

  Method that will return a detector instance that uses given optimal match level (match that is considered sufficient to return, without trying to find stronger matches with other formats).

### withMinimalMatch

    public DataFormatDetector withMinimalMatch(MatchStrength minMatch)

  Method that will return a detector instance that uses given minimal match level; match that may be returned unless a stronger match is found with other format detectors.

### withMaxInputLookahead

    public DataFormatDetector withMaxInputLookahead(int lookaheadBytes)

  Method that will return a detector instance that allows detectors to read up to specified number of bytes when determining format match strength.

### findFormat

    public DataFormatMatcher findFormat(InputStream in)
                                 throws IOException

  Method to call to find format that content (accessible via given `InputStream`) given has, as per configuration of this detector instance.

  Returns:
    Matcher object which contains result; never null, even in cases where no match (with specified minimal match strength) is found.
  Throws:
    `IOException`

### findFormat

    public DataFormatMatcher findFormat(byte[] fullInputData)
                                 throws IOException

  Method to call to find format that given content (full document) has, as per configuration of this detector instance.

  Returns:
    Matcher object which contains result; never null, even in cases where no match (with specified minimal match strength) is found.
  Throws:
    `IOException`

### findFormat

    public DataFormatMatcher findFormat(byte[] fullInputData,
                                        int offset,
                                        int len)
                                 throws IOException

  Method to call to find format that given content (full document) has, as per configuration of this detector instance.

  Returns:
    Matcher object which contains result; never null, even in cases where no match (with specified minimal match strength) is found.
  Throws:
    `IOException`
  Since:
    2.1

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Copyright © 2012 FasterXML. All Rights Reserved.