ONOS-2186 - GUI Topo Overlay - (WIP)
- split BiLink into abstract superclass and concrete subclasses.
- created BiLinkMap to collate bilinks (and derivative subclasses).
- added missing Javadocs, and other general cleanup.
Change-Id: Icfa85bc44a223c6cf245a4005170583dad1cc801
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/LinkViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/LinkViewMessageHandler.java
index 18a5acd..c182180 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/LinkViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/LinkViewMessageHandler.java
@@ -18,21 +18,18 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Maps;
import org.onosproject.net.Link;
-import org.onosproject.net.LinkKey;
import org.onosproject.net.link.LinkService;
import org.onosproject.ui.RequestHandler;
import org.onosproject.ui.UiMessageHandler;
-import org.onosproject.ui.impl.topo.BiLink;
-import org.onosproject.ui.impl.topo.TopoUtils;
+import org.onosproject.ui.impl.topo.BaseLink;
+import org.onosproject.ui.impl.topo.BaseLinkMap;
import org.onosproject.ui.table.TableModel;
import org.onosproject.ui.table.TableRequestHandler;
import org.onosproject.ui.table.cell.ConnectPointFormatter;
import org.onosproject.ui.table.cell.EnumFormatter;
import java.util.Collection;
-import java.util.Map;
/**
* Message handler for link view related messages.
@@ -41,6 +38,7 @@
private static final String A_BOTH_B = "A ↔ B";
private static final String A_SINGLE_B = "A → B";
+ private static final String SLASH = " / ";
private static final String LINK_DATA_REQ = "linkDataRequest";
private static final String LINK_DATA_RESP = "linkDataResponse";
@@ -93,42 +91,37 @@
@Override
protected void populateTable(TableModel tm, ObjectNode payload) {
LinkService ls = get(LinkService.class);
-
- // First consolidate all uni-directional links into two-directional ones.
- Map<LinkKey, BiLink> biLinks = Maps.newHashMap();
- ls.getLinks().forEach(link -> TopoUtils.addLink(biLinks, link));
-
- // Now scan over all bi-links and produce table rows from them.
- biLinks.values().forEach(biLink -> populateRow(tm.addRow(), biLink));
+ BaseLinkMap linkMap = new BaseLinkMap();
+ ls.getLinks().forEach(linkMap::add);
+ linkMap.biLinks().forEach(blink -> populateRow(tm.addRow(), blink));
}
- private void populateRow(TableModel.Row row, BiLink biLink) {
- row.cell(ONE, biLink.one().src())
- .cell(TWO, biLink.one().dst())
- .cell(TYPE, linkType(biLink))
- .cell(STATE, linkState(biLink))
- .cell(DIRECTION, linkDir(biLink))
- .cell(DURABLE, biLink.one().isDurable());
+ private void populateRow(TableModel.Row row, BaseLink blink) {
+ row.cell(ONE, blink.one().src())
+ .cell(TWO, blink.one().dst())
+ .cell(TYPE, linkType(blink))
+ .cell(STATE, linkState(blink))
+ .cell(DIRECTION, linkDir(blink))
+ .cell(DURABLE, blink.one().isDurable());
}
- private String linkType(BiLink link) {
+ private String linkType(BaseLink link) {
StringBuilder sb = new StringBuilder();
sb.append(link.one().type());
if (link.two() != null && link.two().type() != link.one().type()) {
- sb.append(" / ").append(link.two().type());
+ sb.append(SLASH).append(link.two().type());
}
return sb.toString();
}
- private String linkState(BiLink link) {
+ private String linkState(BaseLink link) {
return (link.one().state() == Link.State.ACTIVE ||
link.two().state() == Link.State.ACTIVE) ?
ICON_ID_ONLINE : ICON_ID_OFFLINE;
}
- private String linkDir(BiLink link) {
+ private String linkDir(BaseLink link) {
return link.two() != null ? A_BOTH_B : A_SINGLE_B;
}
}
-
}