PortNumber fixes

- hide new PortNumber(short) and use PortNumber.uint16 instead
- added utility to get PortNumber

Change-Id: Ia39fbe6e7126a3d9465d3035a06850c1d54a7f25
diff --git a/src/test/java/net/onrc/onos/api/flowmanager/SingleDstTreeFlowTest.java b/src/test/java/net/onrc/onos/api/flowmanager/SingleDstTreeFlowTest.java
index 1a40013..ae7b4e3 100644
--- a/src/test/java/net/onrc/onos/api/flowmanager/SingleDstTreeFlowTest.java
+++ b/src/test/java/net/onrc/onos/api/flowmanager/SingleDstTreeFlowTest.java
@@ -112,7 +112,7 @@
      */
     private List<Action> outputAction(int outputPort) {
         return Arrays.asList(
-                (Action) new OutputAction(new PortNumber((short) outputPort)));
+                (Action) new OutputAction(PortNumber.uint16((short) outputPort)));
     }
 
     /**
diff --git a/src/test/java/net/onrc/onos/apps/proxyarp/ProxyArpManagerTest.java b/src/test/java/net/onrc/onos/apps/proxyarp/ProxyArpManagerTest.java
index 901a14e..b9285de 100644
--- a/src/test/java/net/onrc/onos/apps/proxyarp/ProxyArpManagerTest.java
+++ b/src/test/java/net/onrc/onos/apps/proxyarp/ProxyArpManagerTest.java
@@ -121,8 +121,8 @@
         cachedIp2 = InetAddress.getByAddress(IPv4.toIPv4AddressBytes(cachedStrIp2));
 
         sw1Dpid = new Dpid(1L);
-        sw1Inport = new PortNumber((short) 1);
-        sw1Outport = new PortNumber((short) 2);
+        sw1Inport = PortNumber.uint16((short) 1);
+        sw1Outport = PortNumber.uint16((short) 2);
         vlanId = 1;
 
         //Made tested packets
diff --git a/src/test/java/net/onrc/onos/core/flowprogrammer/FlowPusherTest.java b/src/test/java/net/onrc/onos/core/flowprogrammer/FlowPusherTest.java
index f84c08f..6ad1e5f 100644
--- a/src/test/java/net/onrc/onos/core/flowprogrammer/FlowPusherTest.java
+++ b/src/test/java/net/onrc/onos/core/flowprogrammer/FlowPusherTest.java
@@ -408,8 +408,8 @@
         /*
         flowEntry1.setDpid(new Dpid(DPID_TO_VERIFY));
         flowEntry1.setFlowId(new FlowId(1));
-        flowEntry1.setInPort(new PortNumber((short) 1));
-        flowEntry1.setOutPort(new PortNumber((short) 11));
+        flowEntry1.setInPort(PortNumber.uint16((short) 1));
+        flowEntry1.setOutPort(PortNumber.uint16((short) 11));
         flowEntry1.setFlowEntryId(new FlowEntryId(1));
         flowEntry1.setFlowEntryMatch(new FlowEntryMatch());
         flowEntry1.setFlowEntryActions(new FlowEntryActions());
diff --git a/src/test/java/net/onrc/onos/core/hostmanager/HostManagerTest.java b/src/test/java/net/onrc/onos/core/hostmanager/HostManagerTest.java
index 1431a24..26ceb59 100644
--- a/src/test/java/net/onrc/onos/core/hostmanager/HostManagerTest.java
+++ b/src/test/java/net/onrc/onos/core/hostmanager/HostManagerTest.java
@@ -92,7 +92,7 @@
 
         expect(datagridService.createChannel("onos.host", Long.class, Host.class))
         .andReturn(eventChannel).once();
-        expect(topology.getOutgoingLink(new Dpid(1L), new PortNumber((short) 100))).andReturn(null).anyTimes();
+        expect(topology.getOutgoingLink(new Dpid(1L), PortNumber.uint16((short) 100))).andReturn(null).anyTimes();
         expect(datagridService.addListener(
                 eq("onos.host"),
                 anyObject(IEventChannelListener.class),
diff --git a/src/test/java/net/onrc/onos/core/intent/ConstrainedBFSTreeTest.java b/src/test/java/net/onrc/onos/core/intent/ConstrainedBFSTreeTest.java
index b9d2b07..a0095be 100644
--- a/src/test/java/net/onrc/onos/core/intent/ConstrainedBFSTreeTest.java
+++ b/src/test/java/net/onrc/onos/core/intent/ConstrainedBFSTreeTest.java
@@ -22,13 +22,13 @@
     private static final Dpid DPID_3 = new Dpid(3L);
     private static final Dpid DPID_4 = new Dpid(4L);
 
-    private static final PortNumber PORT_NUMBER_12 = new PortNumber((short) 12);
-    private static final PortNumber PORT_NUMBER_14 = new PortNumber((short) 14);
-    private static final PortNumber PORT_NUMBER_21 = new PortNumber((short) 21);
-    private static final PortNumber PORT_NUMBER_23 = new PortNumber((short) 23);
-    private static final PortNumber PORT_NUMBER_41 = new PortNumber((short) 41);
-    private static final PortNumber PORT_NUMBER_42 = new PortNumber((short) 42);
-    private static final PortNumber PORT_NUMBER_43 = new PortNumber((short) 43);
+    private static final PortNumber PORT_NUMBER_12 = PortNumber.uint16((short) 12);
+    private static final PortNumber PORT_NUMBER_14 = PortNumber.uint16((short) 14);
+    private static final PortNumber PORT_NUMBER_21 = PortNumber.uint16((short) 21);
+    private static final PortNumber PORT_NUMBER_23 = PortNumber.uint16((short) 23);
+    private static final PortNumber PORT_NUMBER_41 = PortNumber.uint16((short) 41);
+    private static final PortNumber PORT_NUMBER_42 = PortNumber.uint16((short) 42);
+    private static final PortNumber PORT_NUMBER_43 = PortNumber.uint16((short) 43);
 
     static final long LOCAL_PORT = 0xFFFEL;
 
diff --git a/src/test/java/net/onrc/onos/core/intent/PathIntentMapTest.java b/src/test/java/net/onrc/onos/core/intent/PathIntentMapTest.java
index 1cadfb6..f0d7464 100644
--- a/src/test/java/net/onrc/onos/core/intent/PathIntentMapTest.java
+++ b/src/test/java/net/onrc/onos/core/intent/PathIntentMapTest.java
@@ -22,8 +22,8 @@
 import org.junit.Test;
 
 public class PathIntentMapTest {
-    private static final PortNumber PORT_NUMBER_1 = new PortNumber((short) 1);
-    private static final PortNumber PORT_NUMBER_3 = new PortNumber((short) 3);
+    private static final PortNumber PORT_NUMBER_1 = PortNumber.uint16((short) 1);
+    private static final PortNumber PORT_NUMBER_3 = PortNumber.uint16((short) 3);
     private static final Dpid DPID_1 = new Dpid(1L);
     private static final Dpid DPID_2 = new Dpid(2L);
     private static final Dpid DPID_3 = new Dpid(3L);
@@ -55,12 +55,12 @@
         port23 = createMock(Port.class);
         port31 = createMock(Port.class);
         port41 = createMock(Port.class);
-        expect(port11.getNumber()).andReturn(new PortNumber((short) 1)).anyTimes();
-        expect(port22.getNumber()).andReturn(new PortNumber((short) 2)).anyTimes();
-        expect(port21.getNumber()).andReturn(new PortNumber((short) 1)).anyTimes();
-        expect(port23.getNumber()).andReturn(new PortNumber((short) 3)).anyTimes();
-        expect(port31.getNumber()).andReturn(new PortNumber((short) 1)).anyTimes();
-        expect(port41.getNumber()).andReturn(new PortNumber((short) 1)).anyTimes();
+        expect(port11.getNumber()).andReturn(PortNumber.uint16((short) 1)).anyTimes();
+        expect(port22.getNumber()).andReturn(PortNumber.uint16((short) 2)).anyTimes();
+        expect(port21.getNumber()).andReturn(PortNumber.uint16((short) 1)).anyTimes();
+        expect(port23.getNumber()).andReturn(PortNumber.uint16((short) 3)).anyTimes();
+        expect(port31.getNumber()).andReturn(PortNumber.uint16((short) 1)).anyTimes();
+        expect(port41.getNumber()).andReturn(PortNumber.uint16((short) 1)).anyTimes();
         replay(port11);
         replay(port22);
         replay(port21);
diff --git a/src/test/java/net/onrc/onos/core/intent/PathIntentTest.java b/src/test/java/net/onrc/onos/core/intent/PathIntentTest.java
index 3149103..6ffc0f4 100644
--- a/src/test/java/net/onrc/onos/core/intent/PathIntentTest.java
+++ b/src/test/java/net/onrc/onos/core/intent/PathIntentTest.java
@@ -25,8 +25,8 @@
     private static final Dpid DPID_3 = new Dpid(3L);
     private static final Dpid DPID_4 = new Dpid(4L);
 
-    private static final PortNumber PORT_NUMBER_1 = new PortNumber((short) 1);
-    private static final PortNumber PORT_NUMBER_2 = new PortNumber((short) 2);
+    private static final PortNumber PORT_NUMBER_1 = PortNumber.uint16((short) 1);
+    private static final PortNumber PORT_NUMBER_2 = PortNumber.uint16((short) 2);
 
     @Before
     public void setUp() throws Exception {
diff --git a/src/test/java/net/onrc/onos/core/newintent/PathFlowIntentTest.java b/src/test/java/net/onrc/onos/core/newintent/PathFlowIntentTest.java
index c9da728..69c7277 100644
--- a/src/test/java/net/onrc/onos/core/newintent/PathFlowIntentTest.java
+++ b/src/test/java/net/onrc/onos/core/newintent/PathFlowIntentTest.java
@@ -21,7 +21,7 @@
     private final IntentId intentId2 = new IntentId(456);
     private final FlowId flowId1 = new FlowId(1L);
     private final PacketMatch match = new PacketMatchBuilder().build();
-    private final PortNumber port = new PortNumber((short) 1);
+    private final PortNumber port = PortNumber.uint16((short) 1);
 
     /**
      * Creates a PathFlowIntent.
diff --git a/src/test/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntentTest.java b/src/test/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntentTest.java
index 3799889..2c4b969 100644
--- a/src/test/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntentTest.java
+++ b/src/test/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntentTest.java
@@ -37,7 +37,7 @@
                 match,
                 Arrays.asList(switchPort1, switchPort2),
                 createTree(),
-                Arrays.asList((Action) new OutputAction(new PortNumber(port3))));
+                Arrays.asList((Action) new OutputAction(PortNumber.uint16(port3))));
         return new SingleDstTreeFlowIntent(intentId1, treeFlow);
     }
 
@@ -47,7 +47,7 @@
                 match,
                 Arrays.asList(switchPort1, switchPort3),
                 createTree(),
-                Arrays.asList((Action) new OutputAction(new PortNumber(port2))));
+                Arrays.asList((Action) new OutputAction(PortNumber.uint16(port2))));
         return new SingleDstTreeFlowIntent(intentId2, treeFlow);
     }
 
diff --git a/src/test/java/net/onrc/onos/core/topology/MockPacketOpticalTopology.java b/src/test/java/net/onrc/onos/core/topology/MockPacketOpticalTopology.java
index 79db75c..36b6abf 100644
--- a/src/test/java/net/onrc/onos/core/topology/MockPacketOpticalTopology.java
+++ b/src/test/java/net/onrc/onos/core/topology/MockPacketOpticalTopology.java
@@ -36,8 +36,7 @@
     @Override
     public Port addPort(Switch sw, Long portNumber) {
         PortEvent portEvent = new PortEvent(sw.getDpid(),
-                                            new PortNumber(portNumber
-                                                                   .shortValue()));
+                                    PortNumber.uint16(portNumber.shortValue()));
         portEvent.createStringAttribute(TopologyElement.TYPE,
                                         TopologyElement.TYPE_PACKET_LAYER);
         portEvent.createStringAttribute(TopologyElement.ELEMENT_TYPE,
@@ -85,8 +84,7 @@
     //todo - add t-port specific properties
     public Port addTPort(Switch sw, Long portNumber) {
         PortEvent portEvent = new PortEvent(sw.getDpid(),
-                                            new PortNumber(portNumber
-                                                                   .shortValue()));
+                                    PortNumber.uint16(portNumber.shortValue()));
         portEvent.createStringAttribute(TopologyElement.TYPE,
                                         TopologyElement.TYPE_OPTICAL_LAYER);
         portEvent.createStringAttribute(TopologyElement.ELEMENT_TYPE,
@@ -109,8 +107,7 @@
     //todo - add w-port specific properties
     public Port addWPort(Switch sw, Long portNumber) {
         PortEvent portEvent = new PortEvent(sw.getDpid(),
-                                            new PortNumber(portNumber
-                                                                   .shortValue()));
+                                    PortNumber.uint16(portNumber.shortValue()));
         portEvent.createStringAttribute(TopologyElement.TYPE,
                                         TopologyElement.TYPE_OPTICAL_LAYER);
         portEvent.createStringAttribute(TopologyElement.ELEMENT_TYPE,
@@ -146,8 +143,8 @@
 
         final Dpid srcDpidObj = new Dpid(srcDpid);
         final Dpid dstDpidObj = new Dpid(dstDpid);
-        final PortNumber srcPortNum = new PortNumber(srcPortNo.shortValue());
-        final PortNumber dstPortNum = new PortNumber(dstPortNo.shortValue());
+        final PortNumber srcPortNum = PortNumber.uint16(srcPortNo.shortValue());
+        final PortNumber dstPortNum = PortNumber.uint16(dstPortNo.shortValue());
         LinkEvent linkEvent = new LinkEvent(new SwitchPort(srcDpidObj,
                                                            srcPortNum),
                                             new SwitchPort(dstDpidObj,
diff --git a/src/test/java/net/onrc/onos/core/topology/MockTopology.java b/src/test/java/net/onrc/onos/core/topology/MockTopology.java
index 6afffb6..05660f7 100644
--- a/src/test/java/net/onrc/onos/core/topology/MockTopology.java
+++ b/src/test/java/net/onrc/onos/core/topology/MockTopology.java
@@ -29,7 +29,7 @@
 
     public Port addPort(Switch sw, Long portNumber) {
         PortEvent port = new PortEvent(sw.getDpid(),
-                                new PortNumber(portNumber.shortValue()));
+                                PortNumber.uint16(portNumber.shortValue()));
         ((TopologyImpl) this).putPort(port);
         return this.getPort(port.getSwitchPort());
     }
@@ -149,9 +149,9 @@
     public void removeLink(Long srcDpid, Long srcPortNo, Long dstDpid,
                            Long dstPortNo) {
         this.removeLink(new Dpid(srcDpid),
-                           new PortNumber(srcPortNo.shortValue()),
+                           PortNumber.uint16(srcPortNo.shortValue()),
                            new Dpid(dstDpid),
-                           new PortNumber(dstPortNo.shortValue()));
+                           PortNumber.uint16(dstPortNo.shortValue()));
     }
 
     public void removeLink(Dpid srcDpid, PortNumber srcPortNo,
diff --git a/src/test/java/net/onrc/onos/core/util/LinkTupleTest.java b/src/test/java/net/onrc/onos/core/util/LinkTupleTest.java
index 290b136..e281404 100644
--- a/src/test/java/net/onrc/onos/core/util/LinkTupleTest.java
+++ b/src/test/java/net/onrc/onos/core/util/LinkTupleTest.java
@@ -11,9 +11,9 @@
 public class LinkTupleTest {
 
     private static final Dpid SRC_DPID = new Dpid(9);
-    private static final PortNumber SRC_PORT_NUM = new PortNumber((short) 56);
+    private static final PortNumber SRC_PORT_NUM = PortNumber.uint16((short) 56);
     private static final Dpid DST_DPID = new Dpid(12);
-    private static final PortNumber DST_PORT_NUM = new PortNumber((short) 81);
+    private static final PortNumber DST_PORT_NUM = PortNumber.uint16((short) 81);
 
     private static final SwitchPort SRC = new SwitchPort(SRC_DPID, SRC_PORT_NUM);
     private static final SwitchPort DST = new SwitchPort(DST_DPID, DST_PORT_NUM);
@@ -21,8 +21,8 @@
 
     private static final LinkTuple L1 = new LinkTuple(SRC, DST);
     private static final LinkTuple L2 = new LinkTuple(
-            new SwitchPort(new Dpid(1), new PortNumber((short) 65535)),
-            new SwitchPort(new Dpid(2), new PortNumber((short) 65534)));
+            new SwitchPort(new Dpid(1), PortNumber.uint16((short) 65535)),
+            new SwitchPort(new Dpid(2), PortNumber.uint16((short) 65534)));
 
     /**
      * Test to confirm class definition is immutable.
diff --git a/src/test/java/net/onrc/onos/core/util/PortNumberTest.java b/src/test/java/net/onrc/onos/core/util/PortNumberTest.java
index d9fbddc..fa16481 100644
--- a/src/test/java/net/onrc/onos/core/util/PortNumberTest.java
+++ b/src/test/java/net/onrc/onos/core/util/PortNumberTest.java
@@ -102,9 +102,9 @@
      */
     @Test
     public void testShortValue() {
-        assertEquals(0L, new PortNumber((short) 0).shortValue());
+        assertEquals(0L, PortNumber.uint16((short) 0).shortValue());
 
-        assertEquals(1L, new PortNumber((short) 1).shortValue());
+        assertEquals(1L, PortNumber.uint16((short) 1).shortValue());
 
         // user of #shortValue() needs to be careful
         // simply widening them will result in negative value
@@ -121,9 +121,9 @@
      */
     @Test
     public void testLongValue() {
-        assertEquals(0L, new PortNumber((short) 0).value());
+        assertEquals(0L, PortNumber.uint16((short) 0).value());
 
-        assertEquals(1L, new PortNumber((short) 1).value());
+        assertEquals(1L, PortNumber.uint16((short) 1).value());
 
         assertEquals(0xffffL, new PortNumber(PORT_NONE).value());
     }
@@ -133,9 +133,9 @@
      */
     @Test
     public void testToString() {
-        assertEquals("0", new PortNumber((short) 0).toString());
+        assertEquals("0", PortNumber.uint16((short) 0).toString());
 
-        assertEquals("1", new PortNumber((short) 1).toString());
+        assertEquals("1", PortNumber.uint16((short) 1).toString());
 
         // 0xffff in decimal
         assertEquals("65535", new PortNumber(PORT_NONE).toString());
@@ -147,11 +147,11 @@
     @Test
     public void testEqualsObject() {
         // Some trivial
-        assertTrue(new PortNumber(PORT_NONE).equals(new PortNumber((short) 0xffff)));
-        assertFalse(new PortNumber((short) 0).equals(new PortNumber((short) 1)));
+        assertTrue(new PortNumber(PORT_NONE).equals(PortNumber.uint16((short) 0xffff)));
+        assertFalse(PortNumber.uint16((short) 0).equals(PortNumber.uint16((short) 1)));
 
         // different type
-        assertFalse(new PortNumber((short) 0).equals(Short.valueOf((short) 0)));
+        assertFalse(PortNumber.uint16((short) 0).equals(Short.valueOf((short) 0)));
 
     }
 
diff --git a/src/test/java/net/onrc/onos/core/util/PortNumberUtilsTest.java b/src/test/java/net/onrc/onos/core/util/PortNumberUtilsTest.java
new file mode 100644
index 0000000..2785c70
--- /dev/null
+++ b/src/test/java/net/onrc/onos/core/util/PortNumberUtilsTest.java
@@ -0,0 +1,100 @@
+package net.onrc.onos.core.util;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.projectfloodlight.openflow.protocol.OFFactories;
+import org.projectfloodlight.openflow.protocol.OFPortDesc;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.projectfloodlight.openflow.types.OFPort;
+
+/**
+ * Tests for {@link PortNumberUtils}.
+ */
+public class PortNumberUtilsTest {
+
+
+    /**
+     * Tests for {@link PortNumberUtils#of(OFVersion, int))}.
+     */
+    @Test
+    public void testOfOFVersionInt() {
+
+        assertEquals(PortNumber.uint32(0x1ffff),
+                PortNumberUtils.openFlow(OFVersion.OF_13, 0x1FFFF));
+
+        assertEquals(PortNumber.uint16((short) 0xabc),
+                PortNumberUtils.openFlow(OFVersion.OF_10, 0xabc));
+
+        try {
+            PortNumberUtils.openFlow(OFVersion.OF_10, 0x1FFFF);
+            fail("Should have thrown IllegalArgumentException");
+        } catch (IllegalArgumentException e) { // CHECKSTYLE IGNORE THIS LINE
+            // should throw
+        }
+    }
+
+    /**
+     * Tests for {@link PortNumberUtils#openFlow(OFPortDesc)}.
+     */
+    @Test
+    public void testOfOFPortDesc() {
+        final OFPortDesc desc10 = OFFactories.getFactory(OFVersion.OF_10)
+                .buildPortDesc()
+                .setPortNo(OFPort.of(123))
+                .build();
+
+        assertEquals(PortNumber.uint16((short) 123),
+                PortNumberUtils.openFlow(desc10));
+
+        final OFPortDesc desc13 = OFFactories.getFactory(OFVersion.OF_13)
+                .buildPortDesc()
+                .setPortNo(OFPort.of(0x1FFFF))
+                .build();
+
+        assertEquals(PortNumber.uint32(0x1FFFF),
+                PortNumberUtils.openFlow(desc13));
+    }
+
+    /**
+     * Tests for {@link PortNumberUtils#toOF10(int)}.
+     */
+    @Test
+    public void testToOF10() {
+        assertEquals((short) 0, PortNumberUtils.toOF10(0));
+        assertEquals((short) 1, PortNumberUtils.toOF10(1));
+        assertEquals((short) 0xFF00, PortNumberUtils.toOF10(0xFF00));
+        for (int i = 0xFF00 + 1; i < 0xFFf8; ++i) {
+            try {
+                PortNumberUtils.toOF10(i);
+                fail("Should have thrown IllegalArgumentException");
+            } catch (IllegalArgumentException e) { // CHECKSTYLE IGNORE THIS LINE
+                // should throw
+            }
+        }
+        assertEquals((short) 0xFFf8, PortNumberUtils.toOF10(0xFFf8));
+        assertEquals((short) 0xFFff, PortNumberUtils.toOF10(0xFFff));
+
+
+        // OFPort#getPortNumber can return int value outside OF1.0
+        // verifty that toOF10 converts them into valid OF1.0 range
+        assertEquals((short) 0xFF00,
+                PortNumberUtils.toOF10(OFPort.MAX.getPortNumber()));
+        assertEquals((short) 0xFFf8,
+                PortNumberUtils.toOF10(OFPort.IN_PORT.getPortNumber()));
+        assertEquals((short) 0xFFf9,
+                PortNumberUtils.toOF10(OFPort.TABLE.getPortNumber()));
+        assertEquals((short) 0xFFfa,
+                PortNumberUtils.toOF10(OFPort.NORMAL.getPortNumber()));
+        assertEquals((short) 0xFFfb,
+                PortNumberUtils.toOF10(OFPort.FLOOD.getPortNumber()));
+        assertEquals((short) 0xFFfc,
+                PortNumberUtils.toOF10(OFPort.ALL.getPortNumber()));
+        assertEquals((short) 0xFFfd,
+                PortNumberUtils.toOF10(OFPort.CONTROLLER.getPortNumber()));
+        assertEquals((short) 0xFFfe,
+                PortNumberUtils.toOF10(OFPort.LOCAL.getPortNumber()));
+        assertEquals((short) 0xFFff, // OFPP_NONE
+                PortNumberUtils.toOF10(OFPort.ANY.getPortNumber()));
+    }
+}
diff --git a/src/test/java/net/onrc/onos/core/util/SwitchPortTest.java b/src/test/java/net/onrc/onos/core/util/SwitchPortTest.java
index 2832dc1..af9efad 100644
--- a/src/test/java/net/onrc/onos/core/util/SwitchPortTest.java
+++ b/src/test/java/net/onrc/onos/core/util/SwitchPortTest.java
@@ -10,11 +10,11 @@
 public class SwitchPortTest {
 
     private static final Dpid DPID = new Dpid(9);
-    private static final PortNumber PORT_NUM = new PortNumber((short) 56);
+    private static final PortNumber PORT_NUM = PortNumber.uint16((short) 56);
 
     private static final SwitchPort SWP1 = new SwitchPort(DPID, PORT_NUM);
     private static final SwitchPort SWP2 = new SwitchPort(new Dpid(1),
-                                                 new PortNumber((short) 65535));
+                                                 PortNumber.uint16((short) 65535));
 
     /**
      * Tests to confirm 2-arg constructor.
diff --git a/src/test/java/net/onrc/onos/core/util/serializers/KryoFactoryTest.java b/src/test/java/net/onrc/onos/core/util/serializers/KryoFactoryTest.java
index 38a37a0..01b27ea 100644
--- a/src/test/java/net/onrc/onos/core/util/serializers/KryoFactoryTest.java
+++ b/src/test/java/net/onrc/onos/core/util/serializers/KryoFactoryTest.java
@@ -48,8 +48,8 @@
 
     private static final Dpid DPID_A = new Dpid(0x1234L);
     private static final Dpid DPID_B = new Dpid(Long.MAX_VALUE);
-    private static final PortNumber PORT_NO_A = new PortNumber((short) 42);
-    private static final PortNumber PORT_NO_B = new PortNumber((short) 65534);
+    private static final PortNumber PORT_NO_A = PortNumber.uint16((short) 42);
+    private static final PortNumber PORT_NO_B = PortNumber.uint16((short) 65534);
     private static final String ONOS_INSTANCE_NAME = "ONOS-Instance-Test";
 
     private static final double SEC_IN_NANO = 1000 * 1000 * 1000.0;