ExportReviewNotes: Simplify code by using Multimap Change-Id: Ide4a7ce1837d90ad6c60ffa29365ba3733150958 Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/ExportReviewNotes.java b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/ExportReviewNotes.java index 2b1968c..80c5fa5 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/ExportReviewNotes.java +++ b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/ExportReviewNotes.java
@@ -14,6 +14,8 @@ package com.googlesource.gerrit.plugins.reviewnotes; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ListMultimap; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.server.ReviewDb; @@ -28,12 +30,10 @@ import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.TextProgressMonitor; import org.eclipse.jgit.lib.ThreadSafeProgressMonitor; -import org.eclipse.jgit.util.BlockList; import org.kohsuke.args4j.Option; import java.io.IOException; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -52,7 +52,7 @@ @Inject private CreateReviewNotes.Factory reviewNotesFactory; - private Map<Project.NameKey, List<Change>> changes; + private ListMultimap<Project.NameKey, Change> changes; private ThreadSafeProgressMonitor monitor; @Override @@ -84,16 +84,11 @@ } } - private Map<Project.NameKey, List<Change>> cluster(List<Change> changes) { - HashMap<Project.NameKey, List<Change>> m = new HashMap<>(); + private ListMultimap<Project.NameKey, Change> cluster(List<Change> changes) { + ListMultimap<Project.NameKey, Change> m = ArrayListMultimap.create(); for (Change change : changes) { if (change.getStatus() == Change.Status.MERGED) { - List<Change> l = m.get(change.getProject()); - if (l == null) { - l = new BlockList<>(); - m.put(change.getProject(), l); - } - l.add(change); + m.put(change.getProject(), change); } else { monitor.update(1); } @@ -121,7 +116,7 @@ } final Project.NameKey name = changes.keySet().iterator().next(); - final List<Change> list = changes.remove(name); + final List<Change> list = changes.removeAll(name); return new Map.Entry<Project.NameKey, List<Change>>() { @Override public Project.NameKey getKey() {