Renamed networkgraph package to topology.
Moved NetworkGraphPublisher into new topology package.
net.onrc.onos.ofcontroller.networkgraph.* => net.onrc.onos.core.topology.*
net.onrc.onos.ofcontroller.floodlightlistener.NetworkGraphPublisher => net.onrc.onos.core.topology.NetworkGraphPublisher
Change-Id: I8b156d0fcbba520fee61e92ab659bb02cfa704ac
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java b/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java
new file mode 100644
index 0000000..84cd5cb
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java
@@ -0,0 +1,92 @@
+package net.onrc.onos.core.topology;
+
+/**
+ * Self-contained Topology event Object
+ *
+ * TODO: For now the topology event contains one of the following events:
+ * Switch, Port, Link, Device. In the future it will contain multiple events
+ * in a single transaction.
+ */
+public class TopologyEvent {
+ SwitchEvent switchEvent = null; // Set for Switch event
+ PortEvent portEvent = null; // Set for Port event
+ LinkEvent linkEvent = null; // Set for Link event
+ DeviceEvent deviceEvent = null; // Set for Device event
+
+ /**
+ * Default constructor.
+ */
+ public TopologyEvent() {
+ }
+
+ /**
+ * Constructor for given Switch event.
+ *
+ * @param switchEvent the Switch event to use.
+ */
+ TopologyEvent(SwitchEvent switchEvent) {
+ this.switchEvent = switchEvent;
+ }
+
+ /**
+ * Constructor for given Port event.
+ *
+ * @param portEvent the Port event to use.
+ */
+ TopologyEvent(PortEvent portEvent) {
+ this.portEvent = portEvent;
+ }
+
+ /**
+ * Constructor for given Link event.
+ *
+ * @param linkEvent the Link event to use.
+ */
+ TopologyEvent(LinkEvent linkEvent) {
+ this.linkEvent = linkEvent;
+ }
+
+ /**
+ * Constructor for given Device event.
+ *
+ * @param deviceEvent the Device event to use.
+ */
+ TopologyEvent(DeviceEvent deviceEvent) {
+ this.deviceEvent = deviceEvent;
+ }
+
+ /**
+ * Get the string representation of the event.
+ *
+ * @return the string representation of the event.
+ */
+ @Override
+ public String toString() {
+ if (switchEvent != null)
+ return switchEvent.toString();
+ if (portEvent != null)
+ return portEvent.toString();
+ if (linkEvent != null)
+ return linkEvent.toString();
+ if (deviceEvent != null)
+ return deviceEvent.toString();
+ return "[Empty TopologyEvent]";
+ }
+
+ /**
+ * Get the Topology event ID.
+ *
+ * @return the Topology event ID.
+ */
+ public byte[] getID() {
+ if (switchEvent != null)
+ return switchEvent.getID();
+ if (portEvent != null)
+ return portEvent.getID();
+ if (linkEvent != null)
+ return linkEvent.getID();
+ if (deviceEvent != null)
+ return deviceEvent.getID();
+ return null;
+ }
+}