Enhancement of tetopology implementation

To support regualar network and TE topology

Change-Id: Ib8319212d775c78f49a86a7b7685759099189967
diff --git a/apps/tetopology/app/src/main/java/org/onosproject/tetopology/management/impl/TeTopologyMapEvent.java b/apps/tetopology/app/src/main/java/org/onosproject/tetopology/management/impl/TeTopologyMapEvent.java
new file mode 100644
index 0000000..a88ab51
--- /dev/null
+++ b/apps/tetopology/app/src/main/java/org/onosproject/tetopology/management/impl/TeTopologyMapEvent.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.tetopology.management.impl;
+
+import org.onosproject.tetopology.management.api.KeyId;
+import org.onosproject.tetopology.management.api.TeTopologyEvent.Type;
+import org.onosproject.tetopology.management.api.TeTopologyKey;
+import org.onosproject.tetopology.management.api.link.NetworkLinkKey;
+import org.onosproject.tetopology.management.api.link.TeLinkTpGlobalKey;
+import org.onosproject.tetopology.management.api.node.NetworkNodeKey;
+import org.onosproject.tetopology.management.api.node.TeNodeKey;
+
+import com.google.common.base.MoreObjects;
+
+public class TeTopologyMapEvent {
+    private final Type type;
+    private TeTopologyKey teTopologyKey;
+    private TeNodeKey teNodeKey;
+    private TeLinkTpGlobalKey teLinkKey;
+    private KeyId networkKey;
+    private NetworkNodeKey networkNodeKey;
+    private NetworkLinkKey networkLinkKey;
+
+    /**
+     * Creates an instance of TeTopologyMapEvent.
+     *
+     * @param type the map event type
+     */
+    public TeTopologyMapEvent(Type type) {
+        this.type = type;
+    }
+
+    /**
+     * Returns the map event type.
+     *
+     * @return the type
+     */
+    public Type type() {
+        return type;
+    }
+
+    /**
+     * Returns the TE topology key of the event.
+     *
+     * @return the teTopologyKey
+     */
+    public TeTopologyKey teTopologyKey() {
+        return teTopologyKey;
+    }
+
+    /**
+     * Sets the TE topology key of the event.
+     *
+     * @param teTopologyKey the teTopologyKey to set
+     */
+    public void setTeTopologyKey(TeTopologyKey teTopologyKey) {
+        this.teTopologyKey = teTopologyKey;
+    }
+
+    /**
+     * Returns the TE node key of the event.
+     *
+     * @return the teNodeKey
+     */
+    public TeNodeKey teNodeKey() {
+        return teNodeKey;
+    }
+
+    /**
+     * Sets the TE node key of the event.
+     *
+     * @param teNodeKey the teNodeKey to set
+     */
+    public void setTeNodeKey(TeNodeKey teNodeKey) {
+        this.teNodeKey = teNodeKey;
+    }
+
+    /**
+     * Returns the TE link key of the event.
+     *
+     * @return the teLinkKey
+     */
+    public TeLinkTpGlobalKey teLinkKey() {
+        return teLinkKey;
+    }
+
+    /**
+     * Sets the TE link key of the event.
+     *
+     * @param teLinkKey the teLinkKey to set
+     */
+    public void setTeLinkKey(TeLinkTpGlobalKey teLinkKey) {
+        this.teLinkKey = teLinkKey;
+    }
+
+    /**
+     * Returns the network key of the event.
+     *
+     * @return the networkKey
+     */
+    public KeyId networkKey() {
+        return networkKey;
+    }
+
+    /**
+     * Sets the network key of the event.
+     *
+     * @param networkKey the networkKey to set
+     */
+    public void setNetworkKey(KeyId networkKey) {
+        this.networkKey = networkKey;
+    }
+
+    /**
+     * Returns the network node key of the event.
+     *
+     * @return the networkNodeKey
+     */
+    public NetworkNodeKey networkNodeKey() {
+        return networkNodeKey;
+    }
+
+    /**
+     * Sets the network node key of the event.
+     *
+     * @param networkNodeKey the networkNodeKey to set
+     */
+    public void setNetworkNodeKey(NetworkNodeKey networkNodeKey) {
+        this.networkNodeKey = networkNodeKey;
+    }
+
+    /**
+     * Returns the network link key of the event.
+     *
+     * @return the networkLinkKey
+     */
+    public NetworkLinkKey networkLinkKey() {
+        return networkLinkKey;
+    }
+
+    /**
+     * Sets the network link key of the event.
+     *
+     * @param networkLinkKey the networkLinkKey to set
+     */
+    public void setNetworkLinkKey(NetworkLinkKey networkLinkKey) {
+        this.networkLinkKey = networkLinkKey;
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("type", type)
+                .add("teTopologyKey", teTopologyKey)
+                .add("teNodeKey", teNodeKey)
+                .add("teLinkKey", teLinkKey)
+                .add("networkKey", networkKey)
+                .add("networkNodeKey", networkNodeKey)
+                .add("networkLinkKey", networkLinkKey)
+                .toString();
+    }
+
+}