TeTopology core and nbi bug fixes and improvements

Change-Id: I5f3dbcaa79b04c1b1b00b9df7ccae804953c3bae
diff --git a/apps/tetopology/api/src/main/java/org/onosproject/tetopology/management/api/node/DefaultTunnelTerminationPoint.java b/apps/tetopology/api/src/main/java/org/onosproject/tetopology/management/api/node/DefaultTunnelTerminationPoint.java
index fd419ee..9bfa179 100644
--- a/apps/tetopology/api/src/main/java/org/onosproject/tetopology/management/api/node/DefaultTunnelTerminationPoint.java
+++ b/apps/tetopology/api/src/main/java/org/onosproject/tetopology/management/api/node/DefaultTunnelTerminationPoint.java
@@ -15,16 +15,17 @@
  */
 package org.onosproject.tetopology.management.api.node;
 
+import java.util.Arrays;
+import java.util.BitSet;
+import java.util.List;
+
+import org.onosproject.tetopology.management.api.EncodingType;
+import org.onosproject.tetopology.management.api.SwitchingType;
+
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
-import org.onosproject.tetopology.management.api.EncodingType;
-import org.onosproject.tetopology.management.api.SwitchingType;
-
-import java.util.Arrays;
-import java.util.BitSet;
-import java.util.List;
 
 /**
  * Default implementation of a tunnel termination point.
@@ -37,6 +38,7 @@
     private final List<Long> interLayerLockList;
     private final List<LocalLinkConnectivity> localLinkConnectivityList;
     private final float[] availAdaptBandwidth;
+    private final TtpKey supportTtpKey;
 
     /**
      * Create a tunnel termination point.
@@ -50,6 +52,7 @@
      * @param localLinkConnectivityList the local link connectivity list
      * @param availAdaptBandwidth       the remaining adaptation bandwidth
      *                                  at each priority level
+     * @param supportTtpKey             supporting TTP key from underlay topology
      */
     public DefaultTunnelTerminationPoint(long ttpId,
                                          SwitchingType switchingLayer,
@@ -57,7 +60,8 @@
                                          BitSet flags,
                                          List<Long> interLayerLockList,
                                          List<LocalLinkConnectivity> localLinkConnectivityList,
-                                         float[] availAdaptBandwidth) {
+                                         float[] availAdaptBandwidth,
+                                         TtpKey supportTtpKey) {
         this.ttpId = ttpId;
         this.switchingLayer = switchingLayer;
         this.encodingLayer = encodingLayer;
@@ -69,6 +73,7 @@
         this.availAdaptBandwidth = availAdaptBandwidth != null ?
                 Arrays.copyOf(availAdaptBandwidth,
                               availAdaptBandwidth.length) : null;
+        this.supportTtpKey = supportTtpKey;
     }
 
     @Override
@@ -116,10 +121,15 @@
     }
 
     @Override
+    public TtpKey supportingTtpId() {
+        return supportTtpKey;
+    }
+
+    @Override
     public int hashCode() {
         return Objects.hashCode(ttpId, switchingLayer, encodingLayer, flags,
                                 interLayerLockList, localLinkConnectivityList,
-                                Arrays.hashCode(availAdaptBandwidth));
+                                Arrays.hashCode(availAdaptBandwidth), supportTtpKey);
     }
 
     @Override
@@ -135,7 +145,8 @@
                     Objects.equal(flags, that.flags) &&
                     Objects.equal(interLayerLockList, that.interLayerLockList) &&
                     Objects.equal(localLinkConnectivityList, that.localLinkConnectivityList) &&
-                    Arrays.equals(availAdaptBandwidth, that.availAdaptBandwidth);
+                    Arrays.equals(availAdaptBandwidth, that.availAdaptBandwidth) &&
+                    Objects.equal(supportTtpKey, that.supportTtpKey);
         }
         return false;
     }
@@ -150,6 +161,8 @@
                 .add("interLayerLockList", interLayerLockList)
                 .add("localLinkConnectivityList", localLinkConnectivityList)
                 .add("availAdaptBandwidth", availAdaptBandwidth)
+                .add("supportTtpKey", supportTtpKey)
                 .toString();
     }
+
 }