public class RightCurlyCheck extends AbstractCheck
Checks the placement of right curly braces.
The policy to verify is specified using the RightCurlyOption class
and defaults to RightCurlyOption.SAME.
By default the check will check the following tokens:
LITERAL_TRY,
LITERAL_CATCH,
LITERAL_FINALLY,
LITERAL_IF,
LITERAL_ELSE.
Other acceptable tokens are:
CLASS_DEF,
METHOD_DEF,
CTOR_DEF.
LITERAL_FOR.
LITERAL_WHILE.
LITERAL_DO.
STATIC_INIT.
INSTANCE_INIT.
LAMBDA.
shouldStartLine - does the check need to check if right curly starts line. Default value is true
An example of how to configure the check is:
<module name="RightCurly"/>
An example of how to configure the check with policy
RightCurlyOption.ALONE for else and
{@link TokenTypes#METHOD_DEF METHOD_DEF}tokens is:
<module name="RightCurly">
<property name="tokens" value="LITERAL_ELSE"/>
<property name="option" value="alone"/>
</module>
| Modifier and Type | Class and Description |
|---|---|
private static class |
RightCurlyCheck.Details
Structure that contains all details for validation.
|
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
MSG_KEY_LINE_ALONE
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_KEY_LINE_BREAK_BEFORE
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_SAME
A key is pointing to the warning message text in "messages.properties"
file.
|
private RightCurlyOption |
option
The policy to enforce.
|
private boolean |
shouldStartLine
Do we need to check if right curly starts line.
|
| 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.
|
private static boolean |
hasLineBreakBefore(DetailAST rightCurly)
Checks if right curly has line break before.
|
private static boolean |
isAloneOnLine(RightCurlyCheck.Details details)
Checks whether right curly is alone on a line.
|
private static boolean |
isAnonInnerClassInit(DetailAST lcurly)
Checks whether lcurly is in anonymous inner class initialization.
|
private static boolean |
isEmptyBody(DetailAST lcurly)
Checks if definition body is empty.
|
private static boolean |
isOnStartOfLine(RightCurlyCheck.Details details,
java.lang.String targetSourceLine)
Whether right curly brace starts target source line.
|
private static boolean |
isSingleLineBlock(RightCurlyCheck.Details details)
Checks whether block has a single-line format.
|
void |
setOption(java.lang.String optionStr)
Sets the option to enforce.
|
void |
setShouldStartLine(boolean flag)
Does the check need to check if right curly starts line.
|
private static boolean |
shouldBeAloneOnLine(RightCurlyOption bracePolicy,
RightCurlyCheck.Details details)
Checks that a right curly should be alone on a line.
|
private static boolean |
shouldBeAloneOnLineWithAloneOption(RightCurlyCheck.Details details)
Whether right curly should be alone on line when ALONE option is used.
|
private static boolean |
shouldBeAloneOnLineWithAloneOrSinglelineOption(RightCurlyCheck.Details details)
Whether right curly should be alone on line when ALONE_OR_SINGLELINE option is used.
|
private static boolean |
shouldBeOnSameLine(RightCurlyOption bracePolicy,
RightCurlyCheck.Details details)
Checks that a right curly should be on the same line as the next statement.
|
private static boolean |
shouldHaveLineBreakBefore(RightCurlyOption bracePolicy,
RightCurlyCheck.Details details)
Checks whether a right curly should have a line break before.
|
private java.lang.String |
validate(RightCurlyCheck.Details details)
Does general validation.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
beginTree, destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokensgetCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverityconfigure, contextualize, finishLocalSetup, getConfiguration, setupChildpublic static final java.lang.String MSG_KEY_LINE_BREAK_BEFORE
public static final java.lang.String MSG_KEY_LINE_ALONE
public static final java.lang.String MSG_KEY_LINE_SAME
public static final java.lang.String MSG_KEY_LINE_NEW
private boolean shouldStartLine
private RightCurlyOption option
public void setOption(java.lang.String optionStr)
optionStr - string to decode option fromjava.lang.IllegalArgumentException - if unable to decodepublic void setShouldStartLine(boolean flag)
flag - new value of this property.public 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 processprivate java.lang.String validate(RightCurlyCheck.Details details)
details - for validation.private static boolean shouldHaveLineBreakBefore(RightCurlyOption bracePolicy, RightCurlyCheck.Details details)
bracePolicy - option for placing the right curly brace.details - details for validation.private static boolean shouldBeOnSameLine(RightCurlyOption bracePolicy, RightCurlyCheck.Details details)
bracePolicy - option for placing the right curly bracedetails - Details for validationprivate static boolean shouldBeAloneOnLine(RightCurlyOption bracePolicy, RightCurlyCheck.Details details)
bracePolicy - option for placing the right curly bracedetails - Details for validationprivate static boolean shouldBeAloneOnLineWithAloneOption(RightCurlyCheck.Details details)
details - details for validation.private static boolean shouldBeAloneOnLineWithAloneOrSinglelineOption(RightCurlyCheck.Details details)
details - details for validation.private static boolean isOnStartOfLine(RightCurlyCheck.Details details, java.lang.String targetSourceLine)
details - Details of right curly brace for validationtargetSourceLine - source line to checkprivate static boolean isAloneOnLine(RightCurlyCheck.Details details)
details - for validation.private static boolean isSingleLineBlock(RightCurlyCheck.Details details)
details - for validation.private static boolean isAnonInnerClassInit(DetailAST lcurly)
lcurly - left curly token.private static boolean isEmptyBody(DetailAST lcurly)
lcurly - left curly.private static boolean hasLineBreakBefore(DetailAST rightCurly)
rightCurly - right curly token.