RegexpSingleline

Since Checkstyle 5.0

Description

Checks that a specified pattern matches a single-line in any file type.

Rationale: This check can be used to prototype checks and to find common bad practice such as calling ex.printStacktrace(), System.out.println(), System.exit(), etc.

Properties

name description type default value since
fileExtensions Specify the file extensions of the files to process. String[] all files 5.0
format Specify the format of the regular expression to match. Pattern "$." 5.0
ignoreCase Control whether to ignore case when searching. boolean false 5.0
maximum Specify the maximum number of matches required in each file. int 0 5.0
message Specify the message which is used to notify about violations, if empty then default (hard-coded) message is used. String null 5.0
minimum Specify the minimum number of matches required in each file. int 0 5.0

Examples

To configure the default check:

<module name="Checker">
  <module name="RegexpSingleline" />
</module>
        

This configuration does not match to anything, so we do not provide any code example for it as no violation will ever be reported.

To configure the check to find occurrences of 'System.exit(' with some slack of allowing only one occurrence per file:

<module name="Checker">
  <module name="RegexpSingleline">
    <property name="format" value="System.exit\("/>
    <!-- next line not required as 0 is the default -->
    <property name="minimum" value="0"/>
    <property name="maximum" value="1"/>
  </module>
</module>
        

Example:

class MyClass {
    void myFunction() {
        try {
            doSomething();
        } catch (Exception e) {
            System.exit(1); // OK, as only there is only one occurrence.
        }
    }
    void doSomething(){};
}
        

Example:

class MyClass {
    void myFunction() {
        try {
            doSomething();
            System.exit(0);
        } catch (Exception e) {
            System.exit(1); // Violation, as there are more than one occurrence.
        }
    }
    void doSomething(){};
}
        

An example of how to configure the check to make sure a copyright statement is included in the file:

<module name="Checker">
  <module name="RegexpSingleline">
    <property name="format" value="This file is copyrighted"/>
    <property name="minimum" value="1"/>
    <!--  Need to specify a maximum, so 10 times is more than enough. -->
    <property name="maximum" value="10"/>
  </module>
</module>
        

Example:

/**
* This file is copyrighted under CC. // Ok, as the file contains a copyright statement.
*/
class MyClass {

}
        

Example:

/** // violation, as the file doesn't contain a copyright statement.
* MyClass as a configuration example.
*/
class MyClass {

}
        

An example of how to configure the check to make sure sql files contains the term 'license'.

<module name="Checker">
  <module name="RegexpSingleline">
      <property name="format" value="license"/>
      <property name="minimum" value="1"/>
      <property name="maximum" value="9999"/>
      <property name="ignoreCase" value="true"/>
      <!--  Configure a message to be shown on violation of the Check. -->
      <property name="message"
                value="File must contain at least one occurrence of 'license' term"/>
      <!--  Perform the Check only on files with SQL extension. -->
      <property name="fileExtensions" value="sql"/>
  </module>
</module>
        

Example:

/*
 AP 2.0 License. // Ok, Check ignores the case of the term.
*/
CREATE DATABASE MyDB;
        

Example:

/* // violation, file doesn't contain the term.
 Example sql file.
*/
CREATE DATABASE MyDB;
        

Example of Usage

Violation Messages

All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.

Package

com.puppycrawl.tools.checkstyle.checks.regexp

Parent Module

Checker