package com.github.shansun.sparrow.event;
import java.util.EventObject;
import java.util.UUID;
/**
* 事件体
*
* @author: lanbo <br>
* @version: 1.0 <br>
* @date: 2012-6-6
*/
public abstract class Event extends EventObject {
private static final long serialVersionUID = 3787024242851558433L;
/**
* 事件ID,能唯一标识一次事件请求
*/
private final String eventId;
public Event(Object source) {
super(source);
this.eventId = UUID.randomUUID().toString();
}
public String getEventId() {
return eventId;
}
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Event)) {
return false;
}
final Event event = (Event) o;
if (source != null ? !source.equals(event.source) : event.source != null) {
return false;
}
return true;
}
public int hashCode() {
return (source != null ? source.hashCode() : 0);
}
@Override
public String toString() {
return getClass().getName() + "[eventId=" + eventId + ", source=" + source + "]";
}
}