diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2013-11-29 10:44:16 +0100 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2013-11-29 10:44:25 +0100 |
commit | 0e4d8080593ae2e5892206c7df7d328f8676619f (patch) | |
tree | f752b31c2988d494a752b7e2c33b9a066ba04a3d | |
parent | 33f155e93d4472046dbac144e863d5ef21766654 (diff) | |
download | sonarqube-0e4d8080593ae2e5892206c7df7d328f8676619f.tar.gz sonarqube-0e4d8080593ae2e5892206c7df7d328f8676619f.zip |
SONAR-4831 Mode some technical debt classes to internal packages
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); } |