com.fasterxml.jackson.databind.deser

## Class DataFormatReaders

- java.lang.Object
- - com.fasterxml.jackson.databind.deser.DataFormatReaders

    public class DataFormatReaders
    extends Object

Alternative to `DataFormatDetector` that needs to be used when using data-binding.

Since:
  2.1

### Nested Class Summary

Nested Classes
`protected class` `DataFormatReaders.AccessorForReader` We need sub-class here as well, to be able to access efficiently.
`static class` `DataFormatReaders.Match` Result class, similar to `DataFormatMatcher`

### Field Summary

Fields
`protected int` `_maxInputLookahead` Maximum number of leading bytes of the input that we can read to determine data format.
`protected com.fasterxml.jackson.core.format.MatchStrength` `_minimalMatch` Strength of minimal match we accept as the answer, unless better matches are found.
`protected com.fasterxml.jackson.core.format.MatchStrength` `_optimalMatch` Strength of match we consider to be good enough to be used without checking any other formats.
`protected ObjectReader[]` `_readers` Ordered list of readers which both represent data formats to detect (in precedence order, starting with highest) and contain factories used for actual detection.
`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 and Description
`DataFormatReaders(Collection<ObjectReader> detectors)`
`DataFormatReaders(ObjectReader... detectors)`

### Method Summary

All Methods Instance Methods Concrete Methods
`DataFormatReaders.Match` `findFormat(byte[] fullInputData)` Method to call to find format that given content (full document) has, as per configuration of this detector instance.
`DataFormatReaders.Match` `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.
`DataFormatReaders.Match` `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()`
`DataFormatReaders` `with(DeserializationConfig config)`
`DataFormatReaders` `with(ObjectReader[] readers)`
`DataFormatReaders` `withMaxInputLookahead(int lookaheadBytes)`
`DataFormatReaders` `withMinimalMatch(com.fasterxml.jackson.core.format.MatchStrength minMatch)`
`DataFormatReaders` `withOptimalMatch(com.fasterxml.jackson.core.format.MatchStrength optMatch)`
`DataFormatReaders` `withType(JavaType type)`

### 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

#### _readers

    protected final ObjectReader[] _readers

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

#### _optimalMatch

    protected final com.fasterxml.jackson.core.format.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 com.fasterxml.jackson.core.format.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

#### DataFormatReaders

    public DataFormatReaders(ObjectReader... detectors)

#### DataFormatReaders

    public DataFormatReaders(Collection<ObjectReader> detectors)

### Method Detail

#### withOptimalMatch

    public DataFormatReaders withOptimalMatch(com.fasterxml.jackson.core.format.MatchStrength optMatch)

#### withMinimalMatch

    public DataFormatReaders withMinimalMatch(com.fasterxml.jackson.core.format.MatchStrength minMatch)

#### with

    public DataFormatReaders with(ObjectReader[] readers)

#### withMaxInputLookahead

    public DataFormatReaders withMaxInputLookahead(int lookaheadBytes)

#### with

    public DataFormatReaders with(DeserializationConfig config)

#### withType

    public DataFormatReaders withType(JavaType type)

#### findFormat

    public DataFormatReaders.Match 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 DataFormatReaders.Match 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 DataFormatReaders.Match 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`