Class RegexpSinglelineJavaCheck
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.api.AutomaticBean
-
- com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
-
- com.puppycrawl.tools.checkstyle.api.AbstractCheck
-
- com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck
-
- All Implemented Interfaces:
Configurable
,Contextualizable
public class RegexpSinglelineJavaCheck extends AbstractCheck
Checks that a specified pattern matches a single line in Java files.
This class is variation on RegexpSingleline for detecting single lines that match a supplied regular expression in Java files. It supports suppressing matches in Java comments.
-
Property
format
- Specify the format of the regular expression to match. Type isjava.lang.String
. Default value is"$."
. -
Property
message
- Specify the message which is used to notify about violations, if empty then default (hard-coded) message is used. Type isjava.lang.String
. Default value isnull
. -
Property
ignoreCase
- Control whether to ignore case when searching. Type isboolean
. Default value isfalse
. -
Property
minimum
- Specify the minimum number of matches required in each file. Type isint
. Default value is0
. -
Property
maximum
- Specify the maximum number of matches required in each file. Type isint
. Default value is0
. -
Property
ignoreComments
- Control whether to ignore text in comments when searching. Type isboolean
. Default value isfalse
.
To configure the default check:
<module name="RegexpSinglelineJava"/>
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 for calls to
System.out.println
, except in comments:<module name="RegexpSinglelineJava"> <!-- . matches any character, so we need to escape it and use \. to match dots. --> <property name="format" value="System\.out\.println"/> <property name="ignoreComments" value="true"/> </module>
Example:
System.out.println(""); // violation, instruction matches illegal pattern System.out. println(""); // OK /* System.out.println */ // OK, comments are ignored
To configure the check to find case-insensitive occurrences of "debug":
<module name="RegexpSinglelineJava"> <property name="format" value="debug"/> <property name="ignoreCase" value="true"/> </module>
Example:
int debug = 0; // violation, variable name matches illegal pattern public class Debug { // violation, class name matches illegal pattern /* this is for de bug only; */ // OK
To configure the check to find occurrences of "\.read(.*)|\.write(.*)" and display "IO found" for each violation.
<module name="RegexpSinglelineJava"> <property name="format" value="\.read(.*)|\.write(.*)"/> <property name="message" value="IO found"/> </module>
Example:
FileReader in = new FileReader("path/to/input"); int ch = in.read(); // violation while(ch != -1) { System.out.print((char)ch); ch = in.read(); // violation } FileWriter out = new FileWriter("path/to/output"); out.write("something"); // violation
To configure the check to find occurrences of "\.log(.*)". We want to allow a maximum of 2 occurrences.
<module name="RegexpSinglelineJava"> <property name="format" value="\.log(.*)"/> <property name="maximum" value="2"/> </module>
Example:
public class Foo{ public void bar(){ Logger.log("first"); // OK, first occurrence is allowed Logger.log("second"); // OK, second occurrence is allowed Logger.log("third"); // violation System.out.println("fourth"); Logger.log("fifth"); // violation } }
To configure the check to find all occurrences of "public". We want to ignore comments, display "public member found" for each violation and say if less than 2 occurrences.
<module name="RegexpSinglelineJava"> <property name="format" value="public"/> <property name="minimum" value="2"/> <property name="message" value="public member found"/> <property name="ignoreComments" value="true"/> </module>
Example:
class Foo{ // violation, file contains less than 2 occurrences of "public" private int a; /* public comment */ // OK, comment is ignored private void bar1() {} public void bar2() {} // violation }
Example:
class Foo{ private int a; /* public comment */ // OK, comment is ignored public void bar1() {} // violation public void bar2() {} // violation }
Parent is
com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
-
regexp.exceeded
-
regexp.minimum
- Since:
- 6.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
AutomaticBean.OutputStreamOptions
-
-
Constructor Summary
Constructors Constructor Description RegexpSinglelineJavaCheck()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
beginTree(DetailAST rootAST)
Called before the starting to process a tree.int[]
getAcceptableTokens()
The configurable token set.int[]
getDefaultTokens()
Returns the default token a check is interested in.int[]
getRequiredTokens()
The tokens that this check must be registered for.void
setFormat(java.lang.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
setIgnoreComments(boolean ignore)
Setter to control whether to ignore text in comments when searching.void
setMaximum(int maximum)
Setter to specify the maximum number of matches required in each file.void
setMessage(java.lang.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.-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
clearMessages, destroy, finishTree, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokens, visitToken
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, getConfiguration, setupChild
-
-
-
-
Method Detail
-
getDefaultTokens
public int[] getDefaultTokens()
Description copied from class:AbstractCheck
Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.- Specified by:
getDefaultTokens
in classAbstractCheck
- Returns:
- the default tokens
- See Also:
TokenTypes
-
getAcceptableTokens
public int[] getAcceptableTokens()
Description copied from class:AbstractCheck
The configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.- Specified by:
getAcceptableTokens
in classAbstractCheck
- Returns:
- the token set this check is designed for.
- See Also:
TokenTypes
-
getRequiredTokens
public int[] getRequiredTokens()
Description copied from class:AbstractCheck
The tokens that this check must be registered for.- Specified by:
getRequiredTokens
in classAbstractCheck
- Returns:
- the token set this must be registered for.
- See Also:
TokenTypes
-
beginTree
public void beginTree(DetailAST rootAST)
Description copied from class:AbstractCheck
Called before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.- Overrides:
beginTree
in classAbstractCheck
- Parameters:
rootAST
- the root of the tree
-
setFormat
public void setFormat(java.lang.String format)
Setter to specify the format of the regular expression to match.- Parameters:
format
- the format of the regular expression to match.
-
setMessage
public void setMessage(java.lang.String message)
Setter to specify the message which is used to notify about violations, if empty then default (hard-coded) message is used.- Parameters:
message
- the message to report for a match.
-
setMinimum
public void setMinimum(int minimum)
Setter to specify the minimum number of matches required in each file.- Parameters:
minimum
- the minimum number of matches required in each file.
-
setMaximum
public void setMaximum(int maximum)
Setter to specify the maximum number of matches required in each file.- Parameters:
maximum
- the maximum number of matches required in each file.
-
setIgnoreCase
public void setIgnoreCase(boolean ignoreCase)
Setter to control whether to ignore case when searching.- Parameters:
ignoreCase
- whether to ignore case when searching.
-
setIgnoreComments
public void setIgnoreComments(boolean ignore)
Setter to control whether to ignore text in comments when searching.- Parameters:
ignore
- whether to ignore text in comments when searching.
-
-