Modified UI model objects to be backed merely by IDs of the core model objects.
Change-Id: I4ca81fb1c877ee4ce4209d405fd8c6645c8f5d20
diff --git a/core/api/src/main/java/org/onosproject/ui/model/topo/UiClusterMember.java b/core/api/src/main/java/org/onosproject/ui/model/topo/UiClusterMember.java
index 934559f..f30d9dc 100644
--- a/core/api/src/main/java/org/onosproject/ui/model/topo/UiClusterMember.java
+++ b/core/api/src/main/java/org/onosproject/ui/model/topo/UiClusterMember.java
@@ -20,6 +20,7 @@
import org.onosproject.cluster.ControllerNode;
import org.onosproject.cluster.NodeId;
+import static com.google.common.base.Preconditions.checkNotNull;
import static org.onosproject.cluster.ControllerNode.State.INACTIVE;
/**
@@ -27,8 +28,10 @@
*/
public class UiClusterMember extends UiElement {
+ private static final String NODE_CANNOT_BE_NULL = "Node cannot be null";
+
private final UiTopology topology;
- private final ControllerNode cnode;
+ private final NodeId nodeId;
private ControllerNode.State state = INACTIVE;
@@ -40,13 +43,14 @@
* @param cnode underlying controller node
*/
public UiClusterMember(UiTopology topology, ControllerNode cnode) {
+ checkNotNull(cnode, NODE_CANNOT_BE_NULL);
this.topology = topology;
- this.cnode = cnode;
+ this.nodeId = cnode.id();
}
@Override
public String toString() {
- return "UiClusterMember{" + cnode +
+ return "UiClusterMember{" + nodeId +
", online=" + isOnline() +
", ready=" + isReady() +
"}";
@@ -63,7 +67,7 @@
* @return the backing controller node instance
*/
public ControllerNode backingNode() {
- return cnode;
+ return topology.services.cluster().getNode(nodeId);
}
/**
@@ -81,7 +85,7 @@
* @return member identifier
*/
public NodeId id() {
- return cnode.id();
+ return nodeId;
}
/**
@@ -90,7 +94,7 @@
* @return the IP address
*/
public IpAddress ip() {
- return cnode.ip();
+ return backingNode().ip();
}
/**