package netflix.ocelli;
@SuppressWarnings("rawtypes")
public class AbstractLoadBalancerEvent <T extends Enum> implements LoadBalancerEvent<T> {
protected final T name;
protected final boolean isTimed;
protected final boolean isError;
protected AbstractLoadBalancerEvent(T name, boolean isTimed, boolean isError) {
this.isTimed = isTimed;
this.name = name;
this.isError = isError;
}
@Override
public T getType() {
return name;
}
@Override
public boolean isTimed() {
return isTimed;
}
@Override
public boolean isError() {
return isError;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof AbstractLoadBalancerEvent)) {
return false;
}
AbstractLoadBalancerEvent that = (AbstractLoadBalancerEvent) o;
if (isError != that.isError) {
return false;
}
if (isTimed != that.isTimed) {
return false;
}
if (name != that.name) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = name.hashCode();
result = 31 * result + (isTimed ? 1 : 0);
result = 31 * result + (isError ? 1 : 0);
return result;
}
}