ReplicateRefUpdate: Drop awkward constructor A constructor taking an object with a set of refs and also one of those refs is an awkward pattern. Remove that code by using a small helper in the UriUpdates interface. Change-Id: I999e57b405d009307bca023e5b9aa7f40c71fb58
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationTasksStorage.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationTasksStorage.java index d697d11..36c9c98 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationTasksStorage.java +++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationTasksStorage.java
@@ -68,14 +68,6 @@ public final String uri; public final String remote; - public ReplicateRefUpdate(UriUpdates uriUpdates, String ref) { - this( - uriUpdates.getProjectNameKey().get(), - ref, - uriUpdates.getURI(), - uriUpdates.getRemoteName()); - } - public ReplicateRefUpdate(String project, String ref, URIish uri, String remote) { this.project = project; this.ref = ref; @@ -119,14 +111,14 @@ } public synchronized void start(UriUpdates uriUpdates) { - for (String ref : uriUpdates.getRefs()) { - new Task(new ReplicateRefUpdate(uriUpdates, ref)).start(); + for (ReplicateRefUpdate update : uriUpdates.getReplicateRefUpdates()) { + new Task(update).start(); } } public synchronized void reset(UriUpdates uriUpdates) { - for (String ref : uriUpdates.getRefs()) { - new Task(new ReplicateRefUpdate(uriUpdates, ref)).reset(); + for (ReplicateRefUpdate update : uriUpdates.getReplicateRefUpdates()) { + new Task(update).reset(); } } @@ -137,8 +129,8 @@ } public synchronized void finish(UriUpdates uriUpdates) { - for (String ref : uriUpdates.getRefs()) { - new Task(new ReplicateRefUpdate(uriUpdates, ref)).finish(); + for (ReplicateRefUpdate update : uriUpdates.getReplicateRefUpdates()) { + new Task(update).finish(); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/UriUpdates.java b/src/main/java/com/googlesource/gerrit/plugins/replication/UriUpdates.java index d6d6adf..9c56c8e 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/replication/UriUpdates.java +++ b/src/main/java/com/googlesource/gerrit/plugins/replication/UriUpdates.java
@@ -15,7 +15,9 @@ package com.googlesource.gerrit.plugins.replication; import com.google.gerrit.entities.Project; +import java.util.List; import java.util.Set; +import java.util.stream.Collectors; import org.eclipse.jgit.transport.URIish; /** A data container for updates to a single URI */ @@ -27,4 +29,13 @@ String getRemoteName(); Set<String> getRefs(); + + default List<ReplicationTasksStorage.ReplicateRefUpdate> getReplicateRefUpdates() { + return getRefs().stream() + .map( + (ref) -> + new ReplicationTasksStorage.ReplicateRefUpdate( + getProjectNameKey().get(), ref, getURI(), getRemoteName())) + .collect(Collectors.toList()); + } }