Class RuleSetLoader

java.lang.Object
net.sourceforge.pmd.lang.rule.RuleSetLoader

public final class RuleSetLoader extends Object
Configurable object to load rulesets from XML resources. This can be configured using a fluent API, see eg warnDeprecated(boolean). To create a new ruleset, use loadFromResource(String) or some such overload.
  • Constructor Details

    • RuleSetLoader

      public RuleSetLoader()
      Create a new RuleSetLoader with a default configuration. The defaults are described on each configuration method of this class.
  • Method Details

    • loadResourcesWith

      public RuleSetLoader loadResourcesWith(ClassLoader classLoader)
      Specify that the given classloader should be used to resolve paths to external ruleset references. The default uses PMD's own classpath.
    • withLanguages

      public RuleSetLoader withLanguages(LanguageRegistry languageRegistry)
    • filterAbovePriority

      public RuleSetLoader filterAbovePriority(RulePriority minimumPriority)
      Filter loaded rules to only those that match or are above the given priority. The default is RulePriority.LOW, ie, no filtering occurs.
      Returns:
      This instance, modified
    • warnDeprecated

      public RuleSetLoader warnDeprecated(boolean warn)
      Log a warning when referencing a deprecated rule. This is enabled by default.
      Returns:
      This instance, modified
    • includeDeprecatedRuleReferences

      public RuleSetLoader includeDeprecatedRuleReferences(boolean enable)
      Follow deprecated rule references. By default this is off, and those references will be ignored.
      Returns:
      This instance, modified
    • loadFromResource

      public RuleSet loadFromResource(String rulesetPath)
      Parses and returns a ruleset from its location. The location may be a file system path, or a resource path (see loadResourcesWith(ClassLoader)).
      Parameters:
      rulesetPath - A reference to a single ruleset
      Throws:
      RuleSetLoadException - If any error occurs (eg, invalid syntax, or resource not found)
    • loadFromString

      public RuleSet loadFromString(String filename, String rulesetXmlContent)
      Parses and returns a ruleset from string content.
      Parameters:
      filename - The symbolic "file name", for error messages.
      rulesetXmlContent - Xml file contents
      Throws:
      RuleSetLoadException - If any error occurs (eg, invalid syntax)
    • loadFromResources

      public List<RuleSet> loadFromResources(Collection<String> paths)
      Parses several resources into a list of rulesets.
      Parameters:
      paths - Paths
      Throws:
      RuleSetLoadException - If any error occurs (eg, invalid syntax, or resource not found), for any of the parameters
      NullPointerException - If the parameter, or any component is null
    • loadFromResources

      public List<RuleSet> loadFromResources(String first, String... rest)
      Parses several resources into a list of rulesets.
      Parameters:
      first - First path
      rest - Paths
      Throws:
      RuleSetLoadException - If any error occurs (eg, invalid syntax, or resource not found), for any of the parameters
      NullPointerException - If the parameter, or any component is null
    • fromPmdConfig

      public static RuleSetLoader fromPmdConfig(PMDConfiguration configuration)
      Configure a new ruleset factory builder according to the parameters of the given PMD configuration.
    • getStandardRuleSets

      public List<RuleSet> getStandardRuleSets()
      Returns an Iterator of RuleSet objects loaded from descriptions from the "categories.properties" resource for each language. This uses the classpath of the resource loader (loadResourcesWith(ClassLoader)).
      Returns:
      A list of all category rulesets
      Throws:
      RuleSetLoadException - If a standard ruleset cannot be loaded. This is a corner case, that probably should not be caught by clients. The standard rulesets are well-formed, at least in stock PMD distributions.