package edu.ualberta.med.biobank.util;
import java.util.Comparator;
public class NullHelper {
public static boolean safeEquals(Object a, Object b) {
return (a == null) ? (b == null) : a.equals(b);
}
public static <T> T ifNull(T o, T defaultValue) {
return (o != null) ? o : defaultValue;
}
/**
* Compare two {@link Comparable} Object-s, even if either one is null.
*
* @param <T>
* @param one
* @param two
* @return
*/
public static <T extends Comparable<T>> int safeCompareTo(
final T one, final T two) {
if (one == null ^ two == null) {
return (one == null) ? -1 : 1;
}
if (one == null || two == null) {
return 0;
}
return one.compareTo(two);
}
/**
* Compare two Comparable Object-s, even if either one is null, using the
* given {@link Comparator}.
*
* @param one
* @param two
* @param comparator
* @return
*/
public static <T> int safeCompareTo(final T one, final T two,
Comparator<T> comparator) {
if (one == null ^ two == null) {
return (one == null) ? -1 : 1;
}
if (one == null || two == null) {
return 0;
}
return comparator.compare(one, two);
}
}