Topology interface to use Dpid, PortNumber

- Modified Switch interface to use Dpid, PortNumber instead of Long
- Modified Port interface to use Dpid, PortNumber instead of Long
- Modified Topology interface which uses Dpid, PortNumber, SwitchPort

- PortImpl#toString() format has changed: "%d:%d" -> "Dpid#toString():PortNumber#toString"

- Part of ONOS-1564

Change-Id: I8decdbb2fb0cce9e087ad49af3a087b65b8511d7
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java b/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java
index d48e222..2bba015 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java
@@ -8,6 +8,8 @@
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import net.floodlightcontroller.util.MACAddress;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.PortNumber;
 import net.onrc.onos.core.util.SwitchPort;
 
 import org.slf4j.Logger;
@@ -18,7 +20,7 @@
     private static final Logger log = LoggerFactory.getLogger(TopologyImpl.class);
 
     // DPID -> Switch
-    private final ConcurrentMap<Long, Switch> switches;
+    private final ConcurrentMap<Dpid, Switch> switches;
     private final ConcurrentMap<MACAddress, Device> mac2Device;
 
     private final ConcurrentMap<SwitchPort, Link> outgoingLinks;
@@ -38,7 +40,7 @@
     }
 
     @Override
-    public Switch getSwitch(Long dpid) {
+    public Switch getSwitch(Dpid dpid) {
         // TODO Check if it is safe to directly return this Object.
         return switches.get(dpid);
     }
@@ -48,6 +50,10 @@
     }
 
     protected void removeSwitch(Long dpid) {
+        switches.remove(new Dpid(dpid));
+    }
+
+    protected void removeSwitch(Dpid dpid) {
         switches.remove(dpid);
     }
 
@@ -58,7 +64,7 @@
     }
 
     @Override
-    public Port getPort(Long dpid, Long number) {
+    public Port getPort(Dpid dpid, PortNumber number) {
         Switch sw = getSwitch(dpid);
         if (sw != null) {
             return sw.getPort(number);
@@ -67,18 +73,34 @@
     }
 
     @Override
-    public Link getOutgoingLink(Long dpid, Long number) {
-        return outgoingLinks.get(new SwitchPort(dpid, number.shortValue()));
+    public Port getPort(SwitchPort port) {
+        return getPort(port.dpid(), port.port());
     }
 
     @Override
-    public Link getIncomingLink(Long dpid, Long number) {
-        return incomingLinks.get(new SwitchPort(dpid, number.shortValue()));
+    public Link getOutgoingLink(Dpid dpid, PortNumber number) {
+        return outgoingLinks.get(new SwitchPort(dpid, number));
     }
 
     @Override
-    public Link getLink(Long srcDpid, Long srcNumber, Long dstDpid,
-                        Long dstNumber) {
+    public Link getOutgoingLink(SwitchPort port) {
+        return outgoingLinks.get(port);
+    }
+
+    @Override
+    public Link getIncomingLink(Dpid dpid, PortNumber number) {
+        return incomingLinks.get(new SwitchPort(dpid, number));
+    }
+
+    @Override
+    public Link getIncomingLink(SwitchPort port) {
+        return incomingLinks.get(port);
+    }
+
+    @Override
+    public Link getLink(Dpid srcDpid, PortNumber srcNumber,
+                        Dpid dstDpid, PortNumber dstNumber) {
+
         Link link = getOutgoingLink(srcDpid, srcNumber);
         if (link == null) {
             return null;