Class RuleReference

  • All Implemented Interfaces:
    PropertySource, Rule

    public class RuleReference
    extends AbstractDelegateRule
    This class represents a Rule which is a reference to Rule defined in another RuleSet. All details of the Rule are delegated to the underlying referenced Rule, but those operations which modify overridden aspects of the rule are explicitly tracked. Modification operations which set a value to the current underlying value do not override.
    • Constructor Detail

      • RuleReference

        public RuleReference​(Rule theRule,
                             RuleSetReference theRuleSetReference)
        Create a new reference to the given rule.
        theRule - the referenced rule
        theRuleSetReference - the rule set, where the rule is defined
    • Method Detail

      • getOverriddenMinimumLanguageVersion

        public LanguageVersion getOverriddenMinimumLanguageVersion()
      • getOverriddenMaximumLanguageVersion

        public LanguageVersion getOverriddenMaximumLanguageVersion()
      • isOverriddenDeprecated

        public Boolean isOverriddenDeprecated()
      • 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
        isDeprecated in class AbstractDelegateRule
        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
        setDeprecated in class AbstractDelegateRule
        deprecated - whether this rule is deprecated
      • getOverriddenName

        public String getOverriddenName()
      • getOriginalName

        public String getOriginalName()
      • getOverriddenMessage

        public String getOverriddenMessage()
      • 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
        setMessage in class AbstractDelegateRule
        message - the message to show for a violation.
      • getOverriddenDescription

        public String getOverriddenDescription()
      • getOverriddenExamples

        public List<String> getOverriddenExamples()
      • addExample

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

        public String getOverriddenExternalInfoUrl()
      • 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
        setExternalInfoUrl in class AbstractDelegateRule
        externalInfoUrl - the URL for external information about this rule.
      • getOverriddenPriority

        public RulePriority getOverriddenPriority()
      • getOverriddenPropertyDescriptors

        public List<PropertyDescriptor<?>> getOverriddenPropertyDescriptors()
        Description copied from interface: PropertySource
        Returns a modifiable list of the property descriptors that don't use default values.
        The descriptors that don't use default values
      • getOverriddenPropertiesByPropertyDescriptor

        public Map<PropertyDescriptor<?>,​Object> getOverriddenPropertiesByPropertyDescriptor()
        Description copied from interface: PropertySource
        Returns a modifiable map of the property descriptors that don't use default values, to their overridden value. Modifications on the returned map don't affect this property source.
        The descriptors that don't use default values
      • setProperty

        public <T> void setProperty​(PropertyDescriptor<T> propertyDescriptor,
                                    T value)
        Description copied from interface: PropertySource
        Set the property value specified. This is also referred to as "overriding" the (default) value of a property.
        Specified by:
        setProperty in interface PropertySource
        setProperty in class AbstractDelegateRule
        Type Parameters:
        T - The underlying type of the property descriptor.
        propertyDescriptor - The property descriptor.
        value - The value to set.
      • setRuleSetReference

        public void setRuleSetReference​(RuleSetReference ruleSetReference)
        There's no use in setting the ruleset reference after construction
      • deepCopy

        public Rule deepCopy()
        Description copied from interface: Rule
        Creates a new copy of this rule.
        A new exact copy of this rule
      • hasOverriddenAttributes

        public boolean hasOverriddenAttributes()
        Checks whether this rule reference explicitly overrides any of the possible attributes of the referenced rule.
        true if there is at least one attribute overridden. false if the referenced rule is referenced without any change.