Package net.sourceforge.pmd
Class RuleSets
- java.lang.Object
-
- net.sourceforge.pmd.RuleSets
-
public class RuleSets extends Object
Grouping of Rules per Language in a RuleSet.- Author:
- pieter_van_raemdonck - Application Engineers NV/SA - www.ae.be
-
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddRuleSet(RuleSet ruleSet)Add a ruleset for a language.booleanapplies(File file)Check if a given source file should be checked by rules in this RuleSets.voidapply(List<Node> acuList, RuleContext ctx, Language language)Apply all applicable rules to the compilation units.voidend(RuleContext ctx)Notify all rules of the end of processing.Set<Rule>getAllRules()Return all rules from all rulesets.RuleSet[]getAllRuleSets()Get all the RuleSets.longgetChecksum()Retrieves a checksum of the rulesets being used.RulegetRuleByName(String ruleName)Returns the first Rule found with the given name.Iterator<RuleSet>getRuleSetsIterator()voidremoveDysfunctionalRules(Collection<Rule> collector)Remove and collect any rules that report problems.intruleCount()Determines the total count of rules that are used in all rule sets.voidstart(RuleContext ctx)Notify all rules of the start of processing.booleanusesDFA(Language language)Deprecated.SeeRule.isDfa()booleanusesMultifile(Language language)Deprecated.booleanusesTypeResolution(Language language)Deprecated.
-
-
-
Constructor Detail
-
RuleSets
public RuleSets()
Public constructor.
-
RuleSets
public RuleSets(RuleSets ruleSets)
Copy constructor. Deep copies RuleSets.- Parameters:
ruleSets- The RuleSets to copy.
-
RuleSets
public RuleSets(RuleSet ruleSet)
Public constructor. Add the given rule set.- Parameters:
ruleSet- the RuleSet
-
-
Method Detail
-
addRuleSet
public void addRuleSet(RuleSet ruleSet)
Add a ruleset for a language. Only one ruleset can be added for a specific language. If ruleSet.getLanguage() is null, it is assumed to be a RuleSet of java rules.- Parameters:
ruleSet- the RuleSet
-
getAllRuleSets
public RuleSet[] getAllRuleSets()
Get all the RuleSets.- Returns:
- RuleSet[]
-
applies
public boolean applies(File file)
Check if a given source file should be checked by rules in this RuleSets.- Parameters:
file- the source file to check- Returns:
trueif the file should be checked,falseotherwise
-
start
public void start(RuleContext ctx)
Notify all rules of the start of processing.
-
apply
public void apply(List<Node> acuList, RuleContext ctx, Language language)
Apply all applicable rules to the compilation units. Applicable means the language of the rules must match the language of the source (@see applies).- Parameters:
acuList- the List of compilation units; the type these must have, depends on the source languagectx- the RuleContextlanguage- the Language of the source
-
end
public void end(RuleContext ctx)
Notify all rules of the end of processing.
-
usesDFA
@Deprecated public boolean usesDFA(Language language)
Deprecated.SeeRule.isDfa()Check if the rules that apply to a source of the given language use DFA.- Parameters:
language- the language of a source- Returns:
- true if any rule in the RuleSet needs the DFA layer
-
getRuleByName
public Rule getRuleByName(String ruleName)
Returns the first Rule found with the given name. 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
-
ruleCount
public int ruleCount()
Determines the total count of rules that are used in all rule sets.- Returns:
- the count
-
usesTypeResolution
@Deprecated public boolean usesTypeResolution(Language language)
Deprecated.Does any Rule for the given Language use Type Resolution?- Parameters:
language- The Language.- Returns:
trueif a Rule for the Language uses Type Resolution,falseotherwise.
-
usesMultifile
@Deprecated public boolean usesMultifile(Language language)
Deprecated.Does any Rule for the given Language use multi-file analysis?- Parameters:
language- The Language.- Returns:
trueif a Rule for the Language uses multi file analysis,falseotherwise.
-
removeDysfunctionalRules
public void removeDysfunctionalRules(Collection<Rule> collector)
Remove and collect any rules that report problems.- Parameters:
collector-
-
getChecksum
public long getChecksum()
Retrieves a checksum of the rulesets being used. Any change to any rule of any ruleset should trigger a checksum change.- Returns:
- The checksum for this ruleset collection.
-
-