Class AbstractRule

    • Constructor Detail

      • AbstractRule

        public AbstractRule()
    • Method Detail

      • getLanguage

        public Language getLanguage()
        Description copied from interface: Rule
        Get the Language of this Rule.
        Specified by:
        getLanguage in interface Rule
        Returns:
        the language
      • setLanguage

        public void setLanguage​(Language language)
        Description copied from interface: Rule
        Set the Language of this Rule.
        Specified by:
        setLanguage in interface Rule
        Parameters:
        language - the language
      • getMinimumLanguageVersion

        public LanguageVersion getMinimumLanguageVersion()
        Description copied from interface: Rule
        Get the minimum LanguageVersion to which this Rule applies. If this value is null it indicates there is no minimum bound.
        Specified by:
        getMinimumLanguageVersion in interface Rule
        Returns:
        the minimum language version
      • setMinimumLanguageVersion

        public void setMinimumLanguageVersion​(LanguageVersion minimumLanguageVersion)
        Description copied from interface: Rule
        Set the minimum LanguageVersion to which this Rule applies.
        Specified by:
        setMinimumLanguageVersion in interface Rule
        Parameters:
        minimumLanguageVersion - the minimum language version
      • getMaximumLanguageVersion

        public LanguageVersion getMaximumLanguageVersion()
        Description copied from interface: Rule
        Get the maximum LanguageVersion to which this Rule applies. If this value is null it indicates there is no maximum bound.
        Specified by:
        getMaximumLanguageVersion in interface Rule
        Returns:
        the maximum language version
      • setMaximumLanguageVersion

        public void setMaximumLanguageVersion​(LanguageVersion maximumLanguageVersion)
        Description copied from interface: Rule
        Set the maximum LanguageVersion to which this Rule applies.
        Specified by:
        setMaximumLanguageVersion in interface Rule
        Parameters:
        maximumLanguageVersion - the maximum language version
      • isDeprecated

        public boolean isDeprecated()
        Description copied from interface: Rule
        Gets whether this Rule is deprecated. A deprecated Rule is one which:
        • is scheduled for removal in a future version of PMD
        • or, has been removed and replaced with a non-functioning place-holder and will be completely removed in a future version of PMD
        • or, has been renamed/moved and the old name will be completely removed in a future version of PMD
        Specified by:
        isDeprecated in interface Rule
        Returns:
        true if this rule is deprecated
      • setDeprecated

        public void setDeprecated​(boolean deprecated)
        Description copied from interface: Rule
        Sets whether this Rule is deprecated.
        Specified by:
        setDeprecated in interface Rule
        Parameters:
        deprecated - whether this rule is deprecated
      • getName

        public String getName()
        Description copied from interface: Rule
        Get the name of this Rule.
        Specified by:
        getName in interface PropertySource
        Specified by:
        getName in interface Rule
        Returns:
        the name
      • setName

        public void setName​(String name)
        Description copied from interface: Rule
        Set the name of this Rule.
        Specified by:
        setName in interface Rule
        Parameters:
        name - the name
      • getSince

        public String getSince()
        Description copied from interface: Rule
        Get the version of PMD in which this Rule was added. Return null if not applicable.
        Specified by:
        getSince in interface Rule
        Returns:
        version of PMD since when this rule was added
      • setSince

        public void setSince​(String since)
        Description copied from interface: Rule
        Set the version of PMD in which this Rule was added.
        Specified by:
        setSince in interface Rule
        Parameters:
        since - the version of PMD since when this rule was added
      • getRuleClass

        public String getRuleClass()
        Description copied from interface: Rule
        Get the implementation class of this Rule.
        Specified by:
        getRuleClass in interface Rule
        Returns:
        the implementation class name of this rule.
      • setRuleClass

        public void setRuleClass​(String ruleClass)
        Description copied from interface: Rule
        Set the class of this Rule.
        Specified by:
        setRuleClass in interface Rule
        Parameters:
        ruleClass - the class name of this rule.
      • getRuleSetName

        public String getRuleSetName()
        Description copied from interface: Rule
        Get the name of the RuleSet containing this Rule.
        Specified by:
        getRuleSetName in interface Rule
        Returns:
        the name of th ruleset containing this rule.
        See Also:
        RuleSet
      • setRuleSetName

        public void setRuleSetName​(String ruleSetName)
        Description copied from interface: Rule
        Set the name of the RuleSet containing this Rule.
        Specified by:
        setRuleSetName in interface Rule
        Parameters:
        ruleSetName - the name of the ruleset containing this rule.
        See Also:
        RuleSet
      • getMessage

        public String getMessage()
        Description copied from interface: Rule
        Get the message to show when this Rule identifies a violation.
        Specified by:
        getMessage in interface Rule
        Returns:
        the message to show for a violation.
      • setMessage

        public void setMessage​(String message)
        Description copied from interface: Rule
        Set the message to show when this Rule identifies a violation.
        Specified by:
        setMessage in interface Rule
        Parameters:
        message - the message to show for a violation.
      • getDescription

        public String getDescription()
        Description copied from interface: Rule
        Get the description of this Rule.
        Specified by:
        getDescription in interface Rule
        Returns:
        the description
      • setDescription

        public void setDescription​(String description)
        Description copied from interface: Rule
        Set the description of this Rule.
        Specified by:
        setDescription in interface Rule
        Parameters:
        description - the description
      • getExamples

        public List<String> getExamples()
        Description copied from interface: Rule
        Get the list of examples for this Rule.
        Specified by:
        getExamples in interface Rule
        Returns:
        the list of examples for this rule.
      • addExample

        public void addExample​(String example)
        Description copied from interface: Rule
        Add a single example for this Rule.
        Specified by:
        addExample in interface Rule
        Parameters:
        example - a single example to add
      • getExternalInfoUrl

        public String getExternalInfoUrl()
        Description copied from interface: Rule
        Get a URL for external information about this Rule.
        Specified by:
        getExternalInfoUrl in interface Rule
        Returns:
        the URL for external information about this rule.
      • setExternalInfoUrl

        public void setExternalInfoUrl​(String externalInfoUrl)
        Description copied from interface: Rule
        Set a URL for external information about this Rule.
        Specified by:
        setExternalInfoUrl in interface Rule
        Parameters:
        externalInfoUrl - the URL for external information about this rule.
      • getPriority

        public RulePriority getPriority()
        Description copied from interface: Rule
        Get the priority of this Rule.
        Specified by:
        getPriority in interface Rule
        Returns:
        the priority
      • setPriority

        public void setPriority​(RulePriority priority)
        Description copied from interface: Rule
        Set the priority of this Rule.
        Specified by:
        setPriority in interface Rule
        Parameters:
        priority - the priority
      • start

        public void start​(RuleContext ctx)
        Description copied from interface: Rule
        Start processing. Called once per file, before apply() is first called.
        Specified by:
        start in interface Rule
        Parameters:
        ctx - the rule context
      • end

        public void end​(RuleContext ctx)
        Description copied from interface: Rule
        End processing. Called once per file, after apply() is last called.
        Specified by:
        end in interface Rule
        Parameters:
        ctx - the rule context
      • asCtx

        protected final RuleContext asCtx​(Object ctx)
        Cast the argument to a RuleContext. Use it to report violations:
        
          asCtx(data).addViolation(node);
          asCtx(data).addViolationWithMessage(node, "Some message");
         
        In longer term, rules will have type-safe access to a RuleContext, when the rules use an appropriate visitor. Many rules have not been refactored yet. Once this is done, this method will be deprecated as useless. Until then, this is a way to hide the explicit cast to RuleContext in rules.
      • equals

        public boolean equals​(Object o)
        Rules are equal if:
        1. They have the same implementation class.
        2. They have the same name.
        3. They have the same priority.
        4. They share the same properties.
        Overrides:
        equals in class AbstractPropertySource
      • deepCopy

        public Rule deepCopy()
        Description copied from interface: Rule
        Creates a new copy of this rule.
        Specified by:
        deepCopy in interface Rule
        Returns:
        A new exact copy of this rule