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();
     }
 
     /**