Class UncommentedMainCheck
- 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.UncommentedMainCheck
-
- All Implemented Interfaces:
Configurable,Contextualizable
public class UncommentedMainCheck extends AbstractCheck
Detects uncommented main methods. Basically detects any main method, since if it is detectable that means it is uncommented.<module name="UncommentedMain"/>
-
-
Field Summary
Fields Modifier and Type Field Description private intclassDepthClass definition depth.private java.lang.StringcurrentClassCurrent class name.private java.util.regex.PatternexcludedClassesCompiled regexp to exclude classes from check.static java.lang.StringMSG_KEYA key is pointing to the warning message text in "messages.properties" file.private FullIdentpackageNameCurrent package.
-
Constructor Summary
Constructors Constructor Description UncommentedMainCheck()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbeginTree(DetailAST rootAST)Called before the starting to process a tree.private booleancheckClassName()Checks that current class is not excluded.private static booleancheckModifiers(DetailAST method)Checks that method has final and static modifiers.private static booleancheckName(DetailAST method)Checks that method name is @quot;main@quot;.private static booleancheckParams(DetailAST method)Checks that method has onlyString[]or onlyString...param.private static booleancheckType(DetailAST method)Checks that return type isvoid.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.private static booleanisStringType(DetailAST typeAst)Whether the type is java.lang.String.voidleaveToken(DetailAST ast)Called after all the child nodes have been process.voidsetExcludedClasses(java.util.regex.Pattern excludedClasses)Set the excluded classes pattern.private voidvisitClassDef(DetailAST classDef)If not inner class then change current class name.private voidvisitMethodDef(DetailAST method)Checks method definition if this ispublic static void main(String[]).private voidvisitPackageDef(DetailAST packageDef)Sets current package.voidvisitToken(DetailAST ast)Called to process a token.-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
-
-
-
-
Field Detail
-
MSG_KEY
public static final java.lang.String MSG_KEY
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
excludedClasses
private java.util.regex.Pattern excludedClasses
Compiled regexp to exclude classes from check.
-
currentClass
private java.lang.String currentClass
Current class name.
-
packageName
private FullIdent packageName
Current package.
-
classDepth
private int classDepth
Class definition depth.
-
-
Method Detail
-
setExcludedClasses
public void setExcludedClasses(java.util.regex.Pattern excludedClasses)
Set the excluded classes pattern.- Parameters:
excludedClasses- a pattern
-
getAcceptableTokens
public int[] getAcceptableTokens()
Description copied from class:AbstractCheckThe 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:
getAcceptableTokensin classAbstractCheck- Returns:
- the token set this check is designed for.
- See Also:
TokenTypes
-
getDefaultTokens
public int[] getDefaultTokens()
Description copied from class:AbstractCheckReturns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.- Specified by:
getDefaultTokensin classAbstractCheck- Returns:
- the default tokens
- See Also:
TokenTypes
-
getRequiredTokens
public int[] getRequiredTokens()
Description copied from class:AbstractCheckThe tokens that this check must be registered for.- Specified by:
getRequiredTokensin classAbstractCheck- Returns:
- the token set this must be registered for.
- See Also:
TokenTypes
-
beginTree
public void beginTree(DetailAST rootAST)
Description copied from class:AbstractCheckCalled before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.- Overrides:
beginTreein classAbstractCheck- Parameters:
rootAST- the root of the tree
-
leaveToken
public void leaveToken(DetailAST ast)
Description copied from class:AbstractCheckCalled after all the child nodes have been process.- Overrides:
leaveTokenin classAbstractCheck- Parameters:
ast- the token leaving
-
visitToken
public void visitToken(DetailAST ast)
Description copied from class:AbstractCheckCalled to process a token.- Overrides:
visitTokenin classAbstractCheck- Parameters:
ast- the token to process
-
visitPackageDef
private void visitPackageDef(DetailAST packageDef)
Sets current package.- Parameters:
packageDef- node for package definition
-
visitClassDef
private void visitClassDef(DetailAST classDef)
If not inner class then change current class name.- Parameters:
classDef- node for class definition
-
visitMethodDef
private void visitMethodDef(DetailAST method)
Checks method definition if this ispublic static void main(String[]).- Parameters:
method- method definition node
-
checkClassName
private boolean checkClassName()
Checks that current class is not excluded.- Returns:
- true if check passed, false otherwise
-
checkName
private static boolean checkName(DetailAST method)
Checks that method name is @quot;main@quot;.- Parameters:
method- the METHOD_DEF node- Returns:
- true if check passed, false otherwise
-
checkModifiers
private static boolean checkModifiers(DetailAST method)
Checks that method has final and static modifiers.- Parameters:
method- the METHOD_DEF node- Returns:
- true if check passed, false otherwise
-
checkType
private static boolean checkType(DetailAST method)
Checks that return type isvoid.- Parameters:
method- the METHOD_DEF node- Returns:
- true if check passed, false otherwise
-
checkParams
private static boolean checkParams(DetailAST method)
Checks that method has onlyString[]or onlyString...param.- Parameters:
method- the METHOD_DEF node- Returns:
- true if check passed, false otherwise
-
isStringType
private static boolean isStringType(DetailAST typeAst)
Whether the type is java.lang.String.- Parameters:
typeAst- the type to check.- Returns:
- true, if the type is java.lang.String.
-
-