<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
    <Match>
      <!-- That code is auto generated -->
      <Package name="~com\.puppycrawl\.tools\.checkstyle\.grammars.*" />
    </Match>
    <Match>
      <!-- We are not aware of encoding of files that user has, so using user encoding is ok -->
      <Class name="com.puppycrawl.tools.checkstyle.checks.LineSeparatorOption" />
      <Bug pattern="DM_DEFAULT_ENCODING" />
    </Match>
    <Match>
      <!-- see a reason of suppression at #910 -->
      <Class name="com.puppycrawl.tools.checkstyle.checks.UniquePropertiesCheck$UniqueProperties" />
      <Bug pattern="EQ_DOESNT_OVERRIDE_EQUALS" />
    </Match>
    <Match>
      <!-- false-positive, as Map will return null if key is not found -->
      <Class name="com.puppycrawl.tools.checkstyle.checks.indentation.LineWrappingHandler" />
      <Method name="collectFirstNodes" />
      <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
    </Match>
    <Match>
      <!-- it is ok here, as business meaning of that cases is not the same, it is occasional similarity -->
      <Class name="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck" />
      <Method name="visitToken" />
      <Bug pattern="DB_DUPLICATE_SWITCH_CLAUSES" />
    </Match>
    <Match>
      <!-- false positive, condition elements are not the same -->
      <Class name="com.puppycrawl.tools.checkstyle.checks.indentation.LineWrappingHandler" />
      <Method name="collectFirstNodes" />
      <Bug pattern="RpC_REPEATED_CONDITIONAL_TEST" />
    </Match>
    <Match>
      <!-- false positive, "preceded" is returned from method as result -->
      <Class name="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceAfterCheck" />
      <Method name="getPreceded" />
      <Bug pattern="DLS_DEAD_LOCAL_STORE" />
    </Match>
    <Match>
      <!-- that CLI class so we need system exit code there, but only in main(...) method -->
      <Class name="com.puppycrawl.tools.checkstyle.Main" />
      <Method name="main" />
      <Bug pattern="DM_EXIT" />
    </Match>
    <Match>
      <!-- have never been a case for years, Eclipse does not show any other classes inherited from CommonASTWithHiddenTokens -->
      <Class name="com.puppycrawl.tools.checkstyle.api.DetailAST" />
      <Bug pattern="BC_UNCONFIRMED_CAST" />
    </Match>
    <Match>
      <!-- The structure of frames relies on the AST structure which relies on correct/compilable
        java files. It is ok to have direct casts to subtypes there. Any problems at runtime do
        mean serious problems in the algorithm or AST generation. -->
      <Class name="com.puppycrawl.tools.checkstyle.checks.coding.RequireThisCheck"/>
      <Or>
        <Bug pattern="BC_UNCONFIRMED_CAST"/>
        <Bug pattern="BC_UNCONFIRMED_CAST_OF_RETURN_VALUE"/>
      </Or>
    </Match>
    <Match>
      <!-- false positive, beginTree is a kind of constructor for Checks -->
      <Or>
        <Class name="com.puppycrawl.tools.checkstyle.checks.AvoidEscapedUnicodeCharactersCheck" />
        <Class name="com.puppycrawl.tools.checkstyle.checks.coding.RequireThisCheck" />
        <Class name="com.puppycrawl.tools.checkstyle.checks.coding.DeclarationOrderCheck" />
        <Class name="com.puppycrawl.tools.checkstyle.checks.OuterTypeFilenameCheck" />
        <Class name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpCheck" />
        <!-- createJavadocNode is private and can not be launched without visitToken-->
        <Class name="com.puppycrawl.tools.checkstyle.checks.javadoc.AbstractJavadocCheck" />
        <!-- has only one public method and all initialized in that method-->
        <Class name="com.puppycrawl.tools.checkstyle.checks.regexp.MultilineDetector" />
        <!-- beginProcessing() is kind of c-tor -->
        <Class name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpMultilineCheck" />
        <Class name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck" />
        <!--Uses setters to set fields values-->
        <Class name="com.puppycrawl.tools.checkstyle.api.AbstractCheck" />
      </Or>
      <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR" />
    </Match>
    <Match>
        <!--
         False-positive. ExtedrnalResource cannot be null there.
         FindBugs rise violation due to @Nullable annotation on 'apply' method.
         See https://stevewall123.wordpress.com/2014/12/18/findbugs-warning-with-guavas-predicate-interface/
         See http://stackoverflow.com/questions/12422473/nullable-input-in-google-guava-function-interface-triggers-findbugs-warning
         -->
        <Class name="com.puppycrawl.tools.checkstyle.PropertyCacheFile$1" />
        <Method name="apply" />
        <Bug pattern="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE" />
    </Match>
    <Match>
        <!-- false-positive. Bugs reported even though casting is done only after verification using instanceof -->
        <Class name="com.puppycrawl.tools.checkstyle.JavadocDetailNodeParser"/>
        <Method name="parseJavadocAsDetailNode"/>
        <Bug pattern="BC_UNCONFIRMED_CAST_OF_RETURN_VALUE"/>
    </Match>
</FindBugsFilter>
