java-topology/defects/onos/patch/onos-0003-roleinfo-backups-immutablelist-linear.patch

46 lines
1.5 KiB
Diff

# UNDF: UNDF-2026-000000198
--- a/core/api/src/main/java/org/onosproject/cluster/RoleInfo.java
+++ b/core/api/src/main/java/org/onosproject/cluster/RoleInfo.java
@@ -17,10 +17,10 @@
package org.onosproject.cluster;
-import java.util.List;
+import java.util.Collection;
import java.util.Objects;
import java.util.Optional;
+import java.util.Set;
import com.google.common.base.MoreObjects;
-import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
/**
* An immutable container for role information for a device,
@@ -29,16 +29,18 @@ import com.google.common.collect.ImmutableList;
public class RoleInfo {
private final Optional<NodeId> master;
- private final List<NodeId> backups;
+ // ImmutableSet provides O(1) contains() vs ImmutableList O(n)
+ private final Set<NodeId> backups;
- public RoleInfo(NodeId master, List<NodeId> backups) {
+ public RoleInfo(NodeId master, Collection<NodeId> backups) {
this.master = Optional.ofNullable(master);
- this.backups = ImmutableList.copyOf(backups);
+ this.backups = ImmutableSet.copyOf(backups);
}
public RoleInfo() {
this.master = Optional.empty();
- this.backups = ImmutableList.of();
+ this.backups = ImmutableSet.of();
}
public Optional<NodeId> master() {
@@ -47,7 +49,7 @@ public class RoleInfo {
}
- public List<NodeId> backups() {
+ public Set<NodeId> backups() {
return backups;
}