blob: 88f95cc35c2ace2d9c9199f5f4184d126b2216d1 [file] [log] [blame]
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.matchers;
import org.mockito.ArgumentMatcher;
import java.io.Serializable;
public abstract class CompareTo<T extends Comparable<T>> implements ArgumentMatcher<T>, Serializable {
private final T wanted;
public CompareTo(T value) {
this.wanted = value;
}
@Override
public final boolean matches(T actual) {
if (actual == null) {
return false;
}
if (!actual.getClass().isInstance(wanted)){
return false;
}
int result = actual.compareTo(wanted);
return matchResult(result);
}
@Override
public final String toString() {
return getName() + "(" + wanted + ")";
}
protected abstract String getName();
protected abstract boolean matchResult(int result);
}