Class RulesDefinition.Rule

  • Enclosing interface:
    RulesDefinition

    @Immutable
    public static class RulesDefinition.Rule
    extends java.lang.Object
    • Method Detail

      • 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
      • 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
      • 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()
      • effortToFixDescription

        @Deprecated
        @CheckForNull
        public java.lang.String effortToFixDescription()
        Deprecated.
        since 5.5, replaced by gapDescription()
      • gapDescription

        @CheckForNull
        public java.lang.String gapDescription()
      • 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 plugin
           NewRepository 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 plugin
           NewRepository newRepository = context.createRepository("Bar", "my_language");
           NewRule r = newRepository.createRule("B")
             .addDeprecatedRuleKey("Foo", "A")
             .addDeprecatedRuleKey("Bar", "B");
           
        With all deprecated keys defined in version 3 of the plugin, SonarQube will be able to support "issue re-keying" for this rule in all cases:
        • 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 to addDeprecatedRuleKey. 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)
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object