Class SingleLineJavadocCheck
- 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.javadoc.AbstractJavadocCheck
-
- com.puppycrawl.tools.checkstyle.checks.javadoc.SingleLineJavadocCheck
-
- All Implemented Interfaces:
Configurable,Contextualizable
public class SingleLineJavadocCheck extends AbstractJavadocCheck
Checks that a Javadoc block can fit in a single line and doesn't contain block tags. Javadoc comment that contains at least one block tag should be formatted in a few lines.
-
Property
violateExecutionOnNonTightHtml- Control when to print violations if the Javadoc being examined by this check violates the tight html rules defined at Tight-HTML Rules. Type isboolean. Default value isfalse. -
Property
ignoredTags- Specify block tags which are ignored by the check. Type isjava.lang.String[]. Default value is"". -
Property
ignoreInlineTags- Control whether inline tags must be ignored. Type isboolean. Default value istrue.
To configure the check:
<module name="SingleLineJavadoc"/>
Example:
/** @see Math */ // violation, javadoc should be multiline public int foo() { return 42; } /** * @return 42 */ // ok public int bar() { return 42; } /** {@link #equals(Object)} */ // ok public int baz() { return 42; } /** * <p>the answer to the ultimate question */ // ok public int magic() { return 42; } /** * <p>the answer to the ultimate question</p> */ // ok public int foobar() { return 42; }To configure the check with a list of ignored block tags:
<module name="SingleLineJavadoc"> <property name="ignoredTags" value="@inheritDoc, @see"/> </module>
Example:
/** @see Math */ // ok public int foo() { return 42; } /** * @return 42 */ // ok public int bar() { return 42; } /** {@link #equals(Object)} */ // ok public int baz() { return 42; } /** * <p>the answer to the ultimate question */ // ok public int magic() { return 42; } /** * <p>the answer to the ultimate question</p> */ // ok public int foobar() { return 42; }To configure the check to not ignore inline tags:
<module name="SingleLineJavadoc"> <property name="ignoreInlineTags" value="false"/> </module>
Example:
/** @see Math */ // violation, javadoc should be multiline public int foo() { return 42; } /** * @return 42 */ // ok public int bar() { return 42; } /** {@link #equals(Object)} */ // violation, javadoc should be multiline public int baz() { return 42; } /** * <p>the answer to the ultimate question */ // ok public int magic() { return 42; } /** * <p>the answer to the ultimate question</p> */ // ok public int foobar() { return 42; }To configure the check to report violations for Tight-HTML Rules:
<module name="SingleLineJavadoc"> <property name="violateExecutionOnNonTightHtml" value="true"/> </module>
Example:
/** @see Math */ // violation, javadoc should be multiline public int foo() { return 42; } /** * @return 42 */ // ok public int bar() { return 42; } /** {@link #equals(Object)} */ // ok public int baz() { return 42; } /** * <p>the answer to the ultimate question */ // violation, unclosed HTML tag found: p public int magic() { return 42; } /** * <p>the answer to the ultimate question</p> */ // ok public int foobar() { return 42; }Parent is
com.puppycrawl.tools.checkstyle.TreeWalkerViolation Message Keys:
-
javadoc.missed.html.close -
javadoc.parse.rule.error -
javadoc.wrong.singleton.html.tag -
singleline.javadoc
- Since:
- 6.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
AutomaticBean.OutputStreamOptions
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.String>ignoredTagsSpecify block tags which are ignored by the check.private booleanignoreInlineTagsControl whether inline tags must be ignored.static java.lang.StringMSG_KEYA key is pointing to the warning message text in "messages.properties" file.-
Fields inherited from class com.puppycrawl.tools.checkstyle.checks.javadoc.AbstractJavadocCheck
MSG_JAVADOC_MISSED_HTML_CLOSE, MSG_JAVADOC_PARSE_RULE_ERROR, MSG_JAVADOC_WRONG_SINGLETON_TAG
-
-
Constructor Summary
Constructors Constructor Description SingleLineJavadocCheck()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int[]getDefaultJavadocTokens()Returns the default javadoc token types a check is interested in.int[]getRequiredJavadocTokens()The javadoc tokens that this check must be registered for.private booleanhasJavadocInlineTags(DetailNode javadocRoot)Checks if comment has in-line tags which are not ignored.private booleanhasJavadocTags(DetailNode javadocRoot)Checks if comment has javadoc tags which are not ignored.private static booleanisSingleLineJavadoc(DetailAST blockCommentStart)Checks if comment is single line comment.private booleanisTagIgnored(DetailNode javadocTagSection)Checks if list of ignored tags contains javadocTagSection's javadoc tag.voidsetIgnoredTags(java.lang.String... tags)Setter to specify block tags which are ignored by the check.voidsetIgnoreInlineTags(boolean ignoreInlineTags)Setter to control whether inline tags must be ignored.voidvisitJavadocToken(DetailNode ast)Called to process a Javadoc token.-
Methods inherited from class com.puppycrawl.tools.checkstyle.checks.javadoc.AbstractJavadocCheck
acceptJavadocWithNonTightHtml, beginJavadocTree, beginTree, destroy, finishJavadocTree, finishTree, getAcceptableJavadocTokens, getAcceptableTokens, getBlockCommentAst, getDefaultTokens, getRequiredTokens, init, isCommentNodesRequired, leaveJavadocToken, setJavadocTokens, setViolateExecutionOnNonTightHtml, visitToken
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
clearViolations, getFileContents, getLine, getLineCodePoints, getLines, getTabWidth, getTokenNames, getViolations, 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.api.AutomaticBean
configure, contextualize, getConfiguration, setupChild
-
-
-
-
Field Detail
-
MSG_KEY
public static final java.lang.String MSG_KEY
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
ignoredTags
private java.util.List<java.lang.String> ignoredTags
Specify block tags which are ignored by the check.
-
ignoreInlineTags
private boolean ignoreInlineTags
Control whether inline tags must be ignored.
-
-
Constructor Detail
-
SingleLineJavadocCheck
public SingleLineJavadocCheck()
-
-
Method Detail
-
setIgnoredTags
public void setIgnoredTags(java.lang.String... tags)
Setter to specify block tags which are ignored by the check.- Parameters:
tags- to be ignored by check.
-
setIgnoreInlineTags
public void setIgnoreInlineTags(boolean ignoreInlineTags)
Setter to control whether inline tags must be ignored.- Parameters:
ignoreInlineTags- whether inline tags must be ignored.
-
getDefaultJavadocTokens
public int[] getDefaultJavadocTokens()
Description copied from class:AbstractJavadocCheckReturns the default javadoc token types a check is interested in.- Specified by:
getDefaultJavadocTokensin classAbstractJavadocCheck- Returns:
- the default javadoc token types
- See Also:
JavadocTokenTypes
-
getRequiredJavadocTokens
public int[] getRequiredJavadocTokens()
Description copied from class:AbstractJavadocCheckThe javadoc tokens that this check must be registered for.- Overrides:
getRequiredJavadocTokensin classAbstractJavadocCheck- Returns:
- the javadoc token set this must be registered for.
- See Also:
JavadocTokenTypes
-
visitJavadocToken
public void visitJavadocToken(DetailNode ast)
Description copied from class:AbstractJavadocCheckCalled to process a Javadoc token.- Specified by:
visitJavadocTokenin classAbstractJavadocCheck- Parameters:
ast- the token to process
-
isSingleLineJavadoc
private static boolean isSingleLineJavadoc(DetailAST blockCommentStart)
Checks if comment is single line comment.- Parameters:
blockCommentStart- the AST tree in which a block comment starts- Returns:
- true, if comment is single line comment.
-
hasJavadocTags
private boolean hasJavadocTags(DetailNode javadocRoot)
Checks if comment has javadoc tags which are not ignored. Also works on custom tags. As block tags can be interpreted only at the beginning of a line, only the first instance is checked.- Parameters:
javadocRoot- javadoc root node.- Returns:
- true, if comment has javadoc tags which are not ignored.
- See Also:
- Block and inline tags
-
hasJavadocInlineTags
private boolean hasJavadocInlineTags(DetailNode javadocRoot)
Checks if comment has in-line tags which are not ignored.- Parameters:
javadocRoot- javadoc root node.- Returns:
- true, if comment has in-line tags which are not ignored.
- See Also:
- JavadocTags
-
isTagIgnored
private boolean isTagIgnored(DetailNode javadocTagSection)
Checks if list of ignored tags contains javadocTagSection's javadoc tag.- Parameters:
javadocTagSection- to check javadoc tag in.- Returns:
- true, if ignoredTags contains javadocTagSection's javadoc tag.
-
-