Class AbstractJavadocCheck
- 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
-
- All Implemented Interfaces:
Configurable,Contextualizable
- Direct Known Subclasses:
AtclauseOrderCheck,JavadocBlockTagLocationCheck,JavadocMetadataScraper,JavadocMissingLeadingAsteriskCheck,JavadocMissingWhitespaceAfterAsteriskCheck,JavadocParagraphCheck,JavadocTagContinuationIndentationCheck,MissingDeprecatedCheck,NonEmptyAtclauseDescriptionCheck,RequireEmptyLineBeforeBlockTagGroupCheck,SingleLineJavadocCheck,SummaryJavadocCheck
public abstract class AbstractJavadocCheck extends AbstractCheck
Base class for Checks that process Javadoc comments.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classAbstractJavadocCheck.FileContextThe file context holder.-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
AutomaticBean.OutputStreamOptions
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.ThreadLocal<AbstractJavadocCheck.FileContext>contextThe file context.private java.util.Set<java.lang.Integer>javadocTokensThe javadoc tokens the check is interested in.static java.lang.StringMSG_JAVADOC_MISSED_HTML_CLOSEMessage key of error message.static java.lang.StringMSG_JAVADOC_PARSE_RULE_ERRORParse error while rule recognition.static java.lang.StringMSG_JAVADOC_WRONG_SINGLETON_TAGMessage key of error message.private static java.lang.ThreadLocal<java.util.Map<LineColumn,JavadocDetailNodeParser.ParseStatus>>TREE_CACHEKey is "line:column".private booleanviolateExecutionOnNonTightHtmlThis property determines if a check should log a violation upon encountering javadoc with non-tight html.
-
Constructor Summary
Constructors Constructor Description AbstractJavadocCheck()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleanacceptJavadocWithNonTightHtml()This method determines if a check should process javadoc containing non-tight html tags.voidbeginJavadocTree(DetailNode rootAst)Called before the starting to process a tree.voidbeginTree(DetailAST rootAST)Called before the starting to process a tree.voiddestroy()Destroy the check.voidfinishJavadocTree(DetailNode rootAst)Called after finished processing a tree.voidfinishTree(DetailAST rootAST)Called after finished processing a tree.int[]getAcceptableJavadocTokens()The configurable javadoc token set.int[]getAcceptableTokens()The configurable token set.protected DetailASTgetBlockCommentAst()Getter for block comment in Java language syntax tree.abstract int[]getDefaultJavadocTokens()Returns the default javadoc token types a check is interested in.int[]getDefaultTokens()Defined final to not allow JavadocChecks to change default tokens.int[]getRequiredJavadocTokens()The javadoc tokens that this check must be registered for.int[]getRequiredTokens()The tokens that this check must be registered for.voidinit()Initialize the check.booleanisCommentNodesRequired()Defined final because all JavadocChecks require comment nodes.voidleaveJavadocToken(DetailNode ast)Called after all the child nodes have been process.private voidprocessTree(DetailNode root)Processes JavadocAST tree notifying Check.voidsetJavadocTokens(java.lang.String... strRep)Adds a set of tokens the check is interested in.voidsetViolateExecutionOnNonTightHtml(boolean shouldReportViolation)Setter to control when to print violations if the Javadoc being examined by this check violates the tight html rules defined at Tight-HTML Rules.private booleanshouldBeProcessed(DetailNode curNode)Checks whether the current node should be processed by the check.private voidvalidateDefaultJavadocTokens()Validates that check's required javadoc tokens are subset of default javadoc tokens.abstract voidvisitJavadocToken(DetailNode ast)Called to process a Javadoc token.voidvisitToken(DetailAST blockCommentNode)Called to process a token.private voidwalk(DetailNode root)Processes a node calling Check at interested nodes.-
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_JAVADOC_MISSED_HTML_CLOSE
public static final java.lang.String MSG_JAVADOC_MISSED_HTML_CLOSE
Message key of error message. Missed close HTML tag breaks structure of parse tree, so parser stops parsing and generates such error message. This case is special because parser prints error like"no viable alternative at input 'b \n *\n'"and it is not clear that error is about missed close HTML tag.- See Also:
- Constant Field Values
-
MSG_JAVADOC_WRONG_SINGLETON_TAG
public static final java.lang.String MSG_JAVADOC_WRONG_SINGLETON_TAG
Message key of error message.- See Also:
- Constant Field Values
-
MSG_JAVADOC_PARSE_RULE_ERROR
public static final java.lang.String MSG_JAVADOC_PARSE_RULE_ERROR
Parse error while rule recognition.- See Also:
- Constant Field Values
-
TREE_CACHE
private static final java.lang.ThreadLocal<java.util.Map<LineColumn,JavadocDetailNodeParser.ParseStatus>> TREE_CACHE
Key is "line:column". Value isDetailNodetree. Map is stored inThreadLocalto guarantee basic thread safety and avoid shared, mutable state when not necessary.
-
context
private final java.lang.ThreadLocal<AbstractJavadocCheck.FileContext> context
The file context.
-
javadocTokens
private final java.util.Set<java.lang.Integer> javadocTokens
The javadoc tokens the check is interested in.
-
violateExecutionOnNonTightHtml
private boolean violateExecutionOnNonTightHtml
This property determines if a check should log a violation upon encountering javadoc with non-tight html. The default return value for this method is set to false since checks generally tend to be fine with non tight html. It can be set through config file if a check is to log violation upon encountering non-tight HTML in javadoc.
-
-
Constructor Detail
-
AbstractJavadocCheck
public AbstractJavadocCheck()
-
-
Method Detail
-
getDefaultJavadocTokens
public abstract int[] getDefaultJavadocTokens()
Returns the default javadoc token types a check is interested in.- Returns:
- the default javadoc token types
- See Also:
JavadocTokenTypes
-
visitJavadocToken
public abstract void visitJavadocToken(DetailNode ast)
Called to process a Javadoc token.- Parameters:
ast- the token to process
-
getAcceptableJavadocTokens
public int[] getAcceptableJavadocTokens()
The configurable javadoc token set. Used to protect Checks against malicious users who specify an unacceptable javadoc token set in the configuration file. The default implementation returns the check's default javadoc tokens.- Returns:
- the javadoc token set this check is designed for.
- See Also:
JavadocTokenTypes
-
getRequiredJavadocTokens
public int[] getRequiredJavadocTokens()
The javadoc tokens that this check must be registered for.- Returns:
- the javadoc token set this must be registered for.
- See Also:
JavadocTokenTypes
-
acceptJavadocWithNonTightHtml
public boolean acceptJavadocWithNonTightHtml()
This method determines if a check should process javadoc containing non-tight html tags. This method must be overridden in checks extendingAbstractJavadocCheckwhich are not supposed to process javadoc containing non-tight html tags.- Returns:
- true if the check should or can process javadoc containing non-tight html tags; false otherwise
- See Also:
JavadocDetailNodeParser.ParseStatus.isNonTight(), Tight HTML rules
-
setViolateExecutionOnNonTightHtml
public final void setViolateExecutionOnNonTightHtml(boolean shouldReportViolation)
Setter to control when to print violations if the Javadoc being examined by this check violates the tight html rules defined at Tight-HTML Rules.- Parameters:
shouldReportViolation- value to which the field shall be set to
-
setJavadocTokens
public final void setJavadocTokens(java.lang.String... strRep)
Adds a set of tokens the check is interested in.- Parameters:
strRep- the string representation of the tokens interested in
-
init
public void init()
Description copied from class:AbstractCheckInitialize the check. This is the time to verify that the check has everything required to perform it job.- Overrides:
initin classAbstractCheck
-
validateDefaultJavadocTokens
private void validateDefaultJavadocTokens()
Validates that check's required javadoc tokens are subset of default javadoc tokens.- Throws:
java.lang.IllegalStateException- when validation of default javadoc tokens fails
-
beginJavadocTree
public void beginJavadocTree(DetailNode rootAst)
Called before the starting to process a tree.- Parameters:
rootAst- the root of the tree
-
finishJavadocTree
public void finishJavadocTree(DetailNode rootAst)
Called after finished processing a tree.- Parameters:
rootAst- the root of the tree
-
leaveJavadocToken
public void leaveJavadocToken(DetailNode ast)
Called after all the child nodes have been process.- Parameters:
ast- the token leaving
-
getDefaultTokens
public final int[] getDefaultTokens()
Defined final to not allow JavadocChecks to change default tokens.- Specified by:
getDefaultTokensin classAbstractCheck- Returns:
- default tokens
- See Also:
TokenTypes
-
getAcceptableTokens
public final int[] getAcceptableTokens()
Description copied from class:AbstractCheckThe configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.- Specified by:
getAcceptableTokensin classAbstractCheck- Returns:
- the token set this check is designed for.
- See Also:
TokenTypes
-
getRequiredTokens
public final int[] getRequiredTokens()
Description copied from class:AbstractCheckThe tokens that this check must be registered for.- Specified by:
getRequiredTokensin classAbstractCheck- Returns:
- the token set this must be registered for.
- See Also:
TokenTypes
-
isCommentNodesRequired
public final boolean isCommentNodesRequired()
Defined final because all JavadocChecks require comment nodes.- Overrides:
isCommentNodesRequiredin classAbstractCheck- Returns:
- true
-
beginTree
public final void beginTree(DetailAST rootAST)
Description copied from class:AbstractCheckCalled before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.- Overrides:
beginTreein classAbstractCheck- Parameters:
rootAST- the root of the tree
-
finishTree
public final void finishTree(DetailAST rootAST)
Description copied from class:AbstractCheckCalled after finished processing a tree. Ideal place to report on information collected whilst processing a tree.- Overrides:
finishTreein classAbstractCheck- Parameters:
rootAST- the root of the tree
-
visitToken
public final void visitToken(DetailAST blockCommentNode)
Description copied from class:AbstractCheckCalled to process a token.- Overrides:
visitTokenin classAbstractCheck- Parameters:
blockCommentNode- the token to process
-
getBlockCommentAst
protected DetailAST getBlockCommentAst()
Getter for block comment in Java language syntax tree.- Returns:
- A block comment in the syntax tree.
-
processTree
private void processTree(DetailNode root)
Processes JavadocAST tree notifying Check.- Parameters:
root- root of JavadocAST tree.
-
walk
private void walk(DetailNode root)
Processes a node calling Check at interested nodes.- Parameters:
root- the root of tree for process
-
shouldBeProcessed
private boolean shouldBeProcessed(DetailNode curNode)
Checks whether the current node should be processed by the check.- Parameters:
curNode- current node.- Returns:
- true if the current node should be processed by the check.
-
destroy
public void destroy()
Description copied from class:AbstractCheckDestroy the check. It is being retired from service.- Overrides:
destroyin classAbstractCheck
-
-