package org.limewire.listener;
import org.limewire.util.Objects;
/**
* A default, simple implementation of Event.
*/
public class DefaultSourceTypeEvent<S, E> extends DefaultSourcedEvent<S> implements SourceTypeEvent<S, E> {
private final E event;
public DefaultSourceTypeEvent(S source, E event) {
super(source);
this.event = Objects.nonNull(event, "event");
}
public E getType() {
return event;
}
@Override
public int hashCode() {
int hash = super.hashCode();
hash = 31 * hash + event.hashCode();
return hash;
}
@Override
public boolean equals(Object obj) {
if(!super.equals(obj)) {
return false;
}
if(!obj.getClass().equals(getClass())) {
return false;
}
return event.equals(((DefaultSourceTypeEvent)obj).getType());
}
@Override
public String toString() {
return super.toString() + ", event: " + event;
}
}