Package net.sourceforge.pmd.lang.rule
Class RuleReference
- java.lang.Object
-
- net.sourceforge.pmd.lang.rule.AbstractDelegateRule
-
- net.sourceforge.pmd.lang.rule.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.
-
-
Field Summary
-
Fields inherited from interface net.sourceforge.pmd.Rule
VIOLATION_SUPPRESS_REGEX_DESCRIPTOR, VIOLATION_SUPPRESS_XPATH_DESCRIPTOR
-
-
Constructor Summary
Constructors Constructor Description RuleReference(Rule theRule, RuleSetReference theRuleSetReference)Create a new reference to the given rule.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddExample(String example)Add a single example for this Rule.RuledeepCopy()Creates a new copy of this rule.voiddefinePropertyDescriptor(PropertyDescriptor<?> propertyDescriptor)Defines a new property.StringgetName()Get the name of this Rule.StringgetOriginalName()StringgetOverriddenDescription()List<String>getOverriddenExamples()StringgetOverriddenExternalInfoUrl()LanguageVersiongetOverriddenMaximumLanguageVersion()StringgetOverriddenMessage()LanguageVersiongetOverriddenMinimumLanguageVersion()StringgetOverriddenName()RulePrioritygetOverriddenPriority()Map<PropertyDescriptor<?>,Object>getOverriddenPropertiesByPropertyDescriptor()Returns a modifiable map of the property descriptors that don't use default values, to their overridden value.List<PropertyDescriptor<?>>getOverriddenPropertyDescriptors()Returns a modifiable list of the property descriptors that don't use default values.RuleSetReferencegetRuleSetReference()booleanhasDescriptor(PropertyDescriptor<?> descriptor)Returns whether the specified property is defined on this property source, in which case it can be set or retrieved withPropertySource.getProperty(PropertyDescriptor)andPropertySource.setProperty(PropertyDescriptor, Object).booleanhasOverriddenAttributes()Checks whether this rule reference explicitly overrides any of the possible attributes of the referenced rule.booleanhasOverriddenProperty(PropertyDescriptor<?> descriptor)Deprecated.UseisPropertyOverridden(PropertyDescriptor)insteadbooleanisDeprecated()Gets whether this Rule is deprecated.BooleanisOverriddenDeprecated()booleanisPropertyOverridden(PropertyDescriptor<?> descriptor)Returns true if the given property has been set to a value somewhere in the XML.voidsetDeprecated(boolean deprecated)Sets whether this Rule is deprecated.voidsetDescription(String description)Set the description of this Rule.voidsetExternalInfoUrl(String externalInfoUrl)Set a URL for external information about this Rule.voidsetMaximumLanguageVersion(LanguageVersion maximumLanguageVersion)Set the maximum LanguageVersion to which this Rule applies.voidsetMessage(String message)Set the message to show when this Rule identifies a violation.voidsetMinimumLanguageVersion(LanguageVersion minimumLanguageVersion)Set the minimum LanguageVersion to which this Rule applies.voidsetName(String name)Set the name of this Rule.voidsetPriority(RulePriority priority)Set the priority of this Rule.<T> voidsetProperty(PropertyDescriptor<T> propertyDescriptor, T value)Set the property value specified.voidsetRuleSetReference(RuleSetReference ruleSetReference)Deprecated.There's no use in setting the ruleset reference after construction-
Methods inherited from class net.sourceforge.pmd.lang.rule.AbstractDelegateRule
apply, dysfunctionReason, end, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getPriority, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, getRule, getRuleClass, getRuleSetName, getSince, getTargetSelector, initialize, setLanguage, setProperty, setRule, setRuleClass, setRuleSetName, setSince, start
-
-
-
-
Constructor Detail
-
RuleReference
public RuleReference(Rule theRule, RuleSetReference theRuleSetReference)
Create a new reference to the given rule.- Parameters:
theRule- the referenced ruletheRuleSetReference- the rule set, where the rule is defined
-
-
Method Detail
-
getOverriddenMinimumLanguageVersion
public LanguageVersion getOverriddenMinimumLanguageVersion()
-
setMinimumLanguageVersion
public void setMinimumLanguageVersion(LanguageVersion minimumLanguageVersion)
Description copied from interface:RuleSet the minimum LanguageVersion to which this Rule applies.- Specified by:
setMinimumLanguageVersionin interfaceRule- Overrides:
setMinimumLanguageVersionin classAbstractDelegateRule- Parameters:
minimumLanguageVersion- the minimum language version
-
getOverriddenMaximumLanguageVersion
public LanguageVersion getOverriddenMaximumLanguageVersion()
-
setMaximumLanguageVersion
public void setMaximumLanguageVersion(LanguageVersion maximumLanguageVersion)
Description copied from interface:RuleSet the maximum LanguageVersion to which this Rule applies.- Specified by:
setMaximumLanguageVersionin interfaceRule- Overrides:
setMaximumLanguageVersionin classAbstractDelegateRule- Parameters:
maximumLanguageVersion- the maximum language version
-
isOverriddenDeprecated
public Boolean isOverriddenDeprecated()
-
isDeprecated
public boolean isDeprecated()
Description copied from interface:RuleGets 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:
isDeprecatedin interfaceRule- Overrides:
isDeprecatedin classAbstractDelegateRule- Returns:
trueif this rule is deprecated
-
setDeprecated
public void setDeprecated(boolean deprecated)
Description copied from interface:RuleSets whether this Rule is deprecated.- Specified by:
setDeprecatedin interfaceRule- Overrides:
setDeprecatedin classAbstractDelegateRule- Parameters:
deprecated- whether this rule is deprecated
-
getOverriddenName
public String getOverriddenName()
-
getOriginalName
public String getOriginalName()
-
setName
public void setName(String name)
Description copied from interface:RuleSet the name of this Rule.- Specified by:
setNamein interfaceRule- Overrides:
setNamein classAbstractDelegateRule- Parameters:
name- the name
-
getName
public String getName()
Description copied from interface:RuleGet the name of this Rule.- Specified by:
getNamein interfacePropertySource- Specified by:
getNamein interfaceRule- Overrides:
getNamein classAbstractDelegateRule- Returns:
- the name
-
getOverriddenMessage
public String getOverriddenMessage()
-
setMessage
public void setMessage(String message)
Description copied from interface:RuleSet the message to show when this Rule identifies a violation.- Specified by:
setMessagein interfaceRule- Overrides:
setMessagein classAbstractDelegateRule- Parameters:
message- the message to show for a violation.
-
getOverriddenDescription
public String getOverriddenDescription()
-
setDescription
public void setDescription(String description)
Description copied from interface:RuleSet the description of this Rule.- Specified by:
setDescriptionin interfaceRule- Overrides:
setDescriptionin classAbstractDelegateRule- Parameters:
description- the description
-
addExample
public void addExample(String example)
Description copied from interface:RuleAdd a single example for this Rule.- Specified by:
addExamplein interfaceRule- Overrides:
addExamplein classAbstractDelegateRule- Parameters:
example- a single example to add
-
getOverriddenExternalInfoUrl
public String getOverriddenExternalInfoUrl()
-
setExternalInfoUrl
public void setExternalInfoUrl(String externalInfoUrl)
Description copied from interface:RuleSet a URL for external information about this Rule.- Specified by:
setExternalInfoUrlin interfaceRule- Overrides:
setExternalInfoUrlin classAbstractDelegateRule- Parameters:
externalInfoUrl- the URL for external information about this rule.
-
getOverriddenPriority
public RulePriority getOverriddenPriority()
-
setPriority
public void setPriority(RulePriority priority)
Description copied from interface:RuleSet the priority of this Rule.- Specified by:
setPriorityin interfaceRule- Overrides:
setPriorityin classAbstractDelegateRule- Parameters:
priority- the priority
-
getOverriddenPropertyDescriptors
public List<PropertyDescriptor<?>> getOverriddenPropertyDescriptors()
Description copied from interface:PropertySourceReturns a modifiable list of the property descriptors that don't use default values.- Returns:
- The descriptors that don't use default values
-
definePropertyDescriptor
public void definePropertyDescriptor(PropertyDescriptor<?> propertyDescriptor) throws IllegalArgumentException
Description copied from interface:PropertySourceDefines a new property. Properties must be defined before they can be set a value.- Specified by:
definePropertyDescriptorin interfacePropertySource- Overrides:
definePropertyDescriptorin classAbstractDelegateRule- Parameters:
propertyDescriptor- The property descriptor.- Throws:
IllegalArgumentException- If there is already a property defined the same name.
-
getOverriddenPropertiesByPropertyDescriptor
public Map<PropertyDescriptor<?>,Object> getOverriddenPropertiesByPropertyDescriptor()
Description copied from interface:PropertySourceReturns 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.- Returns:
- The descriptors that don't use default values
-
setProperty
public <T> void setProperty(PropertyDescriptor<T> propertyDescriptor, T value)
Description copied from interface:PropertySourceSet the property value specified. This is also referred to as "overriding" the (default) value of a property.- Specified by:
setPropertyin interfacePropertySource- Overrides:
setPropertyin classAbstractDelegateRule- Type Parameters:
T- The underlying type of the property descriptor.- Parameters:
propertyDescriptor- The property descriptor.value- The value to set.
-
getRuleSetReference
public RuleSetReference getRuleSetReference()
-
setRuleSetReference
@Deprecated public void setRuleSetReference(RuleSetReference ruleSetReference)
Deprecated.There's no use in setting the ruleset reference after construction
-
hasDescriptor
public boolean hasDescriptor(PropertyDescriptor<?> descriptor)
Description copied from interface:PropertySourceReturns whether the specified property is defined on this property source, in which case it can be set or retrieved withPropertySource.getProperty(PropertyDescriptor)andPropertySource.setProperty(PropertyDescriptor, Object).- Specified by:
hasDescriptorin interfacePropertySource- Overrides:
hasDescriptorin classAbstractDelegateRule- Parameters:
descriptor- The descriptor to look for- Returns:
trueif the descriptor is defined,falseotherwise.- See Also:
PropertySource.hasDescriptor(PropertyDescriptor)
-
hasOverriddenProperty
@Deprecated public boolean hasOverriddenProperty(PropertyDescriptor<?> descriptor)
Deprecated.UseisPropertyOverridden(PropertyDescriptor)instead
-
isPropertyOverridden
public boolean isPropertyOverridden(PropertyDescriptor<?> descriptor)
Description copied from interface:PropertySourceReturns true if the given property has been set to a value somewhere in the XML.- Specified by:
isPropertyOverriddenin interfacePropertySource- Overrides:
isPropertyOverriddenin classAbstractDelegateRule- Parameters:
descriptor- The descriptor- Returns:
- True if the property has been set
-
deepCopy
public Rule deepCopy()
Description copied from interface:RuleCreates a new copy of this rule.- Returns:
- 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.- Returns:
trueif there is at least one attribute overridden.falseif the referenced rule is referenced without any change.
-
-