public class RegexpSinglelineCheck extends AbstractFileSetCheck
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.
format
- Specify the format of the regular expression to match.
Type is java.lang.String
.
Default value is "$."
.
message
- Specify the message which is used to notify about
violations, if empty then default (hard-coded) message is used.
Type is java.lang.String
.
Default value is null
.
ignoreCase
- Control whether to ignore case when searching.
Type is boolean
.
Default value is false
.
minimum
- Specify the minimum number of matches required in each file.
Type is int
.
Default value is 0
.
maximum
- Specify the maximum number of matches required in each file.
Type is int
.
Default value is 0
.
fileExtensions
- Specify the file type extension of files to process.
Type is java.lang.String[]
.
Default value is all files
.
To configure the check with default values:
<module name="RegexpSingleline" />
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="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>
Example:
class MyClass { void myFunction() { try { doSomething(); } catch (Exception e) { System.exit(1); // OK, as only there is only one occurrence. } } void doSomething(){}; }
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="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>
Example:
/** * This file is copyrighted under CC. // Ok, as the file contains a copyright statement. */ class MyClass { }
/** // 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="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 java extension. --> <property name="fileExtensions" value="sql"/> </module>
Example:
/* AP 2.0 License. // Ok, Check ignores the case of the term. */ CREATE DATABASE MyDB;
/* // violation, file doesn't contain the term. Example sql file. */ CREATE DATABASE MyDB;
Parent is com.puppycrawl.tools.checkstyle.Checker
Violation Message Keys:
regexp.exceeded
regexp.minimum
AutomaticBean.OutputStreamOptions
Constructor and Description |
---|
RegexpSinglelineCheck() |
Modifier and Type | Method and Description |
---|---|
void |
beginProcessing(String charset)
Called when about to be called to process a set of files.
|
protected void |
processFiltered(File file,
FileText fileText)
Called to process a file that matches the specified file extensions.
|
void |
setFormat(String format)
Setter to specify the format of the regular expression to match.
|
void |
setIgnoreCase(boolean ignoreCase)
Setter to control whether to ignore case when searching.
|
void |
setMaximum(int maximum)
Setter to specify the maximum number of matches required in each file.
|
void |
setMessage(String message)
Setter to specify the message which is used to notify about violations,
if empty then default (hard-coded) message is used.
|
void |
setMinimum(int minimum)
Setter to specify the minimum number of matches required in each file.
|
addMessages, destroy, finishProcessing, fireErrors, getFileContents, getFileExtensions, getMessageDispatcher, getMessages, getTabWidth, init, log, log, process, setFileContents, setFileExtensions, setMessageDispatcher, setTabWidth
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
configure, contextualize, getConfiguration, setupChild
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
configure
contextualize
public RegexpSinglelineCheck()
public void beginProcessing(String charset)
FileSetCheck
beginProcessing
in interface FileSetCheck
beginProcessing
in class AbstractFileSetCheck
charset
- the character set used to read the files.protected void processFiltered(File file, FileText fileText)
AbstractFileSetCheck
processFiltered
in class AbstractFileSetCheck
file
- the file to be processedfileText
- the contents of the file.public void setFormat(String format)
format
- the format of the regular expression to match.public void setMessage(String message)
message
- the message to report for a match.public void setMinimum(int minimum)
minimum
- the minimum number of matches required in each file.public void setMaximum(int maximum)
maximum
- the maximum number of matches required in each file.public void setIgnoreCase(boolean ignoreCase)
ignoreCase
- whether to ignore case when searching.Copyright © 2001–2020. All rights reserved.