/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.cache;
import java.util.HashMap;
import java.util.Map;
import net.sourceforge.pmd.Rule;
import net.sourceforge.pmd.RuleSets;
/**
* A mapper from rule class names to rule instances for cached rules.
*/
public class CachedRuleMapper {
private final Map<String, Rule> ruleByClassName = new HashMap<>();
/**
* Finds a rule instance for the given rule class name
* @param className The name of the rule class that generated the cache entry
* @return The requested rule
*/
public Rule getRuleForClass(final String className) {
return ruleByClassName.get(className);
}
/**
* Initialize the mapper with the given rulesets.
* @param rs The rulesets from which to retrieve rules.
*/
public void initialize(final RuleSets rs) {
for (final Rule r : rs.getAllRules()) {
ruleByClassName.put(r.getRuleClass(), r);
}
}
}