Class LeftCurlyCheck
- 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.blocks.LeftCurlyCheck
-
- All Implemented Interfaces:
Configurable
,Contextualizable
public class LeftCurlyCheck extends AbstractCheck
Checks for the placement of left curly braces ('{'
) for code blocks.-
Property
ignoreEnums
- Allow to ignore enums when left curly brace policy is EOL. Type isboolean
. Default value istrue
. -
Property
option
- Specify the policy on placement of a left curly brace ('{'
). Type iscom.puppycrawl.tools.checkstyle.checks.blocks.LeftCurlyOption
. Default value iseol
. -
Property
tokens
- tokens to check Type isjava.lang.String[]
. Validation type istokenSet
. Default value is: ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF, INTERFACE_DEF, LAMBDA, LITERAL_CASE, LITERAL_CATCH, LITERAL_DEFAULT, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF, OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF.
Parent is
com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
-
line.break.after
-
line.new
-
line.previous
- Since:
- 3.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
ignoreEnums
Allow to ignore enums when left curly brace policy is EOL.static String
MSG_KEY_LINE_BREAK_AFTER
A key is pointing to the warning message text in "messages.properties" file.static String
MSG_KEY_LINE_NEW
A key is pointing to the warning message text in "messages.properties" file.static String
MSG_KEY_LINE_PREVIOUS
A key is pointing to the warning message text in "messages.properties" file.private static String
OPEN_CURLY_BRACE
Open curly brace literal.private LeftCurlyOption
option
Specify the policy on placement of a left curly brace ('{'
).
-
Constructor Summary
Constructors Constructor Description LeftCurlyCheck()
-
Method Summary
All Methods Static Methods Instance Methods Concrete 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.private static DetailAST
getBraceAsFirstChild(DetailAST ast)
Gets a SLIST if it is the first child of the AST.private static DetailAST
getBraceFromSwitchMember(DetailAST ast)
Gets the brace of a switch statement/ expression member.int[]
getDefaultTokens()
Returns the default token a check is interested in.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)
Setter to allow to ignore enums when left curly brace policy is EOL.void
setOption(String optionStr)
Setter to specify the policy on placement of a left curly brace ('{'
).private static DetailAST
skipModifierAnnotations(DetailAST ast)
Skip allTokenTypes.ANNOTATION
s to the first non-annotation.private void
validateEol(DetailAST brace, String braceLine)
Validate EOL case.private void
validateNewLinePosition(DetailAST brace, DetailAST startToken, 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)
Visits 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, setTokens
-
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.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
-
-
-
Field Detail
-
MSG_KEY_LINE_NEW
public static final 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 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 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 String OPEN_CURLY_BRACE
Open curly brace literal.- See Also:
- Constant Field Values
-
ignoreEnums
private boolean ignoreEnums
Allow to ignore enums when left curly brace policy is EOL.
-
option
private LeftCurlyOption option
Specify the policy on placement of a left curly brace ('{'
).
-
-
Constructor Detail
-
LeftCurlyCheck
public LeftCurlyCheck()
-
-
Method Detail
-
setOption
public void setOption(String optionStr)
Setter to specify the policy on placement of a left curly brace ('{'
).- Parameters:
optionStr
- string to decode option from- Throws:
IllegalArgumentException
- if unable to decode- Since:
- 3.0
-
setIgnoreEnums
public void setIgnoreEnums(boolean ignoreEnums)
Setter to allow to ignore enums when left curly brace policy is EOL.- Parameters:
ignoreEnums
- check's option for ignoring enums.- Since:
- 6.9
-
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)
Visits token.- Overrides:
visitToken
in classAbstractCheck
- Parameters:
ast
- the token to process
-
getBraceFromSwitchMember
@Nullable private static DetailAST getBraceFromSwitchMember(DetailAST ast)
Gets the brace of a switch statement/ expression member.- Parameters:
ast
-DetailAST
.- Returns:
DetailAST
if the first child isTokenTypes.SLIST
,null
otherwise.
-
getBraceAsFirstChild
@Nullable private static DetailAST getBraceAsFirstChild(DetailAST ast)
Gets a SLIST if it is the first child of the AST.- Parameters:
ast
-DetailAST
.- Returns:
DetailAST
if the first child isTokenTypes.SLIST
,null
otherwise.
-
skipModifierAnnotations
private static DetailAST skipModifierAnnotations(DetailAST ast)
Skip allTokenTypes.ANNOTATION
s to the first non-annotation.- Parameters:
ast
-DetailAST
.- Returns:
DetailAST
.
-
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, String braceLine)
Validate EOL case.- Parameters:
brace
- brace ASTbraceLine
- line content
-
validateNewLinePosition
private void validateNewLinePosition(DetailAST brace, DetailAST startToken, 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.
-
-