blob: 85ebe031ef1fff804e25b73531856e951c01b9e1 [file] [log] [blame]
package net.onrc.onos.core.topology;
/**
* Self-contained Topology event Object
* <p/>
* 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;
}
}