aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/technicaldebt/TechnicalDebtDecoratorTest.java4
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculator.java2
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoader.java2
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculatorTest.java4
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoaderTest.java6
-rw-r--r--sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java8
-rw-r--r--sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModel.java4
-rw-r--r--sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtConverter.java2
-rw-r--r--sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizer.java4
-rw-r--r--sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporter.java6
-rw-r--r--sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDto.java6
-rw-r--r--sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java2
-rw-r--r--sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModelTest.java6
-rw-r--r--sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtConverterTest.java2
-rw-r--r--sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizerTest.java6
-rw-r--r--sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest.java6
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/Requirement.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/internal/DefaultCharacteristic.java (renamed from sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/internal/DefaultCharacteristic.java)3
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/internal/DefaultRequirement.java (renamed from sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/internal/DefaultRequirement.java)4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/server/Characteristic.java169
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/server/internal/DefaultCharacteristic.java181
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/utils/WorkUnit.java (renamed from sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/WorkUnit.java)2
-rw-r--r--sonar-server/src/test/java/org/sonar/server/technicaldebt/InternalRubyTechnicalDebtServiceTest.java5
23 files changed, 251 insertions, 185 deletions
diff --git a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/technicaldebt/TechnicalDebtDecoratorTest.java b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/technicaldebt/TechnicalDebtDecoratorTest.java
index dbc9352eac0..eb5376d47f0 100644
--- a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/technicaldebt/TechnicalDebtDecoratorTest.java
+++ b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/technicaldebt/TechnicalDebtDecoratorTest.java
@@ -45,8 +45,8 @@ import org.sonar.api.rule.RuleKey;
import org.sonar.api.technicaldebt.batch.Characteristic;
import org.sonar.api.technicaldebt.batch.Requirement;
import org.sonar.api.technicaldebt.batch.TechnicalDebtModel;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import org.sonar.api.test.IsMeasure;
import org.sonar.core.technicaldebt.TechnicalDebtConverter;
diff --git a/sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculator.java b/sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculator.java
index 2e71d86e640..16e12f74d1d 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculator.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculator.java
@@ -23,9 +23,9 @@ import com.google.common.base.Objects;
import org.sonar.api.BatchExtension;
import org.sonar.api.issue.Issue;
import org.sonar.api.issue.internal.WorkDayDuration;
-import org.sonar.api.technicaldebt.WorkUnit;
import org.sonar.api.technicaldebt.batch.Requirement;
import org.sonar.api.technicaldebt.batch.TechnicalDebtModel;
+import org.sonar.api.utils.WorkUnit;
import org.sonar.core.technicaldebt.TechnicalDebtConverter;
/**
diff --git a/sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoader.java b/sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoader.java
index 1c8fac76f42..1cb40584f4c 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoader.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoader.java
@@ -26,7 +26,7 @@ import org.sonar.api.rules.Rule;
import org.sonar.api.rules.RuleFinder;
import org.sonar.api.rules.RuleQuery;
import org.sonar.api.technicaldebt.batch.TechnicalDebtModel;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
import org.sonar.core.technicaldebt.DefaultTechnicalDebtModel;
import org.sonar.core.technicaldebt.db.CharacteristicDao;
import org.sonar.core.technicaldebt.db.CharacteristicDto;
diff --git a/sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculatorTest.java b/sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculatorTest.java
index acf0d993d0c..252d127504b 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculatorTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtCalculatorTest.java
@@ -27,9 +27,9 @@ import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.sonar.api.issue.internal.DefaultIssue;
import org.sonar.api.rule.RuleKey;
-import org.sonar.api.technicaldebt.WorkUnit;
import org.sonar.api.technicaldebt.batch.TechnicalDebtModel;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
+import org.sonar.api.utils.WorkUnit;
import org.sonar.core.technicaldebt.TechnicalDebtConverter;
import static org.fest.assertions.Assertions.assertThat;
diff --git a/sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoaderTest.java b/sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoaderTest.java
index 6d6cea6d4db..cb1ecab4b73 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoaderTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/technicaldebt/TechnicalDebtModelLoaderTest.java
@@ -29,9 +29,9 @@ import org.sonar.api.rule.RuleKey;
import org.sonar.api.rules.Rule;
import org.sonar.api.rules.RuleFinder;
import org.sonar.api.rules.RuleQuery;
-import org.sonar.api.technicaldebt.WorkUnit;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
+import org.sonar.api.utils.WorkUnit;
import org.sonar.core.technicaldebt.DefaultTechnicalDebtModel;
import org.sonar.core.technicaldebt.db.CharacteristicDao;
import org.sonar.core.technicaldebt.db.CharacteristicDto;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java
index efea9e3f4f5..7a75aa76a97 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java
+++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManager.java
@@ -22,9 +22,10 @@ package org.sonar.core.technicaldebt;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rules.Rule;
-import org.sonar.api.technicaldebt.WorkUnit;
import org.sonar.api.technicaldebt.server.Characteristic;
import org.sonar.api.technicaldebt.server.TechnicalDebtManager;
+import org.sonar.api.technicaldebt.server.internal.DefaultCharacteristic;
+import org.sonar.api.utils.WorkUnit;
import org.sonar.core.technicaldebt.db.CharacteristicDao;
import org.sonar.core.technicaldebt.db.CharacteristicDto;
@@ -34,6 +35,9 @@ import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
+/**
+ * TODO This class should be replaced or created by a TechnicalDebtManagerBuilder
+ */
public class DefaultTechnicalDebtManager implements TechnicalDebtManager {
private final CharacteristicDao dao;
@@ -61,7 +65,7 @@ public class DefaultTechnicalDebtManager implements TechnicalDebtManager {
}
private static Characteristic toCharacteristic(CharacteristicDto dto, @Nullable RuleKey ruleKey) {
- return new Characteristic()
+ return new DefaultCharacteristic()
.setId(dto.getId())
.setKey(dto.getKey())
.setName(dto.getName())
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModel.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModel.java
index f08da844aa4..6c9c50d55e4 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModel.java
+++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModel.java
@@ -24,8 +24,8 @@ import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.technicaldebt.batch.TechnicalDebtModel;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import javax.annotation.CheckForNull;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtConverter.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtConverter.java
index 80bdc74f876..7191034e8e6 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtConverter.java
+++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtConverter.java
@@ -24,7 +24,7 @@ import org.sonar.api.BatchComponent;
import org.sonar.api.ServerComponent;
import org.sonar.api.config.Settings;
import org.sonar.api.issue.internal.WorkDayDuration;
-import org.sonar.api.technicaldebt.WorkUnit;
+import org.sonar.api.utils.WorkUnit;
import javax.annotation.Nullable;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizer.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizer.java
index 2dd4f95a695..37724568b17 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizer.java
+++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizer.java
@@ -28,8 +28,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.ServerExtension;
import org.sonar.api.rules.Rule;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import org.sonar.api.utils.ValidationMessages;
import org.sonar.core.persistence.MyBatis;
import org.sonar.core.technicaldebt.db.CharacteristicDao;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporter.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporter.java
index 23589dce0d0..7e5e7401489 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporter.java
+++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporter.java
@@ -33,10 +33,10 @@ import org.slf4j.LoggerFactory;
import org.sonar.api.ServerExtension;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rules.Rule;
-import org.sonar.api.technicaldebt.WorkUnit;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import org.sonar.api.utils.ValidationMessages;
+import org.sonar.api.utils.WorkUnit;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDto.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDto.java
index 1c891d53c60..a79a6e0376a 100644
--- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDto.java
+++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDto.java
@@ -21,9 +21,9 @@
package org.sonar.core.technicaldebt.db;
import org.sonar.api.rule.RuleKey;
-import org.sonar.api.technicaldebt.WorkUnit;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
+import org.sonar.api.utils.WorkUnit;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java b/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java
index 085cb82d638..4adfd392eeb 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtManagerTest.java
@@ -27,8 +27,8 @@ import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rules.Rule;
-import org.sonar.api.technicaldebt.WorkUnit;
import org.sonar.api.technicaldebt.server.Characteristic;
+import org.sonar.api.utils.WorkUnit;
import org.sonar.core.technicaldebt.db.CharacteristicDao;
import org.sonar.core.technicaldebt.db.CharacteristicDto;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModelTest.java b/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModelTest.java
index 12d927b5f62..dcf61654fc3 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModelTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/technicaldebt/DefaultTechnicalDebtModelTest.java
@@ -23,9 +23,9 @@ package org.sonar.core.technicaldebt;
import org.junit.Before;
import org.junit.Test;
import org.sonar.api.rule.RuleKey;
-import org.sonar.api.technicaldebt.WorkUnit;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
+import org.sonar.api.utils.WorkUnit;
import static org.fest.assertions.Assertions.assertThat;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtConverterTest.java b/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtConverterTest.java
index b158b3185cc..c196320b193 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtConverterTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtConverterTest.java
@@ -23,7 +23,7 @@ import org.junit.Before;
import org.junit.Test;
import org.sonar.api.config.Settings;
import org.sonar.api.issue.internal.WorkDayDuration;
-import org.sonar.api.technicaldebt.WorkUnit;
+import org.sonar.api.utils.WorkUnit;
import static org.fest.assertions.Assertions.assertThat;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizerTest.java b/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizerTest.java
index c1b83e5c119..b70f7c5132e 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizerTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtModelSynchronizerTest.java
@@ -30,10 +30,10 @@ import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rules.Rule;
-import org.sonar.api.technicaldebt.WorkUnit;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import org.sonar.api.utils.ValidationMessages;
+import org.sonar.api.utils.WorkUnit;
import org.sonar.core.persistence.MyBatis;
import org.sonar.core.technicaldebt.db.CharacteristicDao;
import org.sonar.core.technicaldebt.db.CharacteristicDto;
diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest.java b/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest.java
index 2a606c82757..1670422d435 100644
--- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/technicaldebt/TechnicalDebtXMLImporterTest.java
@@ -29,10 +29,10 @@ import org.mockito.Mockito;
import org.sonar.api.rules.Rule;
import org.sonar.api.rules.RuleFinder;
import org.sonar.api.rules.RuleQuery;
-import org.sonar.api.technicaldebt.WorkUnit;
-import org.sonar.api.technicaldebt.internal.DefaultCharacteristic;
-import org.sonar.api.technicaldebt.internal.DefaultRequirement;
+import org.sonar.api.technicaldebt.batch.internal.DefaultCharacteristic;
+import org.sonar.api.technicaldebt.batch.internal.DefaultRequirement;
import org.sonar.api.utils.ValidationMessages;
+import org.sonar.api.utils.WorkUnit;
import java.io.IOException;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/Requirement.java b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/Requirement.java
index c72f97e163b..6e4116edc63 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/Requirement.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/Requirement.java
@@ -21,7 +21,7 @@
package org.sonar.api.technicaldebt.batch;
import org.sonar.api.rule.RuleKey;
-import org.sonar.api.technicaldebt.WorkUnit;
+import org.sonar.api.utils.WorkUnit;
import java.util.Date;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/internal/DefaultCharacteristic.java b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/internal/DefaultCharacteristic.java
index 6252ab59746..ac559b72f59 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/internal/DefaultCharacteristic.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/internal/DefaultCharacteristic.java
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.api.technicaldebt.internal;
+package org.sonar.api.technicaldebt.batch.internal;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
@@ -79,6 +79,7 @@ public class DefaultCharacteristic implements Characteristic {
return this;
}
+ // TODO Replace this is a TechnicalDebtFactory class
public Characteristic setName(String s, boolean asKey) {
this.name = StringUtils.trimToNull(s);
if (asKey) {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/internal/DefaultRequirement.java b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/internal/DefaultRequirement.java
index 6ae1551b4b8..66f4778c5e4 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/internal/DefaultRequirement.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/batch/internal/DefaultRequirement.java
@@ -18,13 +18,13 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.api.technicaldebt.internal;
+package org.sonar.api.technicaldebt.batch.internal;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.sonar.api.rule.RuleKey;
-import org.sonar.api.technicaldebt.WorkUnit;
import org.sonar.api.technicaldebt.batch.Requirement;
+import org.sonar.api.utils.WorkUnit;
import java.util.Date;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/server/Characteristic.java b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/server/Characteristic.java
index f42c6ea8564..dc227360496 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/server/Characteristic.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/server/Characteristic.java
@@ -20,161 +20,40 @@
package org.sonar.api.technicaldebt.server;
-import org.apache.commons.lang.builder.ToStringBuilder;
-import org.apache.commons.lang.builder.ToStringStyle;
import org.sonar.api.rule.RuleKey;
-import org.sonar.api.technicaldebt.WorkUnit;
+import org.sonar.api.utils.WorkUnit;
import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
/**
* @since 4.1
*/
-public class Characteristic {
-
- private Integer id;
- private String key;
- private String name;
- private Integer order;
- private Integer parentId;
- private Integer rootId;
- private RuleKey ruleKey;
- private String function;
- private WorkUnit factor;
- private WorkUnit offset;
-
- public Integer id() {
- return id;
- }
-
- public Characteristic setId(Integer id) {
- this.id = id;
- return this;
- }
-
- public String key() {
- return key;
- }
-
- public Characteristic setKey(String key) {
- this.key = key;
- return this;
- }
-
- public String name() {
- return name;
- }
-
- public Characteristic setName(String name) {
- this.name = name;
- return this;
- }
-
- public Integer order() {
- return order;
- }
-
- public Characteristic setOrder(Integer order) {
- this.order = order;
- return this;
- }
+public interface Characteristic {
- @CheckForNull
- public Integer parentId() {
- return parentId;
- }
+ Integer id();
+
+ String key();
+
+ String name();
- public Characteristic setParentId(@Nullable Integer parentId) {
- this.parentId = parentId;
- return this;
- }
+ Integer order();
@CheckForNull
- public Integer rootId() {
- return rootId;
- }
-
- public Characteristic setRootId(@Nullable Integer rootId) {
- this.rootId = rootId;
- return this;
- }
-
- public RuleKey ruleKey() {
- return ruleKey;
- }
-
- public Characteristic setRuleKey(RuleKey ruleKey) {
- this.ruleKey = ruleKey;
- return this;
- }
-
- public String function() {
- return function;
- }
-
- public Characteristic setFunction(String function) {
- this.function = function;
- return this;
- }
-
- public WorkUnit factor() {
- return factor;
- }
-
- public Characteristic setFactor(WorkUnit factor) {
- this.factor = factor;
- return this;
- }
-
- public WorkUnit offset() {
- return offset;
- }
-
- public Characteristic setOffset(WorkUnit offset) {
- this.offset = offset;
- return this;
- }
-
- public boolean isRoot() {
- return parentId == null;
- }
-
- public boolean isRequirement() {
- return ruleKey == null;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- Characteristic that = (Characteristic) o;
-
- if (key != null ? !key.equals(that.key) : that.key != null) {
- return false;
- }
- if (ruleKey != null ? !ruleKey.equals(that.ruleKey) : that.ruleKey != null) {
- return false;
- }
-
- return true;
- }
-
- @Override
- public int hashCode() {
- int result = key != null ? key.hashCode() : 0;
- result = 31 * result + (ruleKey != null ? ruleKey.hashCode() : 0);
- return result;
- }
-
- @Override
- public String toString() {
- return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
- }
+ Integer parentId();
+
+ @CheckForNull
+ Integer rootId();
+
+ RuleKey ruleKey();
+
+ String function();
+
+ WorkUnit factor();
+
+ WorkUnit offset();
+
+ boolean isRoot();
+
+ boolean isRequirement();
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/server/internal/DefaultCharacteristic.java b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/server/internal/DefaultCharacteristic.java
new file mode 100644
index 00000000000..0f643a0b0a1
--- /dev/null
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/server/internal/DefaultCharacteristic.java
@@ -0,0 +1,181 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2013 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+package org.sonar.api.technicaldebt.server.internal;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.commons.lang.builder.ToStringStyle;
+import org.sonar.api.rule.RuleKey;
+import org.sonar.api.technicaldebt.server.Characteristic;
+import org.sonar.api.utils.WorkUnit;
+
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+
+/**
+ * @since 4.1
+ */
+public class DefaultCharacteristic implements Characteristic {
+
+ private Integer id;
+ private String key;
+ private String name;
+ private Integer order;
+ private Integer parentId;
+ private Integer rootId;
+ private RuleKey ruleKey;
+ private String function;
+ private WorkUnit factor;
+ private WorkUnit offset;
+
+ public Integer id() {
+ return id;
+ }
+
+ public DefaultCharacteristic setId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public String key() {
+ return key;
+ }
+
+ public DefaultCharacteristic setKey(String key) {
+ this.key = key;
+ return this;
+ }
+
+ public String name() {
+ return name;
+ }
+
+ public DefaultCharacteristic setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public Integer order() {
+ return order;
+ }
+
+ public DefaultCharacteristic setOrder(Integer order) {
+ this.order = order;
+ return this;
+ }
+
+ @CheckForNull
+ public Integer parentId() {
+ return parentId;
+ }
+
+ public DefaultCharacteristic setParentId(@Nullable Integer parentId) {
+ this.parentId = parentId;
+ return this;
+ }
+
+ @CheckForNull
+ public Integer rootId() {
+ return rootId;
+ }
+
+ public DefaultCharacteristic setRootId(@Nullable Integer rootId) {
+ this.rootId = rootId;
+ return this;
+ }
+
+ public RuleKey ruleKey() {
+ return ruleKey;
+ }
+
+ public DefaultCharacteristic setRuleKey(RuleKey ruleKey) {
+ this.ruleKey = ruleKey;
+ return this;
+ }
+
+ public String function() {
+ return function;
+ }
+
+ public DefaultCharacteristic setFunction(String function) {
+ this.function = function;
+ return this;
+ }
+
+ public WorkUnit factor() {
+ return factor;
+ }
+
+ public DefaultCharacteristic setFactor(WorkUnit factor) {
+ this.factor = factor;
+ return this;
+ }
+
+ public WorkUnit offset() {
+ return offset;
+ }
+
+ public DefaultCharacteristic setOffset(WorkUnit offset) {
+ this.offset = offset;
+ return this;
+ }
+
+ public boolean isRoot() {
+ return parentId == null;
+ }
+
+ public boolean isRequirement() {
+ return ruleKey == null;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ DefaultCharacteristic that = (DefaultCharacteristic) o;
+
+ if (key != null ? !key.equals(that.key) : that.key != null) {
+ return false;
+ }
+ if (ruleKey != null ? !ruleKey.equals(that.ruleKey) : that.ruleKey != null) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = key != null ? key.hashCode() : 0;
+ result = 31 * result + (ruleKey != null ? ruleKey.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+ }
+
+}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/WorkUnit.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/WorkUnit.java
index febef93870c..417666ce282 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/technicaldebt/WorkUnit.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/WorkUnit.java
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.api.technicaldebt;
+package org.sonar.api.utils;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
diff --git a/sonar-server/src/test/java/org/sonar/server/technicaldebt/InternalRubyTechnicalDebtServiceTest.java b/sonar-server/src/test/java/org/sonar/server/technicaldebt/InternalRubyTechnicalDebtServiceTest.java
index b41e21919c7..f3f836a312b 100644
--- a/sonar-server/src/test/java/org/sonar/server/technicaldebt/InternalRubyTechnicalDebtServiceTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/technicaldebt/InternalRubyTechnicalDebtServiceTest.java
@@ -27,6 +27,7 @@ import org.mockito.runners.MockitoJUnitRunner;
import org.sonar.api.issue.internal.WorkDayDuration;
import org.sonar.api.rules.Rule;
import org.sonar.api.technicaldebt.server.Characteristic;
+import org.sonar.api.technicaldebt.server.internal.DefaultCharacteristic;
import org.sonar.core.technicaldebt.DefaultTechnicalDebtManager;
import java.util.List;
@@ -77,14 +78,14 @@ public class InternalRubyTechnicalDebtServiceTest {
@Test
public void find_requirement() {
Rule rule = Rule.create("repo", "key");
- Characteristic requirement = new Characteristic();
+ Characteristic requirement = new DefaultCharacteristic();
when(finder.findRequirementByRule(rule)).thenReturn(requirement);
assertThat(service.findRequirement(rule)).isEqualTo(requirement);
}
@Test
public void find_characteristic() {
- Characteristic characteristic = new Characteristic();
+ Characteristic characteristic = new DefaultCharacteristic();
when(finder.findCharacteristicById(1)).thenReturn(characteristic);
assertThat(service.findCharacteristic(1)).isEqualTo(characteristic);
}