ONOS-6259: Topo2 - Implement server-side highlighting model (WIP)
- Enhanced BiLink to allow a UiLinkId as its identifier.
- Corrected aggregation of traffic data for synthetic links in regions.
- Removed TrafficLink copy constructor (not needed).

Change-Id: Ia7d84f28ec69737e7474bfc100262b837effef73
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Traffic2Monitor.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Traffic2Monitor.java
index 60e7e83..bccc63c 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Traffic2Monitor.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Traffic2Monitor.java
@@ -31,6 +31,8 @@
 import java.util.Map;
 import java.util.Set;
 
+import static org.onosproject.ui.model.topo.UiLinkId.uiLinkId;
+
 /**
  * Encapsulates the behavior of monitoring specific traffic patterns in the
  * Topology-2 view.
@@ -112,17 +114,13 @@
         Map<UiLinkId, TrafficLink> mappedByUiLinkId = new HashMap<>();
 
         for (TrafficLink tl : linksWithTraffic) {
-            UiLinkId tlid = UiLinkId.uiLinkId(tl.key());
+            UiLinkId tlid = uiLinkId(tl.key());
             UiSynthLink sl = synthLinkMap.get(tlid);
             if (sl != null) {
                 UiLinkId aggrid = sl.link().id();
-                TrafficLink aggregated = mappedByUiLinkId.get(aggrid);
-                if (aggregated == null) {
-                    aggregated = new TrafficLink(tl);
-                    mappedByUiLinkId.put(aggrid, aggregated);
-                } else {
-                    aggregated.mergeStats(tl);
-                }
+                TrafficLink aggregated =
+                        mappedByUiLinkId.computeIfAbsent(aggrid, TrafficLink::new);
+                aggregated.mergeStats(tl);
             }
         }