diff options
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.java | 18 |
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 { |