Class RulesDefinition.Rule
- java.lang.Object
-
- org.sonar.api.server.rule.RulesDefinition.Rule
-
- Enclosing interface:
- RulesDefinition
@Immutable public static class RulesDefinition.Rule extends java.lang.Object
-
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
activatedByDefault()
Should this rule be enabled by default.DebtRemediationFunction
debtRemediationFunction()
java.lang.String
debtSubCharacteristic()
Deprecated.in 5.5.java.util.Set<RuleKey>
deprecatedRuleKeys()
Deprecated rules keys for this rule.java.lang.String
effortToFixDescription()
Deprecated.since 5.5, replaced bygapDescription()
boolean
equals(java.lang.Object o)
java.lang.String
gapDescription()
int
hashCode()
java.lang.String
htmlDescription()
java.lang.String
internalKey()
java.lang.String
key()
java.lang.String
markdownDescription()
java.lang.String
name()
RulesDefinition.Param
param(java.lang.String key)
java.util.List<RulesDefinition.Param>
params()
java.lang.String
pluginKey()
RulesDefinition.Repository
repository()
RuleScope
scope()
java.util.Set<java.lang.String>
securityStandards()
java.lang.String
severity()
RuleStatus
status()
java.util.Set<java.lang.String>
tags()
boolean
template()
java.lang.String
toString()
RuleType
type()
-
-
-
Method Detail
-
repository
public RulesDefinition.Repository repository()
-
pluginKey
@CheckForNull public java.lang.String pluginKey()
- Since:
- 6.6 the plugin the rule was declared in
-
key
public java.lang.String key()
-
name
public java.lang.String name()
-
scope
public RuleScope scope()
- Since:
- 7.1
-
type
public RuleType type()
- Since:
- 5.5
- See Also:
RulesDefinition.NewRule.setType(RuleType)
-
severity
public java.lang.String severity()
-
htmlDescription
@CheckForNull public java.lang.String htmlDescription()
-
markdownDescription
@CheckForNull public java.lang.String markdownDescription()
-
template
public boolean template()
-
activatedByDefault
public boolean activatedByDefault()
Should this rule be enabled by default. For example in SonarLint standalone.- Since:
- 6.0
-
status
public RuleStatus status()
-
debtSubCharacteristic
@CheckForNull @Deprecated public java.lang.String debtSubCharacteristic()
Deprecated.in 5.5. SQALE Quality Model is replaced by SonarQube Quality Model.null
is always returned. See https://jira.sonarsource.com/browse/MMF-184- See Also:
type()
-
debtRemediationFunction
@CheckForNull public DebtRemediationFunction debtRemediationFunction()
-
effortToFixDescription
@Deprecated @CheckForNull public java.lang.String effortToFixDescription()
Deprecated.since 5.5, replaced bygapDescription()
-
gapDescription
@CheckForNull public java.lang.String gapDescription()
-
param
@CheckForNull public RulesDefinition.Param param(java.lang.String key)
-
params
public java.util.List<RulesDefinition.Param> params()
-
tags
public java.util.Set<java.lang.String> tags()
-
securityStandards
public java.util.Set<java.lang.String> securityStandards()
-
deprecatedRuleKeys
public java.util.Set<RuleKey> deprecatedRuleKeys()
Deprecated rules keys for this rule.If you want to rename the key of a rule or change its repository or both, register the rule's previous repository and key (see
addDeprecatedRuleKey
). This will allow SonarQube to support "issue re-keying" for this rule.If the repository and/or key of an existing rule is changed without declaring deprecated keys, existing issues for this rule, created under the rule's previous repository and/or key, will be closed and new ones will be created under the issue's new repository and/or key.
Several deprecated keys can be provided to allow SonarQube to support several key (and/or repository) changes across multiple versions of a plugin.
Consider the following use case scenario:- Rule
Foo:A
is defined in version 1 of the pluginNewRepository newRepository = context.createRepository("Foo", "my_language"); NewRule r = newRepository.createRule("A");
- Rule's key is renamed to B in version 2 of the plugin
NewRepository newRepository = context.createRepository("Foo", "my_language"); NewRule r = newRepository.createRule("B") .addDeprecatedRuleKey("Foo", "A");
- All rules, including
Foo:B
, are moved to a new repository Bar in version 3 of the pluginNewRepository newRepository = context.createRepository("Bar", "my_language"); NewRule r = newRepository.createRule("B") .addDeprecatedRuleKey("Foo", "A") .addDeprecatedRuleKey("Bar", "B");
- plugin upgrade from v1 to v2,
- plugin upgrade from v2 to v3
- AND plugin upgrade from v1 to v3
Finally, repository/key pairs must be unique across all rules and their deprecated keys.
This implies that no rule can use the same repository and key as the deprecated key of another rule. This uniqueness applies across plugins.Note that, even though this method returns a
Set
, its elements are ordered according to calls toaddDeprecatedRuleKey
. This allows to describe the history of a rule's repositories and keys over time. Oldest repository and key must be specified first.- Since:
- 7.1
- See Also:
RulesDefinition.NewRule.addDeprecatedRuleKey(String, String)
- Rule
-
internalKey
@CheckForNull public java.lang.String internalKey()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-