Class MissingDeprecatedCheck
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
-
- com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
-
- com.puppycrawl.tools.checkstyle.api.AbstractCheck
-
- com.puppycrawl.tools.checkstyle.checks.javadoc.AbstractJavadocCheck
-
- com.puppycrawl.tools.checkstyle.checks.annotation.MissingDeprecatedCheck
-
- All Implemented Interfaces:
Configurable
,Contextualizable
public final class MissingDeprecatedCheck extends AbstractJavadocCheck
Verifies that the annotation@Deprecated
and the Javadoc tag@deprecated
are both present when either of them is present.Both ways of flagging deprecation serve their own purpose. The @Deprecated annotation is used for compilers and development tools. The @deprecated javadoc tag is used to document why something is deprecated and what, if any, alternatives exist.
In order to properly mark something as deprecated both forms of deprecation should be present.
Package deprecation is an exception to the rule of always using the javadoc tag and annotation to deprecate. It is not clear if the javadoc tool will support it or not as newer versions keep flip-flopping on if it is supported or will cause an error. See JDK-8160601. The deprecated javadoc tag is currently the only way to say why the package is deprecated and what to use instead. Until this is resolved, if you don't want to print violations on package-info, you can use a filter to ignore these files until the javadoc tool faithfully supports it. An example config using SuppressionSingleFilter is:
<!-- required till https://bugs.openjdk.org/browse/JDK-8160601 --> <module name="SuppressionSingleFilter"> <property name="checks" value="MissingDeprecatedCheck"/> <property name="files" value="package-info\.java"/> </module>
-
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
.
Parent is
com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
-
annotation.missing.deprecated
-
javadoc.duplicateTag
-
javadoc.missed.html.close
-
javadoc.parse.rule.error
-
javadoc.unclosedHtml
-
javadoc.wrong.singleton.html.tag
- Since:
- 5.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
-
Field Summary
Fields Modifier and Type Field Description private static String
DEPRECATED
Deprecated
annotation name.private static String
FQ_DEPRECATED
Fully-qualifiedDeprecated
annotation name.static String
MSG_KEY_ANNOTATION_MISSING_DEPRECATED
A key is pointing to the warning message text in "messages.properties" file.static String
MSG_KEY_JAVADOC_DUPLICATE_TAG
A key is pointing to the warning message text in "messages.properties" file.private static BitSet
TYPES_HASH_SET
Token types to find parent of.-
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, MSG_KEY_UNCLOSED_HTML_TAG
-
-
Constructor Summary
Constructors Constructor Description MissingDeprecatedCheck()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
containsDeprecatedTag(DetailNode javadoc)
Checks to see if the javadoc contains a deprecated tag.int[]
getDefaultJavadocTokens()
Returns the default javadoc token types a check is interested in.private static DetailAST
getParent(DetailAST commentBlock)
Returns the parent node of the comment.int[]
getRequiredJavadocTokens()
The javadoc tokens that this check must be registered for.void
visitJavadocToken(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, getFilePath, 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.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
-
-
-
Field Detail
-
MSG_KEY_ANNOTATION_MISSING_DEPRECATED
public static final String MSG_KEY_ANNOTATION_MISSING_DEPRECATED
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
MSG_KEY_JAVADOC_DUPLICATE_TAG
public static final String MSG_KEY_JAVADOC_DUPLICATE_TAG
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
DEPRECATED
private static final String DEPRECATED
Deprecated
annotation name.- See Also:
- Constant Field Values
-
FQ_DEPRECATED
private static final String FQ_DEPRECATED
Fully-qualifiedDeprecated
annotation name.- See Also:
- Constant Field Values
-
TYPES_HASH_SET
private static final BitSet TYPES_HASH_SET
Token types to find parent of.
-
-
Constructor Detail
-
MissingDeprecatedCheck
public MissingDeprecatedCheck()
-
-
Method Detail
-
getDefaultJavadocTokens
public int[] getDefaultJavadocTokens()
Description copied from class:AbstractJavadocCheck
Returns the default javadoc token types a check is interested in.- Specified by:
getDefaultJavadocTokens
in classAbstractJavadocCheck
- Returns:
- the default javadoc token types
- See Also:
JavadocTokenTypes
-
getRequiredJavadocTokens
public int[] getRequiredJavadocTokens()
Description copied from class:AbstractJavadocCheck
The javadoc tokens that this check must be registered for.- Overrides:
getRequiredJavadocTokens
in classAbstractJavadocCheck
- Returns:
- the javadoc token set this must be registered for.
- See Also:
JavadocTokenTypes
-
visitJavadocToken
public void visitJavadocToken(DetailNode ast)
Description copied from class:AbstractJavadocCheck
Called to process a Javadoc token.- Specified by:
visitJavadocToken
in classAbstractJavadocCheck
- Parameters:
ast
- the token to process
-
containsDeprecatedTag
private boolean containsDeprecatedTag(DetailNode javadoc)
Checks to see if the javadoc contains a deprecated tag.- Parameters:
javadoc
- the javadoc of the AST- Returns:
- true if contains the tag
-
-