Package net.sourceforge.pmd.lang.rule
Class RuleSet
- java.lang.Object
-
- net.sourceforge.pmd.lang.rule.RuleSet
-
- All Implemented Interfaces:
net.sourceforge.pmd.cache.internal.ChecksumAware
public class RuleSet extends Object implements net.sourceforge.pmd.cache.internal.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 Modifier and Type Method Description static RuleSet
copy(RuleSet original)
Creates a copy of the given ruleset.static RuleSet
create(String name, String description, String fileName, Collection<Pattern> excludePatterns, Collection<Pattern> includePatterns, Iterable<? extends Rule> rules)
Creates a new ruleset with the given metadata such as name, description, fileName, exclude/include patterns are used.boolean
equals(Object o)
Two rulesets are equals, if they have the same name and contain the same rules.static RuleSet
forSingleRule(Rule rule)
Creates a new ruleset containing a single rule.long
getChecksum()
Retrieves the current instance checksumString
getDescription()
List<Pattern>
getFileExclusions()
Returns the file exclusion patterns as an unmodifiable list.List<Pattern>
getFileInclusions()
Returns the file inclusion patterns as an unmodifiable list.String
getFileName()
String
getName()
Rule
getRuleByName(String ruleName)
Returns the first Rule found with the given name (case-sensitive).Collection<Rule>
getRules()
Returns the actual Collection of rules in this rulesetint
hashCode()
void
removeDysfunctionalRules(Collection<Rule> collector)
Remove and collect any misconfigured rules.int
size()
Returns the number of rules in this ruleset
-
-
-
Constructor Detail
-
RuleSet
public RuleSet(RuleSet rs)
-
-
Method Detail
-
forSingleRule
public static RuleSet forSingleRule(Rule rule)
Creates a new ruleset containing a single rule. The ruleset will have default description, name, and null file name.- Parameters:
rule
- The rule being created- Returns:
- The newly created RuleSet
-
create
public static RuleSet create(String name, String description, String fileName, Collection<Pattern> excludePatterns, Collection<Pattern> includePatterns, Iterable<? extends Rule> rules)
Creates a new ruleset with the given metadata such as name, description, fileName, exclude/include patterns are used. The rules are taken from the given collection.Note: The rule instances are shared between the collection and the new ruleset (copy-by-reference). This might lead to concurrency issues, if the rules of the collection are also referenced by other rulesets and used in different threads.
- Parameters:
name
- the name of the rulesetdescription
- the descriptionfileName
- the filenameexcludePatterns
- list of exclude patternsincludePatterns
- list of include patterns, that override the exclude patternsrules
- the collection with the rules to add to the new ruleset- Returns:
- the new ruleset
- Throws:
NullPointerException
- If any parameter is null, or the collections contain null elements
-
copy
public static RuleSet copy(RuleSet original)
Creates a copy of the given ruleset. All properties like name, description, fileName and exclude/include patterns are copied.Note: The rule instances are shared between the original and the new ruleset (copy-by-reference). This might lead to concurrency issues, if the original ruleset and the new ruleset are used in different threads.
- Parameters:
original
- the original rule set to copy from- Returns:
- the copy
-
size
public int size()
Returns the number of rules in this ruleset- Returns:
- an int representing the number of rules
-
getRules
public 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(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
-
equals
public boolean equals(Object o)
Two rulesets are equals, if they have the same name and contain the same rules.
-
getFileName
public String getFileName()
-
getName
public String getName()
-
getDescription
public String getDescription()
-
getFileExclusions
public List<Pattern> getFileExclusions()
Returns the file exclusion patterns as an unmodifiable list.
-
getFileInclusions
public List<Pattern> getFileInclusions()
Returns the file inclusion patterns as an unmodifiable list.
-
removeDysfunctionalRules
public void removeDysfunctionalRules(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:net.sourceforge.pmd.cache.internal.ChecksumAware
Retrieves the current instance checksum- Specified by:
getChecksum
in interfacenet.sourceforge.pmd.cache.internal.ChecksumAware
- Returns:
- The current checksum
-
-