Class GoogleMethodNameCheck
java.lang.Object
com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
com.puppycrawl.tools.checkstyle.api.AbstractCheck
com.puppycrawl.tools.checkstyle.checks.naming.GoogleMethodNameCheck
- All Implemented Interfaces:
Configurable,Contextualizable
Checks that method names conform to the
Google Java Style Guide for method naming.
Regular method names must:
- Be at least 2 characters long.
- Start with a lowercase letter.
- Not have a single lowercase letter followed by uppercase.
- Not have a consecutive uppercase.
- Contain only letters and digits and underscores.
Test method names must:
- Be at least 2 characters long per segment.
- Start each segment with a lowercase letter.
- Not have a single lowercase letter followed by uppercase in any segment.
- Not have a consecutive uppercase.
- Allow underscores to separate segment and digits.
- Not have leading, trailing, or consecutive underscores.
Notes:
Methods annotated with @Override are ignored, as they must
match the name defined in the parent class or interface.
- Since:
- 13.10.0
-
Nested Class Summary
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final PatternMatches invalid underscore usage for regular methods: leading, trailing, double, or between any characters (letter-letter, letter-digit, digit-letter).private static final PatternMatches invalid underscore usage for test methods: leading, trailing, or double.static final StringA key is pointing to the violation message text in "messages.properties" file.static final StringA key is pointing to the violation message text in "messages.properties" file.static final StringA key is pointing to the violation message text in "messages.properties" file.static final StringA key is pointing to the violation message text in "messages.properties" file.private static final PatternPattern to strip trailing numbering suffix (underscore followed by digits).private static final PatternPattern for valid regular method names in Google style.Set of JUnit test annotation names that indicate a test method.private static final PatternPattern for valid test method names in Google style. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint[]The configurable token set.int[]Returns the default token a check is interested in.private static DetailASTReturns the IDENT node of the given AST.int[]The tokens that this check must be registered for.private static booleanhasTestAnnotation(DetailAST methodDef) Checks if the method has any test annotation.private voidvalidateRegularMethodName(DetailAST nameAst, String methodName) Validates a regular (non-test) method name according to Google style.private voidvalidateTestMethodName(DetailAST nameAst, String methodName) Validates a test method name according to Google style.voidvisitToken(DetailAST ast) Called to process a token.Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
beginTree, clearViolations, destroy, finishTree, getFileContents, getFilePath, getLine, getLineCodePoints, getLines, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokensMethods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityMethods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
Field Details
-
MSG_KEY_FORMAT_REGULAR
A key is pointing to the violation message text in "messages.properties" file.- See Also:
-
MSG_KEY_FORMAT_TEST
A key is pointing to the violation message text in "messages.properties" file.- See Also:
-
MSG_KEY_UNDERSCORE_REGULAR
A key is pointing to the violation message text in "messages.properties" file.- See Also:
-
MSG_KEY_UNDERSCORE_TEST
A key is pointing to the violation message text in "messages.properties" file.- See Also:
-
REGULAR_METHOD_NAME_PATTERN
Pattern for valid regular method names in Google style.Explanation:
^- Start of string[a-z]- Must start with a single lowercase letter[a-z0-9]++- One or more lowercase letters or digits possessively (ensures the initial lowercase block is at least 2 characters long)(?:[A-Z][a-z0-9]++)*+- Zero or more camelCase humps possessively, where each uppercase letter must be followed by one or more lowercase letters or digits[A-Z]?- An optional single uppercase letter allowed at the very end$- End of string
-
TEST_METHOD_NAME_PATTERN
Pattern for valid test method names in Google style.- Single segment (no underscore): follows regular method naming rules
- Multi-segment (with underscore): each segment must be a valid lowerCamelCase name
- Each segment must start with lowercase
- Each segment must be at least 2 characters long
- No segment may start with a single lowercase followed by uppercase (e.g., "fO")
-
NUMBERING_SUFFIX_PATTERN
Pattern to strip trailing numbering suffix (underscore followed by digits). -
INVALID_UNDERSCORE_PATTERN_REGULAR
Matches invalid underscore usage for regular methods: leading, trailing, double, or between any characters (letter-letter, letter-digit, digit-letter). -
INVALID_UNDERSCORE_PATTERN_TEST
Matches invalid underscore usage for test methods: leading, trailing, or double. -
TEST_ANNOTATIONS
Set of JUnit test annotation names that indicate a test method.
-
-
Constructor Details
-
GoogleMethodNameCheck
public GoogleMethodNameCheck()Creates a newGoogleMethodNameCheckinstance.
-
-
Method Details
-
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:
-
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:
-
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:
-
visitToken
Description copied from class:AbstractCheckCalled to process a token.- Overrides:
visitTokenin classAbstractCheck- Parameters:
ast- the token to process
-
getIdent
Returns the IDENT node of the given AST.- Parameters:
ast- the AST node- Returns:
- the IDENT child node
-
hasTestAnnotation
Checks if the method has any test annotation.- Parameters:
methodDef- the METHOD_DEF AST node- Returns:
- true if the method has @Test, @ParameterizedTest, or @RepeatedTest annotation.
-
validateRegularMethodName
Validates a regular (non-test) method name according to Google style.- Parameters:
nameAst- the IDENT AST node containing the method namemethodName- the method name string
-
validateTestMethodName
Validates a test method name according to Google style.- Parameters:
nameAst- the IDENT AST node containing the method namemethodName- the method name string
-