public class EmptyLineSeparatorCheck extends AbstractCheck
Checks for empty line separators after header, package, all import declarations, fields, constructors, methods, nested classes, static initializers and instance initializers.
ATTENTION: empty line separator is required between AST siblings, not after line where token is found.
allowNoEmptyLineBetweenFields - Allow no empty line between fields.
Default value is false.
allowMultipleEmptyLines - Allow multiple empty lines between class members.
Default value is true.
allowMultipleEmptyLinesInsideClassMembers - Allow multiple
empty lines inside class members.
Default value is true.
tokens - tokens to check
Default value is:
PACKAGE_DEF,
IMPORT,
STATIC_IMPORT,
CLASS_DEF,
INTERFACE_DEF,
ENUM_DEF,
STATIC_INIT,
INSTANCE_INIT,
METHOD_DEF,
CTOR_DEF,
VARIABLE_DEF.
Example of declarations without empty line separator:
///////////////////////////////////////////////////
//HEADER
///////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.whitespace;
import java.io.Serializable;
class Foo
{
public static final int FOO_CONST = 1;
public void foo() {} //should be separated from previous statement.
}
To configure the check with default parameters:
<module name="EmptyLineSeparator"/>
Example of declarations with empty line separator that is expected by the Check by default:
///////////////////////////////////////////////////
//HEADER
///////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.whitespace;
import java.io.Serializable;
class Foo
{
public static final int FOO_CONST = 1;
public void foo() {}
}
To check empty line after VARIABLE_DEF and METHOD_DEF:
<module name="EmptyLineSeparator"> <property name="tokens" value="VARIABLE_DEF, METHOD_DEF"/> </module>
To allow no empty line between fields:
<module name="EmptyLineSeparator"> <property name="allowNoEmptyLineBetweenFields" value="true"/> </module>
Example of declarations with multiple empty lines between class members (allowed by default):
///////////////////////////////////////////////////
//HEADER
///////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.whitespace;
import java.io.Serializable;
class Foo
{
public static final int FOO_CONST = 1;
public void foo() {} //should be separated from previous statement.
}
To disallow multiple empty lines between class members:
<module name="EmptyLineSeparator"> <property name="allowMultipleEmptyLines" value="false"/> </module>
To disallow multiple empty lines inside constructor, initialization block and method:
<module name="EmptyLineSeparator"> <property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/> </module>
The check is valid only for statements that have body: CLASS_DEF, INTERFACE_DEF, ENUM_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF.
Example of declarations with multiple empty lines inside method:
///////////////////////////////////////////////////
//HEADER
///////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.whitespace;
class Foo
{
public void foo() {
System.out.println(1); // violation since method has 2 empty lines subsequently
}
}
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
MSG_MULTIPLE_LINES
A key is pointing to the warning message empty.line.separator.multiple.lines
in "messages.properties"
file.
|
static java.lang.String |
MSG_MULTIPLE_LINES_AFTER
A key is pointing to the warning message empty.line.separator.lines.after
in "messages.properties" file.
|
static java.lang.String |
MSG_MULTIPLE_LINES_INSIDE
A key is pointing to the warning message empty.line.separator.multiple.lines.inside
in "messages.properties" file.
|
static java.lang.String |
MSG_SHOULD_BE_SEPARATED
A key is pointing to the warning message empty.line.separator in "messages.properties"
file.
|
| Constructor and Description |
|---|
EmptyLineSeparatorCheck() |
| 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.
|
boolean |
isCommentNodesRequired()
Whether comment nodes are required or not.
|
void |
setAllowMultipleEmptyLines(boolean allow)
Setter to allow multiple empty lines between class members.
|
void |
setAllowMultipleEmptyLinesInsideClassMembers(boolean allow)
Setter to allow multiple empty lines inside class members.
|
void |
setAllowNoEmptyLineBetweenFields(boolean allow)
Setter to allow no empty line between fields.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
beginTree, clearMessages, destroy, finishTree, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, leaveToken, log, log, log, setFileContents, setTabWidth, setTokensfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildpublic static final java.lang.String MSG_SHOULD_BE_SEPARATED
public static final java.lang.String MSG_MULTIPLE_LINES
public static final java.lang.String MSG_MULTIPLE_LINES_AFTER
public static final java.lang.String MSG_MULTIPLE_LINES_INSIDE
public EmptyLineSeparatorCheck()
public final void setAllowNoEmptyLineBetweenFields(boolean allow)
allow - User's value.public void setAllowMultipleEmptyLines(boolean allow)
allow - User's value.public void setAllowMultipleEmptyLinesInsideClassMembers(boolean allow)
allow - User's value.public boolean isCommentNodesRequired()
AbstractCheckisCommentNodesRequired in class AbstractCheckpublic 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-2019. All Rights Reserved.