public class JavadocTypeCheck extends AbstractCheck
Checks the Javadoc comments for type definitions. By default, does
not check for author or version tags. The scope to verify is specified using the Scope
class and defaults to Scope.PRIVATE. To verify another scope, set property
scope to one of the Scope constants. To define the format for an author
tag or a version tag, set property authorFormat or versionFormat respectively to a
pattern.
Does not perform checks for author and version tags for inner classes, as they should be redundant because of outer class.
Error messages about type parameters and record components for which no param tags are present
can be suppressed by defining property allowMissingParamTags.
scope - Specify the visibility scope where Javadoc comments are checked.
Type is com.puppycrawl.tools.checkstyle.api.Scope.
Default value is private.
excludeScope - Specify the visibility scope where Javadoc
comments are not checked.
Type is com.puppycrawl.tools.checkstyle.api.Scope.
Default value is null.
authorFormat - Specify the pattern for @author tag.
Type is java.util.regex.Pattern.
Default value is null.
versionFormat - Specify the pattern for @version tag.
Type is java.util.regex.Pattern.
Default value is null.
allowMissingParamTags - Control whether to ignore violations
when a class has type parameters but does not have matching param tags in the Javadoc.
Type is boolean.
Default value is false.
allowUnknownTags - Control whether to ignore violations when
a Javadoc tag is not recognised.
Type is boolean.
Default value is false.
allowedAnnotations - Specify the list of annotations that allow
missed documentation. Only short names are allowed, e.g. Generated.
Type is java.lang.String[].
Default value is Generated.
tokens - tokens to check
Type is java.lang.String[].
Validation type is tokenSet.
Default value is:
INTERFACE_DEF,
CLASS_DEF,
ENUM_DEF,
ANNOTATION_DEF,
RECORD_DEF.
To configure the default check:
<module name="JavadocType"/>
To configure the check for public scope:
<module name="JavadocType"> <property name="scope" value="public"/> </module>
To configure the check for an @author tag:
<module name="JavadocType"> <property name="authorFormat" value="\S"/> </module>
To configure the check for a CVS revision version tag:
<module name="JavadocType"> <property name="versionFormat" value="\$Revision.*\$"/> </module>
To configure the check for private classes only:
<module name="JavadocType"> <property name="scope" value="private"/> <property name="excludeScope" value="package"/> </module>
Example that allows missing comments for classes annotated with
@SpringBootApplication and @Configuration:
@SpringBootApplication // no violations about missing comment on class
public class Application {}
@Configuration // no violations about missing comment on class
class DatabaseConfiguration {}
Use following configuration:
<module name="JavadocType"> <property name="allowedAnnotations" value="SpringBootApplication,Configuration"/> </module>
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
javadoc.unknownTag
javadoc.unusedTag
javadoc.unusedTagGeneral
type.missingTag
type.tagFormat
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
private java.util.List<java.lang.String> |
allowedAnnotations
Specify the list of annotations that allow missed documentation.
|
private boolean |
allowMissingParamTags
Control whether to ignore violations when a class has type parameters but
does not have matching param tags in the Javadoc.
|
private boolean |
allowUnknownTags
Control whether to ignore violations when a Javadoc tag is not recognised.
|
private java.util.regex.Pattern |
authorFormat
Specify the pattern for
@author tag. |
private static java.lang.String |
CLOSE_ANGLE_BRACKET
Close angle bracket literal.
|
private Scope |
excludeScope
Specify the visibility scope where Javadoc comments are not checked.
|
static java.lang.String |
MSG_MISSING_TAG
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_TAG_FORMAT
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_UNKNOWN_TAG
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_UNUSED_TAG
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_UNUSED_TAG_GENERAL
A key is pointing to the warning message text in "messages.properties"
file.
|
private static java.lang.String |
OPEN_ANGLE_BRACKET
Open angle bracket literal.
|
private Scope |
scope
Specify the visibility scope where Javadoc comments are checked.
|
private static java.lang.String |
SPACE
Space literal.
|
private static java.util.regex.Pattern |
TYPE_NAME_IN_JAVADOC_TAG
Pattern to match type name within angle brackets in javadoc param tag.
|
private static java.util.regex.Pattern |
TYPE_NAME_IN_JAVADOC_TAG_SPLITTER
Pattern to split type name field in javadoc param tag.
|
private java.util.regex.Pattern |
versionFormat
Specify the pattern for
@version tag. |
| Constructor and Description |
|---|
JavadocTypeCheck() |
| Modifier and Type | Method and Description |
|---|---|
private void |
checkComponentParamTag(DetailAST ast,
java.util.List<JavadocTag> tags,
java.lang.String recordComponentName)
Verifies that a record definition has the specified param tag for
the specified record component name.
|
private void |
checkTag(DetailAST ast,
java.util.List<JavadocTag> tags,
java.lang.String tagName,
java.util.regex.Pattern formatPattern)
Verifies that a type definition has a required tag.
|
private void |
checkTypeParamTag(DetailAST ast,
java.util.List<JavadocTag> tags,
java.lang.String typeParamName)
Verifies that a type definition has the specified param tag for
the specified type parameter name.
|
private void |
checkUnusedParamTags(java.util.List<JavadocTag> tags,
java.util.List<java.lang.String> typeParamNames,
java.util.List<java.lang.String> recordComponentNames)
Checks for unused param tags for type parameters and record components.
|
private static java.lang.String |
extractParamNameFromTag(JavadocTag tag)
Extracts parameter name from tag.
|
int[] |
getAcceptableTokens()
The configurable token set.
|
int[] |
getDefaultTokens()
Returns the default token a check is interested in.
|
private java.util.List<JavadocTag> |
getJavadocTags(TextBlock textBlock)
Gets all standalone tags from a given javadoc.
|
private static java.util.List<java.lang.String> |
getRecordComponentNames(DetailAST node)
Collects the record components in a record definition.
|
int[] |
getRequiredTokens()
The tokens that this check must be registered for.
|
void |
setAllowedAnnotations(java.lang.String... userAnnotations)
Setter to specify the list of annotations that allow missed documentation.
|
void |
setAllowMissingParamTags(boolean flag)
Setter to control whether to ignore violations when a class has type parameters but
does not have matching param tags in the Javadoc.
|
void |
setAllowUnknownTags(boolean flag)
Setter to control whether to ignore violations when a Javadoc tag is not recognised.
|
void |
setAuthorFormat(java.util.regex.Pattern pattern)
Setter to specify the pattern for
@author tag. |
void |
setExcludeScope(Scope excludeScope)
Setter to specify the visibility scope where Javadoc comments are not checked.
|
void |
setScope(Scope scope)
Setter to specify the visibility scope where Javadoc comments are checked.
|
void |
setVersionFormat(java.util.regex.Pattern pattern)
Setter to specify the pattern for
@version tag. |
private boolean |
shouldCheck(DetailAST ast)
Whether we should check this node.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
beginTree, clearViolations, destroy, finishTree, getFileContents, getLine, getLineCodePoints, getLines, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokensfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildpublic static final java.lang.String MSG_UNKNOWN_TAG
public static final java.lang.String MSG_TAG_FORMAT
public static final java.lang.String MSG_MISSING_TAG
public static final java.lang.String MSG_UNUSED_TAG
public static final java.lang.String MSG_UNUSED_TAG_GENERAL
private static final java.lang.String OPEN_ANGLE_BRACKET
private static final java.lang.String CLOSE_ANGLE_BRACKET
private static final java.lang.String SPACE
private static final java.util.regex.Pattern TYPE_NAME_IN_JAVADOC_TAG
private static final java.util.regex.Pattern TYPE_NAME_IN_JAVADOC_TAG_SPLITTER
private Scope excludeScope
private java.util.regex.Pattern authorFormat
@author tag.private java.util.regex.Pattern versionFormat
@version tag.private boolean allowMissingParamTags
private boolean allowUnknownTags
private java.util.List<java.lang.String> allowedAnnotations
Generated.public JavadocTypeCheck()
public void setScope(Scope scope)
scope - a scope.public void setExcludeScope(Scope excludeScope)
excludeScope - a scope.public void setAuthorFormat(java.util.regex.Pattern pattern)
@author tag.pattern - a pattern.public void setVersionFormat(java.util.regex.Pattern pattern)
@version tag.pattern - a pattern.public void setAllowMissingParamTags(boolean flag)
flag - a Boolean valuepublic void setAllowUnknownTags(boolean flag)
flag - a Boolean valuepublic void setAllowedAnnotations(java.lang.String... userAnnotations)
Generated.userAnnotations - user's value.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 boolean shouldCheck(DetailAST ast)
ast - a given node.private java.util.List<JavadocTag> getJavadocTags(TextBlock textBlock)
textBlock - the Javadoc comment to process.private void checkTag(DetailAST ast, java.util.List<JavadocTag> tags, java.lang.String tagName, java.util.regex.Pattern formatPattern)
ast - the AST node for the type definition.tags - tags from the Javadoc comment for the type definition.tagName - the required tag name.formatPattern - regexp for the tag value.private void checkComponentParamTag(DetailAST ast, java.util.List<JavadocTag> tags, java.lang.String recordComponentName)
ast - the AST node for the record definition.tags - tags from the Javadoc comment for the record definition.recordComponentName - the name of the type parameterprivate void checkTypeParamTag(DetailAST ast, java.util.List<JavadocTag> tags, java.lang.String typeParamName)
ast - the AST node for the type definition.tags - tags from the Javadoc comment for the type definition.typeParamName - the name of the type parameterprivate void checkUnusedParamTags(java.util.List<JavadocTag> tags, java.util.List<java.lang.String> typeParamNames, java.util.List<java.lang.String> recordComponentNames)
tags - tags from the Javadoc comment for the type definition.typeParamNames - names of type parametersrecordComponentNames - list of record component names in this definitionprivate static java.lang.String extractParamNameFromTag(JavadocTag tag)
tag - javadoc tag to extract parameter nameprivate static java.util.List<java.lang.String> getRecordComponentNames(DetailAST node)
node - the possible record definition ast.Copyright © 2001-2022. All Rights Reserved.