package droidkit.util;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import java.util.Comparator;
/**
* @author Daniel Serdyukov
*/
public final class Objects {
private static final String EMPTY_STRING = "";
private Objects() {
}
@NonNull
public static <T> T requireNonNull(@Nullable T object, @NonNull T nullDefault) {
if (object == null) {
return nullDefault;
}
return object;
}
@NonNull
public static String stringNonNull(@Nullable String object) {
return stringNonNull(object, EMPTY_STRING);
}
@NonNull
public static String stringNonNull(@Nullable String object, @NonNull String nullString) {
if (object == null) {
return nullString;
}
return object;
}
@NonNull
public static String toString(@Nullable Object object) {
return String.valueOf(object);
}
@NonNull
public static String toString(@Nullable Object object, @NonNull String nullString) {
if (object == null) {
return nullString;
}
return String.valueOf(object);
}
public static boolean equals(@Nullable Object a, @Nullable Object b) {
if (a == null) {
return b == null;
}
return a.equals(b);
}
public static <T> int compare(@Nullable T a, @Nullable T b, @NonNull Comparator<? super T> c) {
if (a == null && b != null) {
return -1;
}
if (a != null && b == null) {
return 1;
}
if (equals(a, b)) {
return 0;
}
return c.compare(a, b);
}
}