Class CheckUtil
java.lang.Object
com.puppycrawl.tools.checkstyle.utils.CheckUtil
Contains utility methods for the checks.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Pattern
Compiled pattern for all system newlines.private static final int
Decimal radix.private static final int
Hex radix.private static final int
Binary radix.private static final int
Octal radix.private static final int
Maximum nodes allowed in a body of getter.private static final Pattern
Pattern matching names of getter methods.private static final int
Maximum nodes allowed in a body of setter.private static final int
Maximum children allowed in setter/getter.private static final Pattern
Pattern matching names of setter methods.private static final Pattern
Pattern matching underscore characters ('_'). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic AccessModifierOption
Returns the access modifier of the method/constructor at the specified AST.private static AccessModifierOption
getAccessModifierFromModifiersTokenDirectly
(DetailAST modifiersToken) ReturnsAccessModifierOption
based on the information about access modifier taken from the given token of typeTokenTypes.MODIFIERS
.static DetailAST
getFirstNode
(DetailAST node) Finds sub-node for given node minimal (line, column) pair.private static int
getSmallestIndent
(List<String> lines) Helper method for stripIndentAndInitialNewLineFromTextBlock, to determine the smallest indent in a text block string literal.static AccessModifierOption
Returns the access modifier of the surrounding "block".Retrieves the names of the type parameters to the node.getTypeParameters
(DetailAST node) Retrieves the type parameters to the node.static boolean
isBeforeInSource
(DetailAST ast1, DetailAST ast2) Retrieves whether ast1 is located before ast2.private static boolean
Returns whether a token represents an ELSE.static boolean
Returns whether a token represents an ELSE as part of an ELSE / IF set.private static boolean
Returns whether a token represents an SLIST as part of an ELSE statement.static boolean
isEqualsMethod
(DetailAST ast) Tests whether a method definition AST defines an equals covariant.static boolean
isGetterMethod
(DetailAST ast) Returns whether an AST represents a getter method.static boolean
isNonVoidMethod
(DetailAST methodDefAst) Checks whether a method is a not void one.static boolean
isReceiverParameter
(DetailAST parameterDefAst) Checks whether a parameter is a receiver.static boolean
isSetterMethod
(DetailAST ast) Returns whether an AST represents a setter method.private static int
Helper method to find the index of the last non-whitespace character in a string.parseClassNames
(String... classNames) Create set of class names and short class names.static double
parseDouble
(String text, int type) Returns the value represented by the specified string of the specified type.private static double
parseNumber
(String text, int radix, int type) Parses the string argument as an integer or a long in the radix specified by the second argument.static String
stripIndentAndInitialNewLineFromTextBlock
(String textBlockContent) Strip initial newline and preceding whitespace on each line from text block content.private static String
stripIndentAndTrailingWhitespaceFromLine
(String line, int indent) Helper method for stripIndentAndInitialNewLineFromTextBlock, strips correct indent from string, and trailing whitespace, or returns empty string if no text.
-
Field Details
-
BASE_2
private static final int BASE_2Binary radix.- See Also:
-
BASE_8
private static final int BASE_8Octal radix.- See Also:
-
BASE_10
private static final int BASE_10Decimal radix.- See Also:
-
BASE_16
private static final int BASE_16Hex radix.- See Also:
-
SETTER_GETTER_MAX_CHILDREN
private static final int SETTER_GETTER_MAX_CHILDRENMaximum children allowed in setter/getter.- See Also:
-
SETTER_BODY_SIZE
private static final int SETTER_BODY_SIZEMaximum nodes allowed in a body of setter.- See Also:
-
GETTER_BODY_SIZE
private static final int GETTER_BODY_SIZEMaximum nodes allowed in a body of getter.- See Also:
-
UNDERSCORE_PATTERN
Pattern matching underscore characters ('_'). -
SETTER_PATTERN
Pattern matching names of setter methods. -
GETTER_PATTERN
Pattern matching names of getter methods. -
ALL_NEW_LINES
Compiled pattern for all system newlines.
-
-
Constructor Details
-
CheckUtil
private CheckUtil()Prevent instances.
-
-
Method Details
-
isEqualsMethod
Tests whether a method definition AST defines an equals covariant.- Parameters:
ast
- the method definition AST to test. Precondition: ast is a TokenTypes.METHOD_DEF node.- Returns:
- true if ast defines an equals covariant.
-
isElseIf
Returns whether a token represents an ELSE as part of an ELSE / IF set.- Parameters:
ast
- the token to check- Returns:
- whether it is
-
isElse
Returns whether a token represents an ELSE.- Parameters:
ast
- the token to check- Returns:
- whether the token represents an ELSE
-
isElseWithCurlyBraces
Returns whether a token represents an SLIST as part of an ELSE statement.- Parameters:
ast
- the token to check- Returns:
- whether the toke does represent an SLIST as part of an ELSE
-
parseDouble
Returns the value represented by the specified string of the specified type. Returns 0 for types other than float, double, int, and long.- Parameters:
text
- the string to be parsed.type
- the token type of the text. Should be a constant ofTokenTypes
.- Returns:
- the double value represented by the string argument.
-
parseNumber
Parses the string argument as an integer or a long in the radix specified by the second argument. The characters in the string must all be digits of the specified radix.- Parameters:
text
- the String containing the integer representation to be parsed. Precondition: text contains a parsable int.radix
- the radix to be used while parsing text.type
- the token type of the text. Should be a constant ofTokenTypes
.- Returns:
- the number represented by the string argument in the specified radix.
-
getFirstNode
Finds sub-node for given node minimal (line, column) pair.- Parameters:
node
- the root of tree for search.- Returns:
- sub-node with minimal (line, column) pair.
-
isBeforeInSource
Retrieves whether ast1 is located before ast2.- Parameters:
ast1
- the first node.ast2
- the second node.- Returns:
- true, if ast1 is located before ast2.
-
getTypeParameterNames
Retrieves the names of the type parameters to the node.- Parameters:
node
- the parameterized AST node- Returns:
- a list of type parameter names
-
getTypeParameters
Retrieves the type parameters to the node.- Parameters:
node
- the parameterized AST node- Returns:
- a list of type parameter names
-
isSetterMethod
Returns whether an AST represents a setter method.- Parameters:
ast
- the AST to check with- Returns:
- whether the AST represents a setter method
-
isGetterMethod
Returns whether an AST represents a getter method.- Parameters:
ast
- the AST to check with- Returns:
- whether the AST represents a getter method
-
isNonVoidMethod
Checks whether a method is a not void one.- Parameters:
methodDefAst
- the method node.- Returns:
- true if method is a not void one.
-
isReceiverParameter
Checks whether a parameter is a receiver.- Parameters:
parameterDefAst
- the parameter node.- Returns:
- true if the parameter is a receiver.
-
getAccessModifierFromModifiersToken
Returns the access modifier of the method/constructor at the specified AST. If the method is in an interface or annotation block, the access modifier is assumed to be public.- Parameters:
ast
- the token of the method/constructor.- Returns:
- the access modifier of the method/constructor.
-
getAccessModifierFromModifiersTokenDirectly
private static AccessModifierOption getAccessModifierFromModifiersTokenDirectly(DetailAST modifiersToken) ReturnsAccessModifierOption
based on the information about access modifier taken from the given token of typeTokenTypes.MODIFIERS
.- Parameters:
modifiersToken
- token of typeTokenTypes.MODIFIERS
.- Returns:
AccessModifierOption
.- Throws:
IllegalArgumentException
- when expected non-null modifiersToken with type 'MODIFIERS'
-
getSurroundingAccessModifier
Returns the access modifier of the surrounding "block".- Parameters:
node
- the node to return the access modifier for- Returns:
- the access modifier of the surrounding block
-
parseClassNames
Create set of class names and short class names.- Parameters:
classNames
- array of class names.- Returns:
- set of class names and short class names.
-
stripIndentAndInitialNewLineFromTextBlock
Strip initial newline and preceding whitespace on each line from text block content. In order to be consistent with how javac handles this task, we have modeled this implementation after the code from: github.com/openjdk/jdk14u/blob/master/src/java.base/share/classes/java/lang/String.java- Parameters:
textBlockContent
- the actual content of the text block.- Returns:
- string consistent with javac representation.
-
stripIndentAndTrailingWhitespaceFromLine
Helper method for stripIndentAndInitialNewLineFromTextBlock, strips correct indent from string, and trailing whitespace, or returns empty string if no text.- Parameters:
line
- the string to strip indent and trailing whitespace fromindent
- the amount of indent to remove- Returns:
- modified string with removed indent and trailing whitespace, or empty string.
-
getSmallestIndent
Helper method for stripIndentAndInitialNewLineFromTextBlock, to determine the smallest indent in a text block string literal.- Parameters:
lines
- list of actual text block content, split by line.- Returns:
- number of spaces representing the smallest indent in this text block.
-
lastIndexOfNonWhitespace
Helper method to find the index of the last non-whitespace character in a string.- Parameters:
line
- the string to find the last index of a non-whitespace character for.- Returns:
- the index of the last non-whitespace character.
-