From: Simon Brandhof Date: Tue, 25 Mar 2014 17:02:53 +0000 (+0100) Subject: SONAR-4908 rename RulesDefinition#setDebtCharacteristic() to setDebtSubCharacteristic() X-Git-Tag: 4.3~274 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0abfc8ad75bb91dceba66f9e5905268312bed038;p=sonarqube.git SONAR-4908 rename RulesDefinition#setDebtCharacteristic() to setDebtSubCharacteristic() -> better follow SQALE method --- diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java index 8bea7cbab69..b00b46df9a1 100644 --- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java +++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java @@ -52,7 +52,7 @@ public class XooRulesDefinition implements RulesDefinition { .setSeverity(Severity.MINOR); x1Rule - .setDebtCharacteristic("INTEGRATION_TESTABILITY") + .setDebtSubCharacteristic("INTEGRATION_TESTABILITY") .setDebtRemediationFunction(x1Rule.debtRemediationFunctions().linearWithOffset("1h", "30min")); x1Rule.createParam("acceptWhitespace") diff --git a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java index 229e07ca147..1508db93b13 100644 --- a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java +++ b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java @@ -44,7 +44,7 @@ public class XooRulesDefinitionTest { assertThat(x1.tags()).containsOnly("style", "security"); assertThat(x1.htmlDescription()).isNotEmpty(); - assertThat(x1.debtCharacteristic()).isEqualTo("INTEGRATION_TESTABILITY"); + assertThat(x1.debtSubCharacteristic()).isEqualTo("INTEGRATION_TESTABILITY"); assertThat(x1.debtRemediationFunction().type()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET); assertThat(x1.debtRemediationFunction().factor()).isEqualTo("1h"); assertThat(x1.debtRemediationFunction().offset()).isEqualTo("30min"); diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java index 79d08f46588..fff3f96e797 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java @@ -75,7 +75,7 @@ import java.util.Set; * .setSeverity(Severity.MINOR); * * x1Rule - * .setDebtCharacteristic("INTEGRATION_TESTABILITY") + * .setDebtSubCharacteristic("INTEGRATION_TESTABILITY") * .setDebtRemediationFunction(x1Rule.debtRemediationFunctions().linearWithOffset("1h", "30min")); * * x1Rule.createParam("acceptWhitespace") @@ -90,7 +90,7 @@ import java.util.Set; * *

* If rules are declared in a XML file with the standard SonarQube format, then it can be loaded by using : - * + *

*

  * public class JsSquidRulesDefinition implements RulesDefinition {
  *
@@ -109,10 +109,10 @@ import java.util.Set;
  *   }
  * }
  * 
- * + *

* In the above example, XML file must contain name and description of each rule. If it's not the case, then the * (deprecated) English bundles can be used : - * + *

*

  * public class JsSquidRulesDefinition implements RulesDefinition {
  *
@@ -376,7 +376,7 @@ public interface RulesDefinition extends ServerExtension {
     private String name, htmlDescription, internalKey, severity = Severity.MAJOR;
     private boolean template;
     private RuleStatus status = RuleStatus.defaultStatus();
-    private String debtCharacteristic;
+    private String debtSubCharacteristic;
     private DebtRemediationFunction debtRemediationFunction;
     private String effortToFixDescription;
     private final Set tags = Sets.newTreeSet();
@@ -440,11 +440,14 @@ public interface RulesDefinition extends ServerExtension {
       return this;
     }
 
-    public NewRule setDebtCharacteristic(@Nullable String debtCharacteristic) {
-      this.debtCharacteristic = debtCharacteristic;
+    public NewRule setDebtSubCharacteristic(@Nullable String s) {
+      this.debtSubCharacteristic = s;
       return this;
     }
 
+    /**
+     * Factory of {@link org.sonar.api.server.debt.DebtRemediationFunction}
+     */
     public DebtRemediationFunctions debtRemediationFunctions() {
       return functions;
     }
@@ -517,8 +520,8 @@ public interface RulesDefinition extends ServerExtension {
       if (Strings.isNullOrEmpty(htmlDescription)) {
         throw new IllegalStateException(String.format("HTML description of rule %s is empty", this));
       }
-      if ((Strings.isNullOrEmpty(debtCharacteristic) && debtRemediationFunction != null) || (!Strings.isNullOrEmpty(debtCharacteristic) && debtRemediationFunction == null)) {
-        throw new IllegalStateException(String.format("Both debt characteristic and debt remediation function should be defined on rule '%s'", this));
+      if ((Strings.isNullOrEmpty(debtSubCharacteristic) && debtRemediationFunction != null) || (!Strings.isNullOrEmpty(debtSubCharacteristic) && debtRemediationFunction == null)) {
+        throw new IllegalStateException(String.format("Both debt sub-characteristic and debt remediation function should be defined on rule '%s'", this));
       }
     }
 
@@ -533,7 +536,7 @@ public interface RulesDefinition extends ServerExtension {
     private final Repository repository;
     private final String repoKey, key, name, htmlDescription, internalKey, severity;
     private final boolean template;
-    private final String debtCharacteristic;
+    private final String debtSubCharacteristic;
     private final DebtRemediationFunction debtRemediationFunction;
     private final String effortToFixDescription;
     private final Set tags;
@@ -550,7 +553,7 @@ public interface RulesDefinition extends ServerExtension {
       this.severity = newRule.severity;
       this.template = newRule.template;
       this.status = newRule.status;
-      this.debtCharacteristic = newRule.debtCharacteristic;
+      this.debtSubCharacteristic = newRule.debtSubCharacteristic;
       this.debtRemediationFunction = newRule.debtRemediationFunction;
       this.effortToFixDescription = newRule.effortToFixDescription;
       this.tags = ImmutableSortedSet.copyOf(newRule.tags);
@@ -591,8 +594,8 @@ public interface RulesDefinition extends ServerExtension {
     }
 
     @CheckForNull
-    public String debtCharacteristic() {
-      return debtCharacteristic;
+    public String debtSubCharacteristic() {
+      return debtSubCharacteristic;
     }
 
     @CheckForNull
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RulesDefinitionTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RulesDefinitionTest.java
index 96351855f53..186fe99dc22 100644
--- a/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RulesDefinitionTest.java
+++ b/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RulesDefinitionTest.java
@@ -71,7 +71,7 @@ public class RulesDefinitionTest {
       .setSeverity(Severity.BLOCKER)
       .setInternalKey("/something")
       .setStatus(RuleStatus.BETA)
-      .setDebtCharacteristic("COMPILER")
+      .setDebtSubCharacteristic("COMPILER")
       .setEffortToFixDescription("squid.S115.effortToFix")
       .setTags("one", "two")
       .addTags("two", "three", "four");
@@ -93,7 +93,7 @@ public class RulesDefinitionTest {
     assertThat(rule.internalKey()).isEqualTo("/something");
     assertThat(rule.template()).isFalse();
     assertThat(rule.status()).isEqualTo(RuleStatus.BETA);
-    assertThat(rule.debtCharacteristic()).isEqualTo("COMPILER");
+    assertThat(rule.debtSubCharacteristic()).isEqualTo("COMPILER");
     assertThat(rule.debtRemediationFunction().type()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET);
     assertThat(rule.debtRemediationFunction().factor()).isEqualTo("1h");
     assertThat(rule.debtRemediationFunction().offset()).isEqualTo("10min");
@@ -120,7 +120,7 @@ public class RulesDefinitionTest {
     assertThat(rule.internalKey()).isNull();
     assertThat(rule.status()).isEqualTo(RuleStatus.defaultStatus());
     assertThat(rule.tags()).isEmpty();
-    assertThat(rule.debtCharacteristic()).isNull();
+    assertThat(rule.debtSubCharacteristic()).isNull();
     assertThat(rule.debtRemediationFunction()).isNull();
   }
 
@@ -302,12 +302,12 @@ public class RulesDefinitionTest {
   public void fail_if_define_characteristic_without_function() {
     RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java");
     newRepository.createRule("NPE").setName("NPE").setHtmlDescription("Detect java.lang.NullPointerException")
-      .setDebtCharacteristic("COMPILER");
+      .setDebtSubCharacteristic("COMPILER");
     try {
       newRepository.done();
       fail();
     } catch (IllegalStateException e) {
-      assertThat(e).hasMessage("Both debt characteristic and debt remediation function should be defined on rule '[repository=findbugs, key=NPE]'");
+      assertThat(e).hasMessage("Both debt sub-characteristic and debt remediation function should be defined on rule '[repository=findbugs, key=NPE]'");
     }
   }
 
@@ -315,13 +315,13 @@ public class RulesDefinitionTest {
   public void fail_if_define_function_without_characteristic() {
     RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java");
     RulesDefinition.NewRule newRule = newRepository.createRule("NPE").setName("NPE").setHtmlDescription("Detect java.lang.NullPointerException")
-      .setDebtCharacteristic("");
+      .setDebtSubCharacteristic("");
     newRule.setDebtRemediationFunction(newRule.debtRemediationFunctions().linearWithOffset("1h", "10min"));
     try {
       newRepository.done();
       fail();
     } catch (IllegalStateException e) {
-      assertThat(e).hasMessage("Both debt characteristic and debt remediation function should be defined on rule '[repository=findbugs, key=NPE]'");
+      assertThat(e).hasMessage("Both debt sub-characteristic and debt remediation function should be defined on rule '[repository=findbugs, key=NPE]'");
     }
   }
 
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java b/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java
index d9bd3ea9e34..343e76c9a3e 100644
--- a/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java
+++ b/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java
@@ -111,7 +111,7 @@ public class DeprecatedRulesDefinition implements RulesDefinition {
   private void updateRuleDebtDefinitions(NewRule newRule, String repoKey, String ruleKey, List ruleDebts){
     RuleDebt ruleDebt = findRequirement(ruleDebts, repoKey, ruleKey);
     if (ruleDebt != null) {
-      newRule.setDebtCharacteristic(ruleDebt.characteristicKey());
+      newRule.setDebtSubCharacteristic(ruleDebt.characteristicKey());
       switch (ruleDebt.function()) {
         case LINEAR :
           newRule.setDebtRemediationFunction(newRule.debtRemediationFunctions().linear(ruleDebt.factor()));
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java b/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java
index 9155a6e9edf..e592464e105 100644
--- a/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java
+++ b/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java
@@ -549,7 +549,7 @@ public class RuleRegistration implements Startable {
 
   @CheckForNull
   private CharacteristicDto findCharacteristic(RulesDefinition.Rule ruleDef, @Nullable Integer overridingCharacteristicId, List characteristicDtos) {
-    String key = ruleDef.debtCharacteristic();
+    String key = ruleDef.debtSubCharacteristic();
     // Rule is not linked to a default characteristic or characteristic has been disabled by user, nothing to do
     if (key == null) {
       return null;
diff --git a/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRulesDefinitionTest.java b/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRulesDefinitionTest.java
index cc48bef99aa..a69875ff4b5 100644
--- a/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRulesDefinitionTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRulesDefinitionTest.java
@@ -180,7 +180,7 @@ public class DeprecatedRulesDefinitionTest {
     RulesDefinition.Rule rule = checkstyle.rule("ConstantName");
     assertThat(rule).isNotNull();
     assertThat(rule.key()).isEqualTo("ConstantName");
-    assertThat(rule.debtCharacteristic()).isEqualTo("MEMORY_EFFICIENCY");
+    assertThat(rule.debtSubCharacteristic()).isEqualTo("MEMORY_EFFICIENCY");
     assertThat(rule.debtRemediationFunction().type()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET);
     assertThat(rule.debtRemediationFunction().factor()).isEqualTo("1d");
     assertThat(rule.debtRemediationFunction().offset()).isEqualTo("10min");
diff --git a/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java b/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java
index b4b2f85ee6a..5e3ebe8b9d7 100644
--- a/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java
@@ -288,7 +288,7 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
         .setInternalKey("config1")
         .setTags("tag1", "tag3", "tag5");
 
-      rule1.setDebtCharacteristic("MEMORY_EFFICIENCY")
+      rule1.setDebtSubCharacteristic("MEMORY_EFFICIENCY")
         .setDebtRemediationFunction(rule1.debtRemediationFunctions().linearWithOffset("5d", "10h"))
         .setEffortToFixDescription("squid.S115.effortToFix");