TE Topology YANG Notification bug fixes in converter

Change-Id: Ifae23070132fdf7a2932445a555cb13cc6b9de52
diff --git a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/LinkConverter.java b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/LinkConverter.java
index 3bc16a6..933b9be 100644
--- a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/LinkConverter.java
+++ b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/LinkConverter.java
@@ -936,21 +936,30 @@
      */
     public static TeLinkEvent teNetworkLink2yangTeLinkEvent(TeTopologyEventTypeEnum eventType,
                                                             NetworkLinkEventSubject linkData) {
-        TeLinkEvent.TeLinkEventBuilder builder = new DefaultTeLinkEvent.TeLinkEventBuilder();
+        TeLinkEvent.TeLinkEventBuilder teLinkEventBuilder = new DefaultTeLinkEvent.TeLinkEventBuilder();
 
         TeTopologyEventType yangEventType = new TeTopologyEventType(eventType);
-        builder.eventType(yangEventType);
-        NetworkId newtorkId = NetworkId.fromString(linkData.key().networkId().toString());
-        builder.networkRef(newtorkId);
+        teLinkEventBuilder.eventType(yangEventType);
+        NetworkId networkId = NetworkId.fromString(linkData.key().networkId().toString());
+        teLinkEventBuilder.networkRef(networkId);
         LinkId linkId = LinkId.fromString(linkData.key().linkId().toString());
-        builder.linkRef(linkId);
+        teLinkEventBuilder.linkRef(linkId);
 
-        NetworkLink link = linkData.networkLink();
-        TeLinkAttributes teLinkAttributes = link == null ? null
-                                                         : teLink2YangConfig(link.teLink()).teLinkAttributes();
-        builder.teLinkAttributes(teLinkAttributes);
+        if (linkData != null && linkData.networkLink() != null) {
+            NetworkLink link = linkData.networkLink();
+            State yangTeLinkState = teLink2YangState(link.teLink());
 
-        return builder.build();
+            teLinkEventBuilder.operStatus(yangTeLinkState.operStatus());
+            teLinkEventBuilder.informationSource(yangTeLinkState.informationSource());
+            teLinkEventBuilder.informationSourceEntry(yangTeLinkState.informationSourceEntry());
+            teLinkEventBuilder.informationSourceState(yangTeLinkState.informationSourceState());
+            teLinkEventBuilder.isTransitional(yangTeLinkState.isTransitional());
+            teLinkEventBuilder.recovery(yangTeLinkState.recovery());
+            teLinkEventBuilder.teLinkAttributes(yangTeLinkState.teLinkAttributes());
+            teLinkEventBuilder.underlay(yangTeLinkState.underlay());
+        }
+
+        return teLinkEventBuilder.build();
     }
 
     public static NetworkLinkKey yangLinkEvent2NetworkLinkKey(TeLinkEvent yangLinkEvent) {
@@ -983,6 +992,9 @@
         }
 
         NodeTpKey sourceTp = networkLink.source();
+        if (sourceTp == null) {
+            return null;
+        }
         NodeTpKey destTp = networkLink.destination();
 
         List<NetworkLinkKey> supportingLinkIds = networkLink.supportingLinkIds();
@@ -1011,13 +1023,13 @@
 
         TeLinkTpKey teLinkKey = oldTeLink.teLinkKey();
 
+        long teNodeIdDest = 0;
+        long teNodeIdSrc = 0;
 
-        long teNodeIdDest = oldTeLink.peerTeLinkKey().teNodeId();
-        long teNodeId = oldTeLink.teLinkKey().teNodeId();
         TeLinkTpGlobalKey supportTeLinkId = oldTeLink.supportingTeLinkId();
         TeLinkTpKey peerTeLinkKey = oldTeLink.peerTeLinkKey();
 
-        TeLink updatedTeLink = yangLinkAttr2TeLinkAttributes(yangTeLinkAttrs, opStatus, teNodeId, teNodeIdDest,
+        TeLink updatedTeLink = yangLinkAttr2TeLinkAttributes(yangTeLinkAttrs, opStatus, teNodeIdSrc, teNodeIdDest,
                                                              teLinkKey, peerTeLinkKey, supportTeLinkId);
 
         return updatedTeLink;