1 package net.sourceforge.pmd;
2
3 import java.util.logging.Level;
4 import java.util.logging.Logger;
5
6 import net.sourceforge.pmd.benchmark.Benchmark;
7 import net.sourceforge.pmd.benchmark.Benchmarker;
8
9 public final class RulesetsFactoryUtils {
10
11 private static final Logger LOG = Logger.getLogger(RulesetsFactoryUtils.class.getName());
12
13 private RulesetsFactoryUtils() {}
14
15 public static RuleSets getRuleSets(String rulesets, RuleSetFactory factory, long loadRuleStart) {
16 RuleSets ruleSets = null;
17
18 try {
19 ruleSets = factory.createRuleSets(rulesets);
20 factory.setWarnDeprecated(false);
21 printRuleNamesInDebug(ruleSets);
22 long endLoadRules = System.nanoTime();
23 Benchmarker.mark(Benchmark.LoadRules, endLoadRules - loadRuleStart, 0);
24 } catch (RuleSetNotFoundException rsnfe) {
25 LOG.log(Level.SEVERE, "Ruleset not found", rsnfe);
26 throw new IllegalArgumentException(rsnfe);
27 }
28 return ruleSets;
29 }
30
31 public static RuleSetFactory getRulesetFactory(PMDConfiguration configuration) {
32 RuleSetFactory ruleSetFactory = new RuleSetFactory();
33 ruleSetFactory.setMinimumPriority(configuration.getMinimumPriority());
34 ruleSetFactory.setWarnDeprecated(true);
35 return ruleSetFactory;
36 }
37
38
39
40
41
42
43 private static void printRuleNamesInDebug(RuleSets rulesets) {
44 if (LOG.isLoggable(Level.FINER)) {
45 for (Rule r : rulesets.getAllRules()) {
46 LOG.finer("Loaded rule " + r.getName());
47 }
48 }
49 }
50 }