Support TE-link-remove and TE-node-remove event notification

Change-Id: Ia909ada3b69c2ef2dba4ffdb4c0e687ffb482974
diff --git a/providers/ietfte/topology/src/main/java/org/onosproject/provider/te/topology/TeTopologyRestconfProvider.java b/providers/ietfte/topology/src/main/java/org/onosproject/provider/te/topology/TeTopologyRestconfProvider.java
index f75027d..54d797d 100644
--- a/providers/ietfte/topology/src/main/java/org/onosproject/provider/te/topology/TeTopologyRestconfProvider.java
+++ b/providers/ietfte/topology/src/main/java/org/onosproject/provider/te/topology/TeTopologyRestconfProvider.java
@@ -58,6 +58,8 @@
         .IetfTeTopologyEvent;
 import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.TeLinkEvent;
 import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.TeNodeEvent;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes
+        .tetopologyeventtype.TeTopologyEventTypeEnum;
 import org.onosproject.yms.ych.YangCodecHandler;
 import org.onosproject.yms.ych.YangProtocolEncodingFormat;
 import org.onosproject.yms.ych.YangResourceIdentifierType;
@@ -354,9 +356,16 @@
             NetworkLinkKey linkKey = LinkConverter.yangLinkEvent2NetworkLinkKey(
                     teLinkEvent);
 
-            NetworkLink networkLink = LinkConverter.yangLinkEvent2NetworkLink(
-                    teLinkEvent,
-                    teTopologyService);
+            TeTopologyEventTypeEnum teLinkEventType = teLinkEvent.eventType()
+                    .enumeration();
+
+            if (teLinkEventType == TeTopologyEventTypeEnum.REMOVE) {
+                topologyProviderService.linkRemoved(linkKey);
+                return;
+            }
+
+            NetworkLink networkLink = LinkConverter.yangLinkEvent2NetworkLink(teLinkEvent,
+                                                                              teTopologyService);
 
             if (networkLink == null) {
                 log.error("ERROR: yangLinkEvent2NetworkLink returns null");
@@ -402,6 +411,14 @@
             NetworkNodeKey nodeKey = NodeConverter.yangNodeEvent2NetworkNodeKey(
                     teNodeEvent);
 
+            TeTopologyEventTypeEnum teNodeEventType = teNodeEvent.eventType()
+                    .enumeration();
+
+            if (teNodeEventType == TeTopologyEventTypeEnum.REMOVE) {
+                topologyProviderService.nodeRemoved(nodeKey);
+                return;
+            }
+
             NetworkNode networkNode = NodeConverter.yangNodeEvent2NetworkNode(
                     teNodeEvent,
                     teTopologyService);