Class SuppressionXpathFilter
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
-
- com.puppycrawl.tools.checkstyle.filters.SuppressionXpathFilter
-
- All Implemented Interfaces:
Configurable
,Contextualizable
,ExternalResourceHolder
,TreeWalkerFilter
public class SuppressionXpathFilter extends AbstractAutomaticBean implements TreeWalkerFilter, ExternalResourceHolder
FilterSuppressionXpathFilter
works as SuppressionFilter. Additionally, filter processessuppress-xpath
elements, which contains xpath-expressions. Xpath-expressions are queries for suppressed nodes inside the AST tree.Currently, filter does not support the following checks:
- NoCodeInFile (reason is that AST is not generated for a file not containing code)
- Regexp (reason is at #7759)
- RegexpSinglelineJava (reason is at #7759)
Also, the filter does not support suppressions inside javadoc reported by Javadoc checks:
- AtclauseOrder
- JavadocBlockTagLocation
- JavadocMethod
- JavadocMissingLeadingAsterisk
- JavadocMissingWhitespaceAfterAsterisk
- JavadocParagraph
- JavadocStyle
- JavadocTagContinuationIndentation
- JavadocType
- MissingDeprecated
- NonEmptyAtclauseDescription
- RequireEmptyLineBeforeBlockTagGroup
- SingleLineJavadoc
- SummaryJavadoc
- WriteTag
Note, that support for these Checks will be available after resolving issue #5770.
Currently, filter supports the following xpath axes:
- ancestor
- ancestor-or-self
- attribute
- child
- descendant
- descendant-or-self
- following
- following-sibling
- parent
- preceding
- preceding-sibling
- self
You can use the command line helper tool to generate xpath suppressions based on your configuration file and input files. See here for more details.
The suppression file location is checked in following order:
- as a filesystem location
-
if no file found, and the location starts with either
http://
orhttps://
, then it is interpreted as a URL -
if no file found, then passed to the
ClassLoader.getResource()
method.
SuppressionXpathFilter can suppress Checks that have Treewalker as parent module.
-
Property
file
- Specify the location of the suppressions XML document file. Type isjava.lang.String
. Default value isnull
. -
Property
optional
- Control what to do when the file is not existing. If optional is set to false the file must exist, or else it ends with error. On the other hand if optional is true and file is not found, the filter accepts all audit events. Type isboolean
. Default value isfalse
.
Parent is
com.puppycrawl.tools.checkstyle.TreeWalker
- Since:
- 8.6
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
-
Constructor Summary
Constructors Constructor Description SuppressionXpathFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
accept(TreeWalkerAuditEvent treeWalkerAuditEvent)
Determines whether or not a filteredTreeWalkerAuditEvent
is accepted.boolean
equals(Object obj)
protected void
finishLocalSetup()
Provides a hook to finish the part of this component's setup that was not handled by the bean introspection.Set<String>
getExternalResourceLocations()
Returns a set of external configuration resource locations which are used by the module.int
hashCode()
void
setFile(String fileName)
Setter to specify the location of the suppressions XML document file.void
setOptional(boolean optional)
Setter to control what to do when the file is not existing.-
Methods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
-
-
-
Field Detail
-
filters
private final Set<TreeWalkerFilter> filters
Set of individual xpath suppresses.
-
optional
private boolean optional
Control what to do when the file is not existing. If optional is set to false the file must exist, or else it ends with error. On the other hand if optional is true and file is not found, the filter accepts all audit events.
-
-
Constructor Detail
-
SuppressionXpathFilter
public SuppressionXpathFilter()
-
-
Method Detail
-
setFile
public void setFile(String fileName)
Setter to specify the location of the suppressions XML document file.- Parameters:
fileName
- name of the suppressions file.- Since:
- 8.6
-
setOptional
public void setOptional(boolean optional)
Setter to control what to do when the file is not existing. If optional is set to false the file must exist, or else it ends with error. On the other hand if optional is true and file is not found, the filter accepts all audit events.- Parameters:
optional
- tells if config file existence is optional.- Since:
- 8.6
-
accept
public boolean accept(TreeWalkerAuditEvent treeWalkerAuditEvent)
Description copied from interface:TreeWalkerFilter
Determines whether or not a filteredTreeWalkerAuditEvent
is accepted.- Specified by:
accept
in interfaceTreeWalkerFilter
- Parameters:
treeWalkerAuditEvent
- the TreeWalkerAuditEvent to filter.- Returns:
- true if the event is accepted.
-
getExternalResourceLocations
public Set<String> getExternalResourceLocations()
Description copied from interface:ExternalResourceHolder
Returns a set of external configuration resource locations which are used by the module. ATTENTION! If 'getExternalResourceLocations()' return null, there will beNullPointerException
inChecker
. Such behaviour will signal that your module (check or filter) is designed incorrectly. It makes sense to return an empty set from 'getExternalResourceLocations()' only for composite modules likeTreeWalker
.- Specified by:
getExternalResourceLocations
in interfaceExternalResourceHolder
- Returns:
- a set of external configuration resource locations which are used by the module.
-
finishLocalSetup
protected void finishLocalSetup() throws CheckstyleException
Description copied from class:AbstractAutomaticBean
Provides a hook to finish the part of this component's setup that was not handled by the bean introspection.The default implementation does nothing.
- Specified by:
finishLocalSetup
in classAbstractAutomaticBean
- Throws:
CheckstyleException
- if there is a configuration error.
-
-