public class JavadocStyleCheck extends AbstractCheck
Modifier and Type | Field and Description |
---|---|
private static java.util.Set<java.lang.String> |
ALLOWED_TAGS
HTML tags that are allowed in java docs.
|
private boolean |
checkEmptyJavadoc
Indicates if empty javadoc statements should be checked.
|
private boolean |
checkFirstSentence
Indicates if the first sentence should be checked for proper end of
sentence punctuation.
|
private boolean |
checkHtml
Indicates if the HTML within the comment should be checked.
|
private java.util.regex.Pattern |
endOfSentenceFormat
Format for matching the end of a sentence.
|
private Scope |
excludeScope
The visibility scope where Javadoc comments shouldn't be checked.
|
static java.lang.String |
MSG_EMPTY
Message property key for the Unclosed HTML message.
|
static java.lang.String |
MSG_EXTRA_HTML
Message property key for the Extra HTML message.
|
static java.lang.String |
MSG_INCOMPLETE_TAG
Message property key for the Unclosed HTML message.
|
static java.lang.String |
MSG_JAVADOC_MISSING
Message property key for the Unclosed HTML message.
|
static java.lang.String |
MSG_NO_PERIOD
Message property key for the Unclosed HTML message.
|
static java.lang.String |
MSG_UNCLOSED_HTML
Message property key for the Unclosed HTML message.
|
private Scope |
scope
The scope to check.
|
private static java.util.Set<java.lang.String> |
SINGLE_TAGS
HTML tags that do not require a close tag.
|
Constructor and Description |
---|
JavadocStyleCheck() |
Modifier and Type | Method and Description |
---|---|
private void |
checkComment(DetailAST ast,
TextBlock comment)
Performs the various checks against the Javadoc comment.
|
private void |
checkFirstSentenceEnding(DetailAST ast,
TextBlock comment)
Checks that the first sentence ends with proper punctuation.
|
private void |
checkHtmlTags(DetailAST ast,
TextBlock comment)
Checks the comment for HTML tags that do not have a corresponding close
tag or a close tag that has no previous open tag.
|
private void |
checkJavadocIsNotEmpty(TextBlock comment)
Checks that the Javadoc is not empty.
|
private void |
checkUnclosedTags(java.util.Deque<HtmlTag> htmlStack,
java.lang.String token)
Checks to see if there are any unclosed tags on the stack.
|
private static int |
findTextStart(java.lang.String line)
Finds the index of the first non-whitespace character ignoring the
Javadoc comment start and end strings (/** and */) as well as any
leading asterisk.
|
int[] |
getAcceptableTokens()
The configurable token set.
|
private static java.lang.String |
getCommentText(java.lang.String... comments)
Returns the comment text from the Javadoc.
|
int[] |
getDefaultTokens()
Returns the default token a check is interested in.
|
int[] |
getRequiredTokens()
The tokens that this check must be registered for.
|
private static boolean |
isAllowedTag(HtmlTag tag)
Determines if the HtmlTag is one which is allowed in a javadoc.
|
private static boolean |
isExtraHtml(java.lang.String token,
java.util.Deque<HtmlTag> htmlStack)
Determines if the given token is an extra HTML tag.
|
private static boolean |
isSingleTag(HtmlTag tag)
Determines if the HtmlTag is one which does not require a close tag.
|
void |
setCheckEmptyJavadoc(boolean flag)
Sets the flag that determines if empty Javadoc checking should be done.
|
void |
setCheckFirstSentence(boolean flag)
Sets the flag that determines if the first sentence is checked for
proper end of sentence punctuation.
|
void |
setCheckHtml(boolean flag)
Sets the flag that determines if HTML checking is to be performed.
|
void |
setEndOfSentenceFormat(java.util.regex.Pattern pattern)
Set the format for matching the end of a sentence.
|
void |
setExcludeScope(Scope excludeScope)
Set the excludeScope.
|
void |
setScope(Scope scope)
Sets the scope to check.
|
private boolean |
shouldCheck(DetailAST ast)
Whether we should check this node.
|
private static void |
trimTail(java.lang.StringBuilder builder)
Trims any trailing whitespace or the end of Javadoc comment string.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
beginTree, destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
public static final java.lang.String MSG_JAVADOC_MISSING
public static final java.lang.String MSG_EMPTY
public static final java.lang.String MSG_NO_PERIOD
public static final java.lang.String MSG_INCOMPLETE_TAG
public static final java.lang.String MSG_UNCLOSED_HTML
public static final java.lang.String MSG_EXTRA_HTML
private static final java.util.Set<java.lang.String> SINGLE_TAGS
private static final java.util.Set<java.lang.String> ALLOWED_TAGS
private Scope scope
private Scope excludeScope
private java.util.regex.Pattern endOfSentenceFormat
private boolean checkFirstSentence
private boolean checkHtml
private boolean checkEmptyJavadoc
public int[] getDefaultTokens()
AbstractCheck
getDefaultTokens
in class AbstractCheck
TokenTypes
public int[] getAcceptableTokens()
AbstractCheck
getAcceptableTokens
in class AbstractCheck
TokenTypes
public int[] getRequiredTokens()
AbstractCheck
getRequiredTokens
in class AbstractCheck
TokenTypes
public void visitToken(DetailAST ast)
AbstractCheck
visitToken
in class AbstractCheck
ast
- the token to processprivate boolean shouldCheck(DetailAST ast)
ast
- a given node.private void checkComment(DetailAST ast, TextBlock comment)
ast
- the AST of the element being documentedcomment
- the source lines that make up the Javadoc comment.checkFirstSentenceEnding(DetailAST, TextBlock)
,
checkHtmlTags(DetailAST, TextBlock)
private void checkFirstSentenceEnding(DetailAST ast, TextBlock comment)
ast
- the current nodecomment
- the source lines that make up the Javadoc comment.private void checkJavadocIsNotEmpty(TextBlock comment)
comment
- the source lines that make up the Javadoc comment.private static java.lang.String getCommentText(java.lang.String... comments)
comments
- the lines of Javadoc.private static int findTextStart(java.lang.String line)
line
- the Javadoc comment line of text to scan.private static void trimTail(java.lang.StringBuilder builder)
builder
- the StringBuilder to trim.private void checkHtmlTags(DetailAST ast, TextBlock comment)
ast
- the node with the Javadoccomment
- the TextBlock
which represents
the Javadoc comment.private void checkUnclosedTags(java.util.Deque<HtmlTag> htmlStack, java.lang.String token)
htmlStack
- the stack of opened HTML tags.token
- the current HTML tag name that has been closed.private static boolean isSingleTag(HtmlTag tag)
tag
- the HtmlTag to check.true
if the HtmlTag is a single tag.private static boolean isAllowedTag(HtmlTag tag)
tag
- the HtmlTag to check.true
if the HtmlTag is an allowed html tag.private static boolean isExtraHtml(java.lang.String token, java.util.Deque<HtmlTag> htmlStack)
token
- an HTML tag id for which a close was found.htmlStack
- a Stack of previous open HTML tags.false
if a previous open tag was found
for the token.public void setScope(Scope scope)
scope
- a scope.public void setExcludeScope(Scope excludeScope)
excludeScope
- a scope.public void setEndOfSentenceFormat(java.util.regex.Pattern pattern)
pattern
- a pattern.public void setCheckFirstSentence(boolean flag)
flag
- true
if the first sentence is to be checkedpublic void setCheckHtml(boolean flag)
flag
- true
if HTML checking is to be performed.public void setCheckEmptyJavadoc(boolean flag)
flag
- true
if empty Javadoc checking should be done.