Class LeftCurlyCheck
- 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.blocks.LeftCurlyCheck
-
- All Implemented Interfaces:
Configurable
,Contextualizable
public class LeftCurlyCheck extends AbstractCheck
Checks the placement of left curly braces on types, methods and other blocks:
LITERAL_CATCH
,LITERAL_DO
,LITERAL_ELSE
,LITERAL_FINALLY
,LITERAL_FOR
,LITERAL_IF
,LITERAL_SWITCH
,LITERAL_SYNCHRONIZED
,LITERAL_TRY
,LITERAL_WHILE
,STATIC_INIT
,LAMBDA
.The policy to verify is specified using the
LeftCurlyOption
class and defaults toLeftCurlyOption.EOL
. PoliciesLeftCurlyOption.EOL
andLeftCurlyOption.NLOW
take into account property maxLineLength. The default value for maxLineLength is 80.An example of how to configure the check is:
<module name="LeftCurly"/>
An example of how to configure the check with policy
LeftCurlyOption.NLOW
and maxLineLength 120 is:<module name="LeftCurly"> <property name="option" value="nlow"/> <property name="maxLineLength" value="120"/> < /module>
An example of how to configure the check to validate enum definitions:
<module name="LeftCurly"> <property name="ignoreEnums" value="false"/> </module>
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
ignoreEnums
If true, Check will ignore enums.static java.lang.String
MSG_KEY_LINE_BREAK_AFTER
A key is pointing to the warning message text in "messages.properties" file.static java.lang.String
MSG_KEY_LINE_NEW
A key is pointing to the warning message text in "messages.properties" file.static java.lang.String
MSG_KEY_LINE_PREVIOUS
A key is pointing to the warning message text in "messages.properties" file.private static java.lang.String
OPEN_CURLY_BRACE
Open curly brace literal.private LeftCurlyOption
option
The policy to enforce.
-
Constructor Summary
Constructors Constructor Description LeftCurlyCheck()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private static DetailAST
findLastAnnotation(DetailAST modifiers)
Find the last token of typeTokenTypes.ANNOTATION
under the given set of modifiers.int[]
getAcceptableTokens()
The configurable token set.int[]
getDefaultTokens()
Returns the default token a check is interested in.private static DetailAST
getFirstAnnotationOnSameLine(DetailAST annotation)
Returns first annotation on same line.int[]
getRequiredTokens()
The tokens that this check must be registered for.private boolean
hasLineBreakAfter(DetailAST leftCurly)
Checks if left curly has line break after.void
setIgnoreEnums(boolean ignoreEnums)
Sets whether check should ignore enums when left curly brace policy is EOL.void
setMaxLineLength(int maxLineLength)
Deprecated.since 6.10 release, option is not required for the Check.void
setOption(java.lang.String optionStr)
Set the option to enforce.private static DetailAST
skipAnnotationOnlyLines(DetailAST ast)
Skip lines that only containTokenTypes.ANNOTATION
s.private void
validateEol(DetailAST brace, java.lang.String braceLine)
Validate EOL case.private void
validateNewLinePosition(DetailAST brace, DetailAST startToken, java.lang.String braceLine)
Validate token on new Line position.private void
verifyBrace(DetailAST brace, DetailAST startToken)
Verifies that a specified left curly brace is placed correctly according to policy.void
visitToken(DetailAST ast)
Called to process a token.-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
beginTree, destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, 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_LINE_NEW
public static final java.lang.String MSG_KEY_LINE_NEW
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
MSG_KEY_LINE_PREVIOUS
public static final java.lang.String MSG_KEY_LINE_PREVIOUS
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
MSG_KEY_LINE_BREAK_AFTER
public static final java.lang.String MSG_KEY_LINE_BREAK_AFTER
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
OPEN_CURLY_BRACE
private static final java.lang.String OPEN_CURLY_BRACE
Open curly brace literal.- See Also:
- Constant Field Values
-
ignoreEnums
private boolean ignoreEnums
If true, Check will ignore enums.
-
option
private LeftCurlyOption option
The policy to enforce.
-
-
Method Detail
-
setOption
public void setOption(java.lang.String optionStr)
Set the option to enforce.- Parameters:
optionStr
- string to decode option from- Throws:
java.lang.IllegalArgumentException
- if unable to decode
-
setMaxLineLength
@Deprecated public void setMaxLineLength(int maxLineLength)
Deprecated.since 6.10 release, option is not required for the Check.Sets the maximum line length used in calculating the placement of the left curly brace.- Parameters:
maxLineLength
- the max allowed line length
-
setIgnoreEnums
public void setIgnoreEnums(boolean ignoreEnums)
Sets whether check should ignore enums when left curly brace policy is EOL.- Parameters:
ignoreEnums
- check's option for ignoring enums.
-
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
-
visitToken
public void visitToken(DetailAST ast)
Description copied from class:AbstractCheck
Called to process a token.- Overrides:
visitToken
in classAbstractCheck
- Parameters:
ast
- the token to process
-
skipAnnotationOnlyLines
private static DetailAST skipAnnotationOnlyLines(DetailAST ast)
Skip lines that only containTokenTypes.ANNOTATION
s. If the receivedDetailAST
has annotations within its modifiers then first token on the line of the first token after all annotations is return. This might be an annotation. Otherwise, the receivedDetailAST
is returned.- Parameters:
ast
-DetailAST
.- Returns:
DetailAST
.
-
getFirstAnnotationOnSameLine
private static DetailAST getFirstAnnotationOnSameLine(DetailAST annotation)
Returns first annotation on same line.- Parameters:
annotation
- last annotation on the line- Returns:
- first annotation on same line.
-
findLastAnnotation
private static DetailAST findLastAnnotation(DetailAST modifiers)
Find the last token of typeTokenTypes.ANNOTATION
under the given set of modifiers.- Parameters:
modifiers
-DetailAST
.- Returns:
DetailAST
or null if there are no annotations.
-
verifyBrace
private void verifyBrace(DetailAST brace, DetailAST startToken)
Verifies that a specified left curly brace is placed correctly according to policy.- Parameters:
brace
- token for left curly bracestartToken
- token for start of expression
-
validateEol
private void validateEol(DetailAST brace, java.lang.String braceLine)
Validate EOL case.- Parameters:
brace
- brace ASTbraceLine
- line content
-
validateNewLinePosition
private void validateNewLinePosition(DetailAST brace, DetailAST startToken, java.lang.String braceLine)
Validate token on new Line position.- Parameters:
brace
- brace ASTstartToken
- start TokenbraceLine
- content of line with Brace
-
hasLineBreakAfter
private boolean hasLineBreakAfter(DetailAST leftCurly)
Checks if left curly has line break after.- Parameters:
leftCurly
- Left curly token.- Returns:
- True, left curly has line break after.
-
-