Package net.sourceforge.pmd
Class RuleSet
- java.lang.Object
-
- net.sourceforge.pmd.RuleSet
-
- All Implemented Interfaces:
ChecksumAware
public class RuleSet extends java.lang.Object implements ChecksumAware
This class represents a collection of rules along with some optional filter patterns that can preclude their application on specific files.- See Also:
Rule
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
applies(java.io.File file)
Check if a given source file should be checked by rules in this RuleSet.static boolean
applies(Rule rule, LanguageVersion languageVersion)
Does the given Rule apply to the given LanguageVersion?void
apply(java.util.List<? extends Node> acuList, RuleContext ctx)
Executes the rules in this ruleset against each of the given nodes.void
end(RuleContext ctx)
Triggers the end lifecycle event on each rule in the ruleset.boolean
equals(java.lang.Object o)
Two rulesets are equals, if they have the same name and contain the same rules.long
getChecksum()
Retrieves the current instance checksumjava.lang.String
getDescription()
java.util.List<java.lang.String>
getExcludePatterns()
java.lang.String
getFileName()
java.util.List<java.lang.String>
getIncludePatterns()
java.lang.String
getName()
Rule
getRuleByName(java.lang.String ruleName)
Returns the first Rule found with the given name (case-sensitive).java.util.Collection<Rule>
getRules()
Returns the actual Collection of rules in this rulesetint
hashCode()
void
removeDysfunctionalRules(java.util.Collection<Rule> collector)
Remove and collect any misconfigured rules.int
size()
Returns the number of rules in this rulesetvoid
start(RuleContext ctx)
Triggers that start lifecycle event on each rule in this ruleset.boolean
usesDFA(Language language)
Deprecated.SeeRule.isDfa()
boolean
usesMultifile(Language language)
Deprecated.boolean
usesTypeResolution(Language language)
Deprecated.
-
-
-
Constructor Detail
-
RuleSet
public RuleSet(RuleSet rs)
-
-
Method Detail
-
size
public int size()
Returns the number of rules in this ruleset- Returns:
- an int representing the number of rules
-
getRules
public java.util.Collection<Rule> getRules()
Returns the actual Collection of rules in this ruleset- Returns:
- a Collection with the rules. All objects are of type
Rule
-
getRuleByName
public Rule getRuleByName(java.lang.String ruleName)
Returns the first Rule found with the given name (case-sensitive). Note: Since we support multiple languages, rule names are not expected to be unique within any specific ruleset.- Parameters:
ruleName
- the exact name of the rule to find- Returns:
- the rule or null if not found
-
applies
public boolean applies(java.io.File file)
Check if a given source file should be checked by rules in this RuleSet. A file should not be checked if there is anexclude
pattern which matches the file, unless there is aninclude
pattern which also matches the file. In other words,include
patterns overrideexclude
patterns.- Parameters:
file
- the source file to check- Returns:
true
if the file should be checked,false
otherwise
-
start
public void start(RuleContext ctx)
Triggers that start lifecycle event on each rule in this ruleset. Some rules perform initialization tasks on start.- Parameters:
ctx
- the current context
-
apply
public void apply(java.util.List<? extends Node> acuList, RuleContext ctx)
Executes the rules in this ruleset against each of the given nodes.- Parameters:
acuList
- the node list, usually the root nodes like compilation unitsctx
- the current context
-
applies
public static boolean applies(Rule rule, LanguageVersion languageVersion)
Does the given Rule apply to the given LanguageVersion? If so, the Language must be the same and be between the minimum and maximums versions on the Rule.- Parameters:
rule
- The rule.languageVersion
- The language version.- Returns:
true
if the given rule matches the given language, which means, that the rule would be executed.
-
end
public void end(RuleContext ctx)
Triggers the end lifecycle event on each rule in the ruleset. Some rules perform a final summary calculation or cleanup in the end.- Parameters:
ctx
- the current context
-
equals
public boolean equals(java.lang.Object o)
Two rulesets are equals, if they have the same name and contain the same rules.- Overrides:
equals
in classjava.lang.Object
- Parameters:
o
- the other ruleset to compare with- Returns:
true
if o is a ruleset with the same name and rules,false
otherwise
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
getFileName
public java.lang.String getFileName()
-
getName
public java.lang.String getName()
-
getDescription
public java.lang.String getDescription()
-
getExcludePatterns
public java.util.List<java.lang.String> getExcludePatterns()
-
getIncludePatterns
public java.util.List<java.lang.String> getIncludePatterns()
-
usesDFA
@Deprecated public boolean usesDFA(Language language)
Deprecated.SeeRule.isDfa()
Does any Rule for the given Language use the DFA layer?- Parameters:
language
- The Language.- Returns:
true
if a Rule for the Language uses the DFA layer,false
otherwise.
-
usesTypeResolution
@Deprecated public boolean usesTypeResolution(Language language)
Deprecated.Does any Rule for the given Language use Type Resolution?- Parameters:
language
- The Language.- Returns:
true
if a Rule for the Language uses Type Resolution,false
otherwise.
-
usesMultifile
@Deprecated public boolean usesMultifile(Language language)
Deprecated.Does any Rule for the given Language use multi-file analysis?- Parameters:
language
- The Language.- Returns:
true
if a Rule for the Language uses multi file analysis,false
otherwise.
-
removeDysfunctionalRules
public void removeDysfunctionalRules(java.util.Collection<Rule> collector)
Remove and collect any misconfigured rules.- Parameters:
collector
- the removed rules will be added to this collection
-
getChecksum
public long getChecksum()
Description copied from interface:ChecksumAware
Retrieves the current instance checksum- Specified by:
getChecksum
in interfaceChecksumAware
- Returns:
- The current checksum
-
-