Class RuleSet

  • All Implemented Interfaces:
    net.sourceforge.pmd.cache.internal.ChecksumAware

    public class RuleSet
    extends Object
    implements net.sourceforge.pmd.cache.internal.ChecksumAware
    This class represents a collection of rules along with some optional filter patterns that can preclude their application on specific files.
    See Also:
    Rule
    • Constructor Detail

      • RuleSet

        public RuleSet​(RuleSet rs)
    • Method Detail

      • forSingleRule

        public static RuleSet forSingleRule​(Rule rule)
        Creates a new ruleset containing a single rule. The ruleset will have default description, name, and null file name.
        Parameters:
        rule - The rule being created
        Returns:
        The newly created RuleSet
      • create

        public static RuleSet create​(String name,
                                     String description,
                                     String fileName,
                                     Collection<Pattern> excludePatterns,
                                     Collection<Pattern> includePatterns,
                                     Iterable<? extends Rule> rules)
        Creates a new ruleset with the given metadata such as name, description, fileName, exclude/include patterns are used. The rules are taken from the given collection.

        Note: The rule instances are shared between the collection and the new ruleset (copy-by-reference). This might lead to concurrency issues, if the rules of the collection are also referenced by other rulesets and used in different threads.

        Parameters:
        name - the name of the ruleset
        description - the description
        fileName - the filename
        excludePatterns - list of exclude patterns
        includePatterns - list of include patterns, that override the exclude patterns
        rules - the collection with the rules to add to the new ruleset
        Returns:
        the new ruleset
        Throws:
        NullPointerException - If any parameter is null, or the collections contain null elements
      • copy

        public static RuleSet copy​(RuleSet original)
        Creates a copy of the given ruleset. All properties like name, description, fileName and exclude/include patterns are copied.

        Note: The rule instances are shared between the original and the new ruleset (copy-by-reference). This might lead to concurrency issues, if the original ruleset and the new ruleset are used in different threads.

        Parameters:
        original - the original rule set to copy from
        Returns:
        the copy
      • size

        public int size()
        Returns the number of rules in this ruleset
        Returns:
        an int representing the number of rules
      • getRules

        public Collection<Rule> getRules()
        Returns the actual Collection of rules in this ruleset
        Returns:
        a Collection with the rules. All objects are of type Rule
      • getRuleByName

        public Rule getRuleByName​(String ruleName)
        Returns the first Rule found with the given name (case-sensitive). 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
      • equals

        public boolean equals​(Object o)
        Two rulesets are equals, if they have the same name and contain the same rules.
        Overrides:
        equals in class Object
        Parameters:
        o - the other ruleset to compare with
        Returns:
        true if o is a ruleset with the same name and rules, false otherwise
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • getFileName

        public String getFileName()
      • getName

        public String getName()
      • getDescription

        public String getDescription()
      • getFileExclusions

        public List<Pattern> getFileExclusions()
        Returns the file exclusion patterns as an unmodifiable list.
      • getFileInclusions

        public List<Pattern> getFileInclusions()
        Returns the file inclusion patterns as an unmodifiable list.
      • removeDysfunctionalRules

        public void removeDysfunctionalRules​(Collection<Rule> collector)
        Remove and collect any misconfigured rules.
        Parameters:
        collector - the removed rules will be added to this collection
      • getChecksum

        public long getChecksum()
        Description copied from interface: net.sourceforge.pmd.cache.internal.ChecksumAware
        Retrieves the current instance checksum
        Specified by:
        getChecksum in interface net.sourceforge.pmd.cache.internal.ChecksumAware
        Returns:
        The current checksum