Class DataFormatDetector

java.lang.Object
org.codehaus.jackson.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.
Since:
1.7
  • Field Details

    • 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:
    • _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 Details

  • Method Details

    • 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