aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-plugin-api
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-plugin-api')
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java7
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java18
-rw-r--r--sonar-plugin-api/src/test/java/org/sonar/api/issue/internal/DefaultIssueTest.java8
3 files changed, 23 insertions, 10 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
index 177e8eca2d4..847d1d65eca 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
@@ -23,7 +23,6 @@ import com.google.common.collect.ImmutableList;
import org.sonar.api.rule.RuleKey;
import javax.annotation.CheckForNull;
-
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@@ -103,6 +102,12 @@ public interface Issue extends Serializable {
Double effortToFix();
/**
+ * Elapsed time in minutes to fix the issue
+ */
+ @CheckForNull
+ Long remediationCost();
+
+ /**
* See constant values in {@link Issue}.
*/
String status();
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java
index 2214acfe5f5..a195ab4ea80 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java
@@ -37,13 +37,8 @@ import org.sonar.api.rule.Severity;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
-
import java.io.Serializable;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* PLUGINS MUST NOT BE USED THIS CLASS, EXCEPT FOR UNIT TESTING.
@@ -61,6 +56,7 @@ public class DefaultIssue implements Issue {
private String message;
private Integer line;
private Double effortToFix;
+ private Long remediationCost;
private String status;
private String resolution;
private String reporter;
@@ -190,6 +186,16 @@ public class DefaultIssue implements Issue {
return this;
}
+ @CheckForNull
+ public Long remediationCost() {
+ return remediationCost;
+ }
+
+ public DefaultIssue setRemediationCost(@Nullable Long r) {
+ this.remediationCost = r;
+ return this;
+ }
+
public String status() {
return status;
}
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/issue/internal/DefaultIssueTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/issue/internal/DefaultIssueTest.java
index 40646371131..32f164eb4e7 100644
--- a/sonar-plugin-api/src/test/java/org/sonar/api/issue/internal/DefaultIssueTest.java
+++ b/sonar-plugin-api/src/test/java/org/sonar/api/issue/internal/DefaultIssueTest.java
@@ -48,6 +48,7 @@ public class DefaultIssueTest {
.setMessage("a message")
.setLine(7)
.setEffortToFix(1.2d)
+ .setRemediationCost(1L)
.setActionPlanKey("BCDE")
.setStatus(Issue.STATUS_CLOSED)
.setResolution(Issue.RESOLUTION_FIXED)
@@ -75,6 +76,7 @@ public class DefaultIssueTest {
assertThat(issue.message()).isEqualTo("a message");
assertThat(issue.line()).isEqualTo(7);
assertThat(issue.effortToFix()).isEqualTo(1.2d);
+ assertThat(issue.remediationCost()).isEqualTo(1L);
assertThat(issue.actionPlanKey()).isEqualTo("BCDE");
assertThat(issue.status()).isEqualTo(Issue.STATUS_CLOSED);
assertThat(issue.resolution()).isEqualTo(Issue.RESOLUTION_FIXED);
@@ -94,7 +96,7 @@ public class DefaultIssueTest {
}
@Test
- public void should_set_empty_dates() throws Exception {
+ public void set_empty_dates() throws Exception {
issue
.setCreationDate(null)
.setUpdateDate(null)
@@ -134,7 +136,7 @@ public class DefaultIssueTest {
}
@Test
- public void should_fail_on_empty_status() {
+ public void fail_on_empty_status() {
try {
issue.setStatus("");
fail();
@@ -144,7 +146,7 @@ public class DefaultIssueTest {
}
@Test
- public void should_fail_on_bad_severity() {
+ public void fail_on_bad_severity() {
try {
issue.setSeverity("FOO");
fail();