package org.infinispan.objectfilter.impl.predicateindex;
import org.infinispan.objectfilter.impl.util.Interval;
/**
* @author anistor@redhat.com
* @since 7.0
*/
public final class IntervalCondition<AttributeDomain extends Comparable<AttributeDomain>> implements Condition<AttributeDomain> {
private final Interval<AttributeDomain> interval;
public IntervalCondition(Interval<AttributeDomain> interval) {
this.interval = interval;
}
@Override
public boolean match(AttributeDomain attributeValue) {
return attributeValue != null && interval.contains(attributeValue);
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
IntervalCondition other = (IntervalCondition) obj;
return interval.equals(other.interval);
}
@Override
public int hashCode() {
return interval.hashCode();
}
@Override
public String toString() {
return "IntervalCondition(" + interval + ')';
}
}