package com.googlecode.totallylazy.comparators;
import java.util.Comparator;
public class NullComparator {
public static <T> int compare(T a, T b, Direction direction, Comparator<? super T> comparator) {
if (a == null && b == null) {
return 0;
}
if (a == null) {
return direction.value();
}
if (b == null) {
return -1 * direction.value();
}
return comparator.compare(a, b);
}
public static <T extends Comparable<? super T>> int compare(T a, T b, Direction direction) {
return compare(a, b, direction, Comparators.<T>ascending());
}
public enum Direction {
Up {
@Override
public int value() {
return 1;
}
},
Down {
@Override
public int value() {
return -1;
}
};
public abstract int value();
}
}