public class SuppressWithNearbyCommentFilter extends AutomaticBean implements Filter
A filter that uses nearby comments to suppress audit events.
This check is philosophically similar to SuppressionCommentFilter.
Unlike SuppressionCommentFilter, this filter does not require
pairs of comments. This check may be used to suppress warnings in the
current line:
offendingLine(for, whatever, reason); // SUPPRESS ParameterNumberCheck
or it may be configured to span multiple lines, either forward:
// PERMIT MultipleVariableDeclarations NEXT 3 LINES
double x1 = 1.0, y1 = 0.0, z1 = 0.0;
double x2 = 0.0, y2 = 1.0, z2 = 0.0;
double x3 = 0.0, y3 = 0.0, z3 = 1.0;
or reverse:
try {
thirdPartyLibrary.method();
} catch (RuntimeException ex) {
// ALLOW ILLEGAL CATCH BECAUSE third party API wraps everything
// in RuntimeExceptions.
...
}
See SuppressionCommentFilter for usage notes.
| Modifier and Type | Class and Description |
|---|---|
static class |
SuppressWithNearbyCommentFilter.Tag
A Tag holds a suppression comment and its location.
|
| Modifier and Type | Field and Description |
|---|---|
private boolean |
checkC
Whether to look for trigger in C-style comments.
|
private boolean |
checkCPP
Whether to look for trigger in C++-style comments.
|
private java.lang.String |
checkFormat
The comment pattern that triggers suppression.
|
private java.util.regex.Pattern |
commentFormat
Parsed comment regexp that marks checkstyle suppression region.
|
private static java.lang.String |
DEFAULT_CHECK_FORMAT
Default regex for checks that should be suppressed.
|
private static java.lang.String |
DEFAULT_COMMENT_FORMAT
Format to turns checkstyle reporting off.
|
private static java.lang.String |
DEFAULT_INFLUENCE_FORMAT
Default regex for lines that should be suppressed.
|
private java.lang.ref.WeakReference<FileContents> |
fileContentsReference
References the current FileContents for this filter.
|
private java.lang.String |
influenceFormat
The influence of the suppression comment.
|
private java.lang.String |
messageFormat
The message format to suppress.
|
private java.util.List<SuppressWithNearbyCommentFilter.Tag> |
tags
Tagged comments.
|
| Constructor and Description |
|---|
SuppressWithNearbyCommentFilter() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
accept(AuditEvent event)
Determines whether or not a filtered AuditEvent is accepted.
|
private void |
addTag(java.lang.String text,
int line)
Adds a comment suppression
Tag to the list of all tags. |
FileContents |
getFileContents()
Returns FileContents for this filter.
|
private boolean |
matchesTag(AuditEvent event)
Whether current event matches any tag from
tags. |
void |
setCheckC(boolean checkC)
Set whether to look in C comments.
|
void |
setCheckCPP(boolean checkCpp)
Set whether to look in C++ comments.
|
void |
setCheckFormat(java.lang.String format)
Set the format for a check.
|
void |
setCommentFormat(java.util.regex.Pattern pattern)
Set the format for a comment that turns off reporting.
|
void |
setFileContents(FileContents fileContents)
Set the FileContents for this filter.
|
void |
setInfluenceFormat(java.lang.String format)
Set the format for the influence of this check.
|
void |
setMessageFormat(java.lang.String format)
Set the format for a message.
|
private void |
tagCommentLine(java.lang.String text,
int line)
Tags a string if it matches the format for turning
checkstyle reporting on or the format for turning reporting off.
|
private void |
tagSuppressions()
Collects all the suppression tags for all comments into a list and
sorts the list.
|
private void |
tagSuppressions(java.util.Collection<TextBlock> comments)
Appends the suppressions in a collection of comments to the full
set of suppression tags.
|
configure, contextualize, finishLocalSetup, getConfiguration, setupChildprivate static final java.lang.String DEFAULT_COMMENT_FORMAT
private static final java.lang.String DEFAULT_CHECK_FORMAT
private static final java.lang.String DEFAULT_INFLUENCE_FORMAT
private final java.util.List<SuppressWithNearbyCommentFilter.Tag> tags
private boolean checkC
private boolean checkCPP
private java.util.regex.Pattern commentFormat
private java.lang.String checkFormat
private java.lang.String messageFormat
private java.lang.String influenceFormat
private java.lang.ref.WeakReference<FileContents> fileContentsReference
public final void setCommentFormat(java.util.regex.Pattern pattern)
pattern - a pattern.public FileContents getFileContents()
public void setFileContents(FileContents fileContents)
fileContents - the FileContents for this filter.public final void setCheckFormat(java.lang.String format)
format - a String valuepublic void setMessageFormat(java.lang.String format)
format - a String valuepublic final void setInfluenceFormat(java.lang.String format)
format - a String valuepublic void setCheckCPP(boolean checkCpp)
checkCpp - true if C++ comments are checked.public void setCheckC(boolean checkC)
checkC - true if C comments are checked.public boolean accept(AuditEvent event)
Filterprivate boolean matchesTag(AuditEvent event)
tags.private void tagSuppressions()
private void tagSuppressions(java.util.Collection<TextBlock> comments)
comments - the set of comments.private void tagCommentLine(java.lang.String text,
int line)
text - the string to tag.line - the line number of text.private void addTag(java.lang.String text,
int line)
Tag to the list of all tags.text - the text of the tag.line - the line number of the tag.