aboutsummaryrefslogtreecommitdiffstats
path: root/config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java b/config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java
index 48464904f44..7464373df9e 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/Bcp.java
@@ -6,6 +6,7 @@ import java.time.Duration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@@ -39,23 +40,30 @@ import java.util.stream.Collectors;
*/
public class Bcp {
- private static final Bcp empty = new Bcp(List.of());
+ private static final Bcp empty = new Bcp(List.of(), Optional.empty());
+ private final Optional<Duration> defaultDeadline;
private final List<Group> groups;
- public Bcp(List<Group> groups) {
+ public Bcp(List<Group> groups, Optional<Duration> defaultDeadline) {
totalMembershipSumsToOne(groups);
+ this.defaultDeadline = defaultDeadline;
this.groups = List.copyOf(groups);
}
+ public Optional<Duration> defaultDeadline() { return defaultDeadline; }
public List<Group> groups() { return groups; }
+ public Bcp withGroups(List<Group> groups) {
+ return new Bcp(groups, defaultDeadline);
+ }
+
/** Returns the set of regions declared in the groups of this. */
public Set<RegionName> regions() {
return groups.stream().flatMap(group -> group.members().stream()).map(member -> member.region()).collect(Collectors.toSet());
}
- public boolean isEmpty() { return groups.isEmpty(); }
+ public boolean isEmpty() { return groups.isEmpty() && defaultDeadline.isEmpty(); }
/** Returns this bcp spec, or if it is empty, the given bcp spec. */
public Bcp orElse(Bcp other) {
@@ -81,7 +89,9 @@ public class Bcp {
@Override
public String toString() {
if (isEmpty()) return "empty BCP";
- return "BCP of " + groups;
+ return "BCP of " +
+ ( groups.isEmpty() ? "no groups" : groups ) +
+ (defaultDeadline.isEmpty() ? "" : ", deadline: " + defaultDeadline.get());
}
public static class Group {