From 2ec12bf1b6ea57eaaa2f1feae0df1b2f3f702d3c Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Mon, 17 Mar 2014 15:28:42 +0100 Subject: Add Issues.componentById() helper --- .../src/main/java/org/sonar/wsclient/issue/Issues.java | 3 +++ .../org/sonar/wsclient/issue/internal/DefaultIssues.java | 13 +++++++++---- .../sonar/wsclient/issue/internal/IssueJsonParserTest.java | 2 ++ 3 files changed, 14 insertions(+), 4 deletions(-) (limited to 'sonar-ws-client') diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/Issues.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/Issues.java index 7e6fc88e203..0b7de948226 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/Issues.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/Issues.java @@ -51,6 +51,9 @@ public interface Issues { @CheckForNull Component component(Issue issue); + @CheckForNull + Component componentById(long id); + Collection projects(); @CheckForNull diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssues.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssues.java index e4693e370e4..2b76fa74634 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssues.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssues.java @@ -40,7 +40,7 @@ public class DefaultIssues implements Issues { private final List list = new ArrayList(); private final Map rulesByKey = new HashMap(); private final Map usersByKey = new HashMap(); - private final Map componentsByKey = new HashMap(); + private final Map componentsById = new HashMap(); private final Map projectsByKey = new HashMap(); private final Map actionPlansByKey = new HashMap(); private Paging paging; @@ -72,12 +72,17 @@ public class DefaultIssues implements Issues { } public Collection components() { - return componentsByKey.values(); + return componentsById.values(); } @CheckForNull public Component component(Issue issue) { - return componentsByKey.get(issue.componentKey()); + return componentsById.get(issue.componentId()); + } + + @CheckForNull + public Component componentById(long id) { + return componentsById.get(id); } public Collection projects() { @@ -128,7 +133,7 @@ public class DefaultIssues implements Issues { } DefaultIssues addComponent(Component c) { - componentsByKey.put(c.key(), c); + componentsById.put(c.id(), c); return this; } diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/IssueJsonParserTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/IssueJsonParserTest.java index 2ea31630d82..5e5948fcc6a 100644 --- a/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/IssueJsonParserTest.java +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/IssueJsonParserTest.java @@ -167,6 +167,8 @@ public class IssueJsonParserTest { assertThat(component.longName()).isEqualTo("org.struts.Action"); assertThat(component.subProjectId()).isEqualTo(2L); assertThat(component.projectId()).isEqualTo(1L); + + assertThat(issues.componentById(10).key()).isEqualTo("struts:Action.java"); } @Test -- cgit v1.2.3