public class RightCurlyCheck extends AbstractCheck
Checks the placement of right curly braces (''}) for code blocks. This check supports
if-else, try-catch-finally blocks, while-loops, for-loops,
method definitions, class definitions, constructor definitions,
instance, static initialization blocks, annotation definitions and enum definitions.
For right curly brace of expression blocks of arrays, lambdas and class instances
please follow issue
#5945.
For right curly brace of enum constant please follow issue
#7519.
option - Specify the policy on placement of a right curly brace
('}').
Type is com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyOption.
Default value is same.
tokens - tokens to check
Type is int[].
Default value is:
LITERAL_TRY,
LITERAL_CATCH,
LITERAL_FINALLY,
LITERAL_IF,
LITERAL_ELSE.
To configure the check:
<module name="RightCurly"/>
Example:
public class Test {
public void test() {
if (foo) {
bar();
} // violation, right curly must be in the same line as the 'else' keyword
else {
bar();
}
if (foo) {
bar();
} else { // OK
bar();
}
if (foo) { bar(); } int i = 0; // violation
// ^^^ statement is not allowed on same line after curly right brace
if (foo) { bar(); } // OK
int i = 0;
try {
bar();
} // violation, rightCurly must be in the same line as 'catch' keyword
catch (Exception e) {
bar();
}
try {
bar();
} catch (Exception e) { // OK
bar();
}
} // OK
public void testSingleLine() { bar(); } // OK, because singleline is allowed
}
To configure the check with policy alone for else and
METHOD_DEF tokens:
<module name="RightCurly"> <property name="option" value="alone"/> <property name="tokens" value="LITERAL_ELSE, METHOD_DEF"/> </module>
Example:
public class Test {
public void test() {
if (foo) {
bar();
} else { bar(); } // violation, right curly must be alone on line
if (foo) {
bar();
} else {
bar();
} // OK
try {
bar();
} catch (Exception e) { // OK because config is set to token METHOD_DEF and LITERAL_ELSE
bar();
}
} // OK
public void violate() { bar; } // violation, singleline is not allowed here
public void ok() {
bar();
} // OK
}
To configure the check with policy alone_or_singleline for if
and
METHOD_DEF
tokens:
<module name="RightCurly"> <property name="option" value="alone_or_singleline"/> <property name="tokens" value="LITERAL_IF, METHOD_DEF"/> </module>
Example:
public class Test {
public void test() {
if (foo) {
bar();
} else { // violation, right curly must be alone on line
bar();
}
if (foo) {
bar();
} // OK
else {
bar();
}
try {
bar();
} catch (Exception e) { // OK because config did not set token LITERAL_TRY
bar();
}
} // OK
public void violate() { bar(); } // OK , because singleline
}
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
line.alone
line.break.before
line.same
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
static String |
MSG_KEY_LINE_ALONE
A key is pointing to the warning message text in "messages.properties"
file.
|
static String |
MSG_KEY_LINE_BREAK_BEFORE
A key is pointing to the warning message text in "messages.properties"
file.
|
static String |
MSG_KEY_LINE_SAME
A key is pointing to the warning message text in "messages.properties"
file.
|
| Constructor and Description |
|---|
RightCurlyCheck() |
| Modifier and Type | Method and Description |
|---|---|
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.
|
void |
setOption(String optionStr)
Setter to specify the policy on placement of a right curly brace (
'}'). |
void |
visitToken(DetailAST ast)
Called to process a token.
|
beginTree, clearMessages, destroy, finishTree, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokensfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildpublic static final String MSG_KEY_LINE_BREAK_BEFORE
public static final String MSG_KEY_LINE_ALONE
public static final String MSG_KEY_LINE_SAME
public RightCurlyCheck()
public void setOption(String optionStr)
'}').optionStr - string to decode option fromIllegalArgumentException - if unable to decodepublic int[] getDefaultTokens()
AbstractCheckgetDefaultTokens in class AbstractCheckTokenTypespublic int[] getAcceptableTokens()
AbstractCheckgetAcceptableTokens in class AbstractCheckTokenTypespublic int[] getRequiredTokens()
AbstractCheckgetRequiredTokens in class AbstractCheckTokenTypespublic void visitToken(DetailAST ast)
AbstractCheckvisitToken in class AbstractCheckast - the token to processCopyright © 2001–2020. All rights reserved.