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()
Deprecated.RuleReference(Rule theRule, RuleSetReference theRuleSetReference)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addExample(java.lang.String example)
Add a single example for this Rule.Rule
deepCopy()
Creates a new copy of this rule.void
definePropertyDescriptor(PropertyDescriptor<?> propertyDescriptor)
Define a new property via a PropertyDescriptor.java.lang.String
getName()
Get the name of this Rule.java.lang.String
getOriginalName()
java.lang.String
getOverriddenDescription()
java.util.List<java.lang.String>
getOverriddenExamples()
java.lang.String
getOverriddenExternalInfoUrl()
Language
getOverriddenLanguage()
LanguageVersion
getOverriddenMaximumLanguageVersion()
java.lang.String
getOverriddenMessage()
LanguageVersion
getOverriddenMinimumLanguageVersion()
java.lang.String
getOverriddenName()
RulePriority
getOverriddenPriority()
java.util.Map<PropertyDescriptor<?>,java.lang.Object>
getOverriddenPropertiesByPropertyDescriptor()
java.util.List<PropertyDescriptor<?>>
getOverriddenPropertyDescriptors()
RuleSetReference
getRuleSetReference()
boolean
hasDescriptor(PropertyDescriptor<?> descriptor)
Returns whether this Rule has the specified PropertyDescriptor.boolean
hasOverriddenProperty(PropertyDescriptor<?> descriptor)
boolean
isDeprecated()
Gets whether this Rule is deprecated.java.lang.Boolean
isOverriddenDeprecated()
void
setDeprecated(boolean deprecated)
Sets whether this Rule is deprecated.void
setDescription(java.lang.String description)
Set the description of this Rule.void
setExternalInfoUrl(java.lang.String externalInfoUrl)
Set a URL for external information about this Rule.void
setLanguage(Language language)
Set the Language of this Rule.void
setMaximumLanguageVersion(LanguageVersion maximumLanguageVersion)
Set the maximum LanguageVersion to which this Rule applies.void
setMessage(java.lang.String message)
Set the message to show when this Rule identifies a violation.void
setMinimumLanguageVersion(LanguageVersion minimumLanguageVersion)
Set the minimum LanguageVersion to which this Rule applies.void
setName(java.lang.String name)
Set the name of this Rule.void
setPriority(RulePriority priority)
Set the priority of this Rule.<T> void
setProperty(PropertyDescriptor<T> propertyDescriptor, T value)
Set the property value specified (will be type-checked)void
setRuleSetReference(RuleSetReference ruleSetReference)
void
useDefaultValueFor(PropertyDescriptor<?> desc)
Clears out any user-specified value for the property allowing it to use the default value in the descriptor.boolean
usesDefaultValues()
Returns whether this Rule uses default values for properties.-
Methods inherited from class net.sourceforge.pmd.lang.rule.AbstractDelegateRule
addRuleChainVisit, addRuleChainVisit, apply, dysfunctionReason, end, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getParserOptions, getPriority, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, getRule, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, ignoredProperties, isDfa, isMultifile, isRuleChain, isTypeResolution, setDfa, setMultifile, setProperty, setRule, setRuleClass, setRuleSetName, setSince, setTypeResolution, setUsesDFA, setUsesMultifile, setUsesTypeResolution, start, usesDFA, usesMultifile, usesRuleChain, usesTypeResolution
-
-
-
-
Constructor Detail
-
RuleReference
@Deprecated public RuleReference()
Deprecated.
-
RuleReference
public RuleReference(Rule theRule, RuleSetReference theRuleSetReference)
- Parameters:
theRule
- the referenced ruletheRuleSetReference
- the rule set, where the rule is defined
-
-
Method Detail
-
getOverriddenLanguage
public Language getOverriddenLanguage()
-
setLanguage
public void setLanguage(Language language)
Description copied from interface:Rule
Set the Language of this Rule.- Specified by:
setLanguage
in interfaceRule
- Overrides:
setLanguage
in classAbstractDelegateRule
- Parameters:
language
- the language
-
getOverriddenMinimumLanguageVersion
public LanguageVersion getOverriddenMinimumLanguageVersion()
-
setMinimumLanguageVersion
public void setMinimumLanguageVersion(LanguageVersion minimumLanguageVersion)
Description copied from interface:Rule
Set the minimum LanguageVersion to which this Rule applies.- Specified by:
setMinimumLanguageVersion
in interfaceRule
- Overrides:
setMinimumLanguageVersion
in classAbstractDelegateRule
- Parameters:
minimumLanguageVersion
- the minimum language version
-
getOverriddenMaximumLanguageVersion
public LanguageVersion getOverriddenMaximumLanguageVersion()
-
setMaximumLanguageVersion
public void setMaximumLanguageVersion(LanguageVersion maximumLanguageVersion)
Description copied from interface:Rule
Set the maximum LanguageVersion to which this Rule applies.- Specified by:
setMaximumLanguageVersion
in interfaceRule
- Overrides:
setMaximumLanguageVersion
in classAbstractDelegateRule
- Parameters:
maximumLanguageVersion
- the maximum language version
-
isOverriddenDeprecated
public java.lang.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 interfaceRule
- Overrides:
isDeprecated
in classAbstractDelegateRule
- 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 interfaceRule
- Overrides:
setDeprecated
in classAbstractDelegateRule
- Parameters:
deprecated
- whether this rule is deprecated
-
getOverriddenName
public java.lang.String getOverriddenName()
-
getOriginalName
public java.lang.String getOriginalName()
-
setName
public void setName(java.lang.String name)
Description copied from interface:Rule
Set the name of this Rule.- Specified by:
setName
in interfaceRule
- Overrides:
setName
in classAbstractDelegateRule
- Parameters:
name
- the name
-
getName
public java.lang.String getName()
Description copied from interface:Rule
Get the name of this Rule.- Specified by:
getName
in interfaceRule
- Overrides:
getName
in classAbstractDelegateRule
- Returns:
- the name
-
getOverriddenMessage
public java.lang.String getOverriddenMessage()
-
setMessage
public void setMessage(java.lang.String message)
Description copied from interface:Rule
Set the message to show when this Rule identifies a violation.- Specified by:
setMessage
in interfaceRule
- Overrides:
setMessage
in classAbstractDelegateRule
- Parameters:
message
- the message to show for a violation.
-
getOverriddenDescription
public java.lang.String getOverriddenDescription()
-
setDescription
public void setDescription(java.lang.String description)
Description copied from interface:Rule
Set the description of this Rule.- Specified by:
setDescription
in interfaceRule
- Overrides:
setDescription
in classAbstractDelegateRule
- Parameters:
description
- the description
-
getOverriddenExamples
public java.util.List<java.lang.String> getOverriddenExamples()
-
addExample
public void addExample(java.lang.String example)
Description copied from interface:Rule
Add a single example for this Rule.- Specified by:
addExample
in interfaceRule
- Overrides:
addExample
in classAbstractDelegateRule
- Parameters:
example
- a single example to add
-
getOverriddenExternalInfoUrl
public java.lang.String getOverriddenExternalInfoUrl()
-
setExternalInfoUrl
public void setExternalInfoUrl(java.lang.String externalInfoUrl)
Description copied from interface:Rule
Set a URL for external information about this Rule.- Specified by:
setExternalInfoUrl
in interfaceRule
- Overrides:
setExternalInfoUrl
in 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:Rule
Set the priority of this Rule.- Specified by:
setPriority
in interfaceRule
- Overrides:
setPriority
in classAbstractDelegateRule
- Parameters:
priority
- the priority
-
getOverriddenPropertyDescriptors
public java.util.List<PropertyDescriptor<?>> getOverriddenPropertyDescriptors()
-
definePropertyDescriptor
public void definePropertyDescriptor(PropertyDescriptor<?> propertyDescriptor) throws java.lang.IllegalArgumentException
Description copied from interface:PropertySource
Define a new property via a PropertyDescriptor.- Specified by:
definePropertyDescriptor
in interfacePropertySource
- Overrides:
definePropertyDescriptor
in classAbstractDelegateRule
- Parameters:
propertyDescriptor
- The property descriptor.- Throws:
java.lang.IllegalArgumentException
- If there is already a property defined the same name.
-
getOverriddenPropertiesByPropertyDescriptor
public java.util.Map<PropertyDescriptor<?>,java.lang.Object> getOverriddenPropertiesByPropertyDescriptor()
-
setProperty
public <T> void setProperty(PropertyDescriptor<T> propertyDescriptor, T value)
Description copied from interface:PropertySource
Set the property value specified (will be type-checked)- Specified by:
setProperty
in interfacePropertySource
- Overrides:
setProperty
in 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
public void setRuleSetReference(RuleSetReference ruleSetReference)
-
hasDescriptor
public boolean hasDescriptor(PropertyDescriptor<?> descriptor)
Description copied from interface:PropertySource
Returns whether this Rule has the specified PropertyDescriptor.- Specified by:
hasDescriptor
in interfacePropertySource
- Overrides:
hasDescriptor
in classAbstractDelegateRule
- Parameters:
descriptor
- The PropertyDescriptor for which to check.- Returns:
- boolean
true
if the descriptor is present,false
otherwise. - See Also:
PropertySource.hasDescriptor(PropertyDescriptor)
-
hasOverriddenProperty
public boolean hasOverriddenProperty(PropertyDescriptor<?> descriptor)
-
usesDefaultValues
public boolean usesDefaultValues()
Description copied from interface:PropertySource
Returns whether this Rule uses default values for properties.- Returns:
- boolean
true
if the properties all have default values,false
otherwise.
-
useDefaultValueFor
public void useDefaultValueFor(PropertyDescriptor<?> desc)
Description copied from interface:PropertySource
Clears out any user-specified value for the property allowing it to use the default value in the descriptor.- Parameters:
desc
- the property to clear out
-
-