Class DataFormatDetector
- java.lang.Object
-
- com.fasterxml.jackson.core.format.DataFormatDetector
-
public class DataFormatDetector extends java.lang.Object
Simple helper class that allows data format (content type) auto-detection, given an ordered set ofJsonFactory
instances to use for actual low-level detection.
-
-
Field Summary
Fields Modifier and Type Field Description 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
Constructors Constructor Description DataFormatDetector(JsonFactory... detectors)
DataFormatDetector(java.util.Collection<JsonFactory> detectors)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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(java.io.InputStream in)
Method to call to find format that content (accessible via givenInputStream
) given has, as per configuration of this detector instance.java.lang.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).
-
-
-
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
-
-
Constructor Detail
-
DataFormatDetector
public DataFormatDetector(JsonFactory... detectors)
-
DataFormatDetector
public DataFormatDetector(java.util.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).- Parameters:
optMatch
- Optimal match level to use- Returns:
- Format detector instance with specified optimal match level
-
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.- Parameters:
minMatch
- Minimum match level to use- Returns:
- Format detector instance with specified minimum match level
-
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.- Parameters:
lookaheadBytes
- Amount of look-ahead allowed- Returns:
- Format detector instance with specified lookahead settings
-
findFormat
public DataFormatMatcher findFormat(java.io.InputStream in) throws java.io.IOException
Method to call to find format that content (accessible via givenInputStream
) given has, as per configuration of this detector instance.- Parameters:
in
- InputStream from which to read initial content- Returns:
- Matcher object which contains result; never null, even in cases where no match (with specified minimal match strength) is found.
- Throws:
java.io.IOException
- for read I/O problems
-
findFormat
public DataFormatMatcher findFormat(byte[] fullInputData) throws java.io.IOException
Method to call to find format that given content (full document) has, as per configuration of this detector instance.- Parameters:
fullInputData
- Full contents to use for format detection- Returns:
- Matcher object which contains result; never null, even in cases where no match (with specified minimal match strength) is found.
- Throws:
java.io.IOException
- for read I/O problems
-
findFormat
public DataFormatMatcher findFormat(byte[] fullInputData, int offset, int len) throws java.io.IOException
Method to call to find format that given content (full document) has, as per configuration of this detector instance.- Parameters:
fullInputData
- Full contents to use for format detectionoffset
- Offset of the first content bytelen
- Length of content- Returns:
- Matcher object which contains result; never null, even in cases where no match (with specified minimal match strength) is found.
- Throws:
java.io.IOException
- for read I/O problems- Since:
- 2.1
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-