]> source.dussan.org Git - sonarqube.git/commitdiff
Fix quality flaws
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 10 Apr 2014 15:51:28 +0000 (17:51 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 10 Apr 2014 15:51:36 +0000 (17:51 +0200)
sonar-server/src/main/java/org/sonar/server/db/migrations/MassUpdater.java
sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java

index a6e861e42023bc3cbdffce1195a6ce049c5eefcf..0a603ab3a4a81c2d5898a7448ae1a6c9cf2c0876 100644 (file)
@@ -123,13 +123,10 @@ public class MassUpdater {
 
   @VisibleForTesting
   static String convertSelectSql(String selectSql, Database db){
-    // Replace ${_true}
-    selectSql = selectSql.replace("${_true}", db.getDialect().getTrueSqlValue());
-
-    // Replace ${_false}
-    selectSql = selectSql.replace("${_false}", db.getDialect().getFalseSqlValue());
-
-    return selectSql;
+    String newSelectSql = selectSql;
+    newSelectSql = newSelectSql.replace("${_true}", db.getDialect().getTrueSqlValue());
+    newSelectSql = newSelectSql.replace("${_false}", db.getDialect().getFalseSqlValue());
+    return newSelectSql;
   }
 
 }
index b5a822d32096be0fb901e5522ce2ae62376281a2..dc57c863c7389af2b1a7a77242bd83d0d580244e 100644 (file)
@@ -40,6 +40,7 @@ import org.sonar.server.debt.DebtModelXMLExporter;
 import org.sonar.server.debt.DebtRulesXMLImporter;
 
 import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
 
 import java.io.Reader;
 import java.util.Collection;
@@ -117,23 +118,29 @@ public class DeprecatedRulesDefinition implements RulesDefinition {
         LOG.warn(String.format("'%s:%s' is a rule template, it should not define technical debt. Its debt definition will be ignored.", repoKey, ruleKey));
       } else {
         newRule.setDebtSubCharacteristic(ruleDebt.subCharacteristicKey());
-        String function = ruleDebt.function();
-        String coefficient = ruleDebt.coefficient();
-        String offset = ruleDebt.offset();
-
-        if (DebtRemediationFunction.Type.LINEAR.name().equals(function) && coefficient != null) {
-          newRule.setDebtRemediationFunction(newRule.debtRemediationFunctions().linear(coefficient));
-        } else if (DebtRemediationFunction.Type.CONSTANT_ISSUE.name().equals(function) && offset != null) {
-          newRule.setDebtRemediationFunction(newRule.debtRemediationFunctions().constantPerIssue(offset));
-        } else if (DebtRemediationFunction.Type.LINEAR_OFFSET.name().equals(function) && coefficient != null && offset != null) {
-          newRule.setDebtRemediationFunction(newRule.debtRemediationFunctions().linearWithOffset(coefficient, offset));
-        } else {
-          throw new IllegalArgumentException(String.format("Debt definition on rule '%s:%s' is invalid", repoKey, ruleKey));
-        }
+        newRule.setDebtRemediationFunction(remediationFunction(DebtRemediationFunction.Type.valueOf(ruleDebt.function()),
+          ruleDebt.coefficient(),
+          ruleDebt.offset(),
+          newRule.debtRemediationFunctions(),
+          repoKey, ruleKey
+        ));
       }
     }
   }
 
+  private DebtRemediationFunction remediationFunction(DebtRemediationFunction.Type function, @Nullable String coefficient, @Nullable  String offset,
+                                                      DebtRemediationFunctions functions, String repoKey, String ruleKey) {
+    if (DebtRemediationFunction.Type.LINEAR.equals(function) && coefficient != null) {
+      return functions.linear(coefficient);
+    } else if (DebtRemediationFunction.Type.CONSTANT_ISSUE.equals(function) && offset != null) {
+      return functions.constantPerIssue(offset);
+    } else if (DebtRemediationFunction.Type.LINEAR_OFFSET.equals(function) && coefficient != null && offset != null) {
+      return functions.linearWithOffset(coefficient, offset);
+    } else {
+      throw new IllegalArgumentException(String.format("Debt definition on rule '%s:%s' is invalid", repoKey, ruleKey));
+    }
+  }
+
   @CheckForNull
   private String ruleName(String repositoryKey, org.sonar.api.rules.Rule rule) {
     String name = i18n.getName(repositoryKey, rule.getKey());