Class RuleSetLoader

    • Constructor Detail

      • RuleSetLoader

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

      • 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.
      • 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
      • enableCompatibility

        public RuleSetLoader enableCompatibility​(boolean enable)
        Enable translating old rule references to newer ones, if they have been moved or renamed. This is enabled by default, if disabled, unresolved references will not be translated and will produce an error.
        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 (with a warning depending on enableCompatibility(boolean)).
        Returns:
        This instance, modified
      • toFactory

        @Deprecated
        public RuleSetFactory toFactory()
        Deprecated.
        RuleSetFactory is deprecated, replace its usages with usages of this class, or of static factory methods of RuleSet
        Create a new rule set factory, if you have to (that class is deprecated). That factory will use the configuration that was set using the setters of this.
      • 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
      • loadRuleSetsWithoutException

        @InternalApi
        public List<RuleSet> loadRuleSetsWithoutException​(List<String> rulesetPaths)
        Loads a list of rulesets, if any has an error, report it on the contextual error reporter instead of aborting, and continue loading the rest.

        Internal API: might be published later, or maybe in PMD 7 this will be the default behaviour of every method of this class.

      • 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.