diff --git a/src/main/java/net/onrc/onos/core/linkdiscovery/NodePortTuple.java b/src/main/java/net/onrc/onos/core/linkdiscovery/NodePortTuple.java
index 8d7ba19..6e5e0c3 100644
--- a/src/main/java/net/onrc/onos/core/linkdiscovery/NodePortTuple.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/NodePortTuple.java
@@ -11,6 +11,7 @@
  * A NodePortTuple is similar to a SwitchPortTuple
  * but it only stores IDs instead of references
  * to the actual objects.
+ *
  * @author srini
  */
 public class NodePortTuple {
@@ -19,6 +20,7 @@
 
     /**
      * Creates a NodePortTuple
+     *
      * @param nodeId The DPID of the switch
      * @param portId The port of the switch
      */
@@ -33,22 +35,25 @@
     }
 
     @JsonProperty("switch")
-    @JsonSerialize(using=DPIDSerializer.class)
+    @JsonSerialize(using = DPIDSerializer.class)
     public long getNodeId() {
         return nodeId;
     }
+
     public void setNodeId(long nodeId) {
         this.nodeId = nodeId;
     }
+
     @JsonProperty("port")
-    @JsonSerialize(using=UShortSerializer.class)
+    @JsonSerialize(using = UShortSerializer.class)
     public short getPortId() {
         return portId;
     }
+
     public void setPortId(short portId) {
         this.portId = portId;
     }
-    
+
     public String toString() {
         return "[id=" + HexString.toHexString(nodeId) + ", port=" + new Short(portId) + "]";
     }
@@ -77,14 +82,15 @@
             return false;
         return true;
     }
-    
+
     /**
      * API to return a String value formed wtih NodeID and PortID
      * The portID is a 16-bit field, so mask it as an integer to get full
      * positive value
+     *
      * @return
      */
     public String toKeyString() {
-        return (HexString.toHexString(nodeId)+ "|" + (portId & 0xffff));
+        return (HexString.toHexString(nodeId) + "|" + (portId & 0xffff));
     }
 }
