/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.test4j.hamcrest.matcher.mockito;
import ext.test4j.hamcrest.Description;
@SuppressWarnings({ "unchecked", "rawtypes" })
public abstract class CompareTo<T extends Comparable<T>> extends ArgumentMatcher<T> {
private final Comparable<T> wanted;
public CompareTo(Comparable<T> value) {
this.wanted = value;
}
public boolean matches(Object actual) {
if (!(actual instanceof Comparable)) {
return false;
}
return matchResult(((Comparable) actual).compareTo(wanted));
}
public void describeTo(Description description) {
description.appendText(getName() + "(" + wanted + ")");
}
protected abstract String getName();
protected abstract boolean matchResult(int result);
}