@SuppressWarnings({ "unchecked", "rawtypes" })
public static <T> T mustBeGreaterThanOther(
String parameterName,
T argument,
String minimumParameterName,
T minimumValue,
Comparator<? super T> comparator) {
if (comparator == null) {
return (T)mustBeGreaterThanOther(
parameterName,
(Comparable)argument,
minimumParameterName,
(Comparable)minimumValue);
}
if (argument != null && minimumValue != null && comparator.compare(argument, minimumValue) <= 0) {
throw new IllegalArgumentException(
mustBeGreaterThanOtherMessage(parameterName, minimumParameterName));
}
return argument;
}