Class SuppressWithNearbyCommentFilter
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.api.AutomaticBean
-
- com.puppycrawl.tools.checkstyle.filters.SuppressWithNearbyCommentFilter
-
- All Implemented Interfaces:
Configurable
,Contextualizable
,Filter
public class SuppressWithNearbyCommentFilter extends AutomaticBean implements Filter
A filter that uses nearby comments to suppress audit events.
This check is philosophically similar to
SuppressionCommentFilter
. UnlikeSuppressionCommentFilter
, 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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SuppressWithNearbyCommentFilter.Tag
A Tag holds a suppression comment and its location.
-
Field Summary
Fields Modifier and Type Field 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 Summary
Constructors Constructor Description SuppressWithNearbyCommentFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 suppressionTag
to the list of all tags.FileContents
getFileContents()
Returns FileContents for this filter.private boolean
matchesTag(AuditEvent event)
Whether current event matches any tag fromtags
.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.-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
-
-
-
-
Field Detail
-
DEFAULT_COMMENT_FORMAT
private static final java.lang.String DEFAULT_COMMENT_FORMAT
Format to turns checkstyle reporting off.- See Also:
- Constant Field Values
-
DEFAULT_CHECK_FORMAT
private static final java.lang.String DEFAULT_CHECK_FORMAT
Default regex for checks that should be suppressed.- See Also:
- Constant Field Values
-
DEFAULT_INFLUENCE_FORMAT
private static final java.lang.String DEFAULT_INFLUENCE_FORMAT
Default regex for lines that should be suppressed.- See Also:
- Constant Field Values
-
tags
private final java.util.List<SuppressWithNearbyCommentFilter.Tag> tags
Tagged comments.
-
checkC
private boolean checkC
Whether to look for trigger in C-style comments.
-
checkCPP
private boolean checkCPP
Whether to look for trigger in C++-style comments.
-
commentFormat
private java.util.regex.Pattern commentFormat
Parsed comment regexp that marks checkstyle suppression region.
-
checkFormat
private java.lang.String checkFormat
The comment pattern that triggers suppression.
-
messageFormat
private java.lang.String messageFormat
The message format to suppress.
-
influenceFormat
private java.lang.String influenceFormat
The influence of the suppression comment.
-
fileContentsReference
private java.lang.ref.WeakReference<FileContents> fileContentsReference
References the current FileContents for this filter. Since this is a weak reference to the FileContents, the FileContents can be reclaimed as soon as the strong references in TreeWalker and FileContentsHolder are reassigned to the next FileContents, at which time filtering for the current FileContents is finished.
-
-
Method Detail
-
setCommentFormat
public final void setCommentFormat(java.util.regex.Pattern pattern)
Set the format for a comment that turns off reporting.- Parameters:
pattern
- a pattern.
-
getFileContents
public FileContents getFileContents()
Returns FileContents for this filter.- Returns:
- the FileContents for this filter.
-
setFileContents
public void setFileContents(FileContents fileContents)
Set the FileContents for this filter.- Parameters:
fileContents
- the FileContents for this filter.
-
setCheckFormat
public final void setCheckFormat(java.lang.String format)
Set the format for a check.- Parameters:
format
- aString
value
-
setMessageFormat
public void setMessageFormat(java.lang.String format)
Set the format for a message.- Parameters:
format
- aString
value
-
setInfluenceFormat
public final void setInfluenceFormat(java.lang.String format)
Set the format for the influence of this check.- Parameters:
format
- aString
value
-
setCheckCPP
public void setCheckCPP(boolean checkCpp)
Set whether to look in C++ comments.- Parameters:
checkCpp
-true
if C++ comments are checked.
-
setCheckC
public void setCheckC(boolean checkC)
Set whether to look in C comments.- Parameters:
checkC
-true
if C comments are checked.
-
accept
public boolean accept(AuditEvent event)
Description copied from interface:Filter
Determines whether or not a filtered AuditEvent is accepted.
-
matchesTag
private boolean matchesTag(AuditEvent event)
Whether current event matches any tag fromtags
.
-
tagSuppressions
private void tagSuppressions()
Collects all the suppression tags for all comments into a list and sorts the list.
-
tagSuppressions
private void tagSuppressions(java.util.Collection<TextBlock> comments)
Appends the suppressions in a collection of comments to the full set of suppression tags.- Parameters:
comments
- the set of comments.
-
tagCommentLine
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.- Parameters:
text
- the string to tag.line
- the line number of text.
-
addTag
private void addTag(java.lang.String text, int line)
Adds a comment suppressionTag
to the list of all tags.- Parameters:
text
- the text of the tag.line
- the line number of the tag.
-
-