package com.flextrade.jfixture.requests;
import com.flextrade.jfixture.exceptions.InvalidRequestException;
public class RangeRequest<T extends Comparable<T>> {
private final Object request;
private final T min;
private final T max;
public RangeRequest(Object request, T min, T max) {
if(min.compareTo(max) >= 0)
throw new InvalidRequestException("Minimum value in range must be less than maximum");
this.request = request;
this.min = min;
this.max = max;
}
public Object getRequest() {
return this.request;
}
public T getMin() {
return this.min;
}
public T getMax() {
return this.max;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RangeRequest that = (RangeRequest) o;
return max.equals(that.max) && min.equals(that.min) && request.equals(that.request);
}
@Override
public int hashCode() {
int result = request.hashCode();
result = 31 * result + min.hashCode();
result = 31 * result + max.hashCode();
return result;
}
@Override
public String toString() {
return "RangeRequest{" +
"request=" + request +
", min=" + min +
", max=" + max +
'}';
}
}