public class

DataFormatDetector

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

Class Overview

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.

Summary

Constants
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.
Fields
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.
protected final int _maxInputLookahead Maximum number of leading bytes of the input that we can read to determine data format.
protected final MatchStrength _minimalMatch Strength of minimal match we accept as the answer, unless better matches are found.
protected final MatchStrength _optimalMatch Strength of match we consider to be good enough to be used without checking any other formats.
Public Constructors
DataFormatDetector(JsonFactory... detectors)
DataFormatDetector(Collection<JsonFactory> detectors)
Public Methods
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.
DataFormatMatcher findFormat(byte[] fullInputData)
Method to call to find format that given content (full document) has, as per configuration of this detector instance.
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).
[Expand]
Inherited Methods
From class java.lang.Object

Constants

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.

Constant Value: 64 (0x00000040)

Fields

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.

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.

protected final MatchStrength _minimalMatch

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

protected final MatchStrength _optimalMatch

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

Public Constructors

public DataFormatDetector (JsonFactory... detectors)

public DataFormatDetector (Collection<JsonFactory> detectors)

Public Methods

public 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.

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

public DataFormatMatcher findFormat (byte[] fullInputData)

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

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.

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.

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).