46 lines
1.5 KiB
Diff
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;
|
|
}
|