package nl.ipo.cds.validation.operators; import nl.ipo.cds.validation.Expression; import nl.ipo.cds.validation.ValidationMessage; import nl.ipo.cds.validation.ValidatorContext; public abstract class AbstractCompareOperator<K extends Enum<K> & ValidationMessage<K, C>, C extends ValidatorContext<K, C>, T extends Comparable<T>> extends AbstractOperator<K, C, Boolean, T> { public AbstractCompareOperator (final Expression<K, C, T> a, final Expression<K, C, T> b) { super (a, b); } @Override public Class<Boolean> getResultType () { return Boolean.class; } @Override public boolean equals (final Object o) { if (o == null || !getClass ().equals (o.getClass ())) { return false; } final AbstractCompareOperator<?, ?, ?> other = (AbstractCompareOperator<?, ?, ?>)o; return a.equals (other.a) && b.equals (other.b); } @Override public int hashCode () { return getClass ().hashCode () ^ a.hashCode () ^ b.hashCode (); } }