SuppressionSingleFilter

Since Checkstyle 8.23

Description

Filter SuppressionSingleFilter suppresses audit events for Checks violations in the specified file, class, checks, message, module id, lines, and columns.

Rationale: To allow users to use suppressions configured in the same config as other modules. SuppressionFilter and SuppressionXpathFilter require a separate file.

Advice: If checkstyle configuration is used for several projects, single suppressions on common files/folders is better to put in checkstyle configuration as common rule. All suppression that are for specific file names is better to keep in project specific config file.

Attention: This filter only supports single suppression, and will need multiple instances if users wants to suppress multiple violations.

Notes

SuppressionSingleFilter can suppress Checks that have Treewalker or Checker as parent module.

Properties

name description type default value since
checks Define the RegExp for matching against the name of the check associated with an audit event. Pattern null 8.23
columns Specify a comma-separated list of values, where each value is an integer or a range of integers denoted by integer-integer. String null 8.23
files Define the RegExp for matching against the file name associated with an audit event. Pattern null 8.23
id Specify a string matched against the ID of the check associated with an audit event. String null 8.23
lines Specify a comma-separated list of values, where each value is an integer or a range of integers denoted by integer-integer. String null 8.23
message Define the RegExp for matching against the message of the check associated with an audit event. Pattern null 8.23

Examples

To configure a filter to suppress violations of JavadocStyle and MagicNumber checks in Example1.java for specific line ranges using SuppressionSingleFilter:


<module name="Checker">
  <module name="TreeWalker">
    <module name="JavadocStyle"/>
    <module name="MagicNumber"/>
  </module>
  <module name="SuppressionSingleFilter">
    <property name="checks" value="JavadocStyle|MagicNumber"/>
    <property name="files" value="Example1.java"/>
    <property name="lines" value="1,5-100"/>
  </module>
  <module name="SuppressionSingleFilter">
    <property name="message" value="Missing a Javadoc comment"/>
  </module>
</module>


public class Example1 {
  public void exampleMethod() {
    int value = 100; // filtered violation ''100' is a magic number'
  }
}

To configure a filter to suppress violations of JavadocMethod and EqualsAvoidNull checks in Example2.java using SuppressionSingleFilter:


<module name="Checker">
  <module name="TreeWalker">
    <module name="JavadocMethod"/>
    <module name="EqualsAvoidNull"/>
  </module>
  <module name="SuppressionSingleFilter">
    <property name="files" value="Example2.java"/>
    <property name="checks" value="JavadocMethod|EqualsAvoidNull"/>
  </module>
</module>


public class Example2 {

  public void checkStringEquality(String s) {
    // filtered violation below 'String literal expressions should be on the left'
    s.equals("M");
  }
  /**
   * @param p1 The first number
   */
  // filtered violation below '@return tag should be present'
  private int m2(int p1) { return p1; }
}

To configure a filter to suppress violations of RegexpSinglelineCheck in Example3.java using SuppressionSingleFilter:


<module name="Checker">
  <module name="RegexpSingleline">
    <property name="format" value="example"/>
  </module>
  <module name="SuppressionSingleFilter">
    <property name="files" value="Example3.java"/>
    <property name="checks" value="RegexpSinglelineCheck"/>
  </module>
</module>


public class Example3 {

  public void printExample() {
    System.out.println(
      "example" // filtered violation 'Line matches the illegal pattern 'example''
    );
  }

  public void noViolation() {
    System.out.println(
      "RegexpSingleline is case sensitive by default. 'Example' in not matching."
    );
  }

}

To configure a filter to suppress violations of NoWhitespaceAfter in Example4.java using SuppressionSingleFilter:


<module name="Checker">
  <module name="TreeWalker">
    <module name="NoWhitespaceAfter"/>
  </module>
  <module name="SuppressionSingleFilter">
    <property name="files" value="Example4.java"/>
    <property name="checks" value="NoWhitespaceAfter"/>
  </module>
</module>


public class Example4 {

  public void exampleMethod(int a, int b) {
    // filtered violation below ''.' is followed by whitespace'
    Integer. parseInt("3");
  }

  public void exampleMethod2() {
    int [] x; // filtered violation ''int' is followed by whitespace'
  }

}

To configure a filter to suppress violations of MethodName in Example5.java using SuppressionSingleFilter:


<module name="Checker">
  <module name="MethodName"/>
  <module name="SuppressionSingleFilter">
    <property name="files" value="Example5.java"/>
    <property name="checks" value="MethodName"/>
  </module>
</module>


public class Example5 {
  // filtered violation below 'Name 'example_Method' must match pattern'
  public void example_Method() {
  }
  // filtered violation below 'Name 'Another_Method' must match pattern'
  public void Another_Method() {
  }
}

To configure a filter to suppress violations of ConstantName in Example6.java using SuppressionSingleFilter:


<module name="Checker">
  <module name="ConstantName"/>
  <module name="SuppressionSingleFilter">
    <property name="files" value="Example6.java"/>
    <property name="checks" value="ConstantName"/>
  </module>
</module>


public class Example6 {
  // filtered violation below 'Name 'myConstant' must match pattern'
  private static final int myConstant = 42;

}

To configure a filter to suppress violations of MemberName and MethodName in Example7.java using SuppressionSingleFilter:


<module name="Checker">
  <module name="MemberName"/>
  <module name="MethodName"/>
  <module name="SuppressionSingleFilter">
    <property name="files" value="Example7.java"/>
    <property name="checks" value="MemberName|MethodName"/>
  </module>
</module>


public class Example7 {
  // filtered violation below 'Name 'MyVariable' must match pattern'
  private int MyVariable = 5;
  // filtered violation below 'Name 'MyMethod' must match pattern'
  public void MyMethod() {
  }
}

To configure a filter to suppress ParameterNumber violations in Example8.java using SuppressionSingleFilter:


<module name="Checker">
  <module name="TreeWalker">
    <module name="ParameterNumber">
      <property name="max" value="5"/>
    </module>
  </module>
  <module name="SuppressionSingleFilter">
    <property name="files" value="Example8.java"/>
    <property name="checks" value="ParameterNumber"/>
  </module>
</module>


public class Example8 {
  // filtered violation below 'More than 5 parameters (found 6)'
  public void exampleMethod(
    int param1, int param2, int param3, int param4, int param5, int param6
  ) {}
}

To configure a filter to suppress FileLength violations in Example9.java using SuppressionSingleFilter:


<module name="Checker">
  <module name="TreeWalker">
    <module name="FileLength">
      <property name="max" value="1"/>
    </module>
  </module>
  <module name="SuppressionSingleFilter">
    <property name="files" value="Example9.java"/>
    <property name="checks" value="FileLength"/>
  </module>
</module>


/* filtered violation on 1st line  'File length is 4 lines (max allowed is 1)' */
public class Example9 {

}

To configure a filter to suppress MemberName violations in Example10.java using SuppressionSingleFilter:


<module name="Checker">
  <module name="MemberName">
    <property name="format" value="^[A-Z][a-zA-Z0-9]*$"/>
  </module>
  <module name="SuppressionSingleFilter">
    <property name="files" value="Example10.java"/>
    <property name="message" value="Name 'log' must match pattern"/>
  </module>
</module>


public class Example10 {
  // filtered violation below 'Name 'log' must match pattern'
  private String log = "Some log message";

}

Example of Usage

Package

com.puppycrawl.tools.checkstyle.filters

Parent Module

Checker