package org.limewire.listener; import org.limewire.util.Objects; /** * A default, simple implementation of Event. */ public class DefaultDataTypeEvent<D, T> extends DefaultDataEvent<D> implements DataTypeEvent<D, T> { private final T type; public DefaultDataTypeEvent(D data, T type) { super(data); this.type = Objects.nonNull(type, "type"); } @Override public T getType() { return type; } @Override public int hashCode() { int hash = super.hashCode(); hash = 31 * hash + type.hashCode(); return hash; } @Override public boolean equals(Object obj) { if(!super.equals(obj)) { return false; } if(!(obj instanceof DataTypeEvent)) { return false; } return type.equals(((DataTypeEvent)obj).getType()); } @Override public String toString() { return super.toString() + ", type: " + type; } }