package org.infinispan.commons.equivalence; /** * A compare function for objects. * * @author Galder ZamarreƱo * @since 5.3 * @deprecated */ public final class AnyEquivalence<T> implements Equivalence<T> { private static AnyEquivalence<Object> OBJECT = new AnyEquivalence<Object>(); public static AnyEquivalence<String> STRING = getInstance(String.class); public static AnyEquivalence<Byte> BYTE = getInstance(Byte.class); public static AnyEquivalence<Short> SHORT = getInstance(Short.class); public static AnyEquivalence<Integer> INT = getInstance(Integer.class); public static AnyEquivalence<Long> LONG = getInstance(Long.class); public static AnyEquivalence<Double> DOUBLE = getInstance(Double.class); public static AnyEquivalence<Float> FLOAT = getInstance(Float.class); public static AnyEquivalence<Boolean> BOOLEAN = getInstance(Boolean.class); // To avoid instantiation private AnyEquivalence() { } @Override public int hashCode(Object obj) { return obj == null ? 0 : obj.hashCode(); } @Override public boolean equals(T obj, Object otherObj) { return obj != null ? obj.equals(otherObj) : otherObj == null; } @Override public String toString(Object obj) { return String.valueOf(obj); } @Override public boolean isComparable(Object obj) { return obj instanceof Comparable; } @Override @SuppressWarnings("unchecked") public int compare(T obj, T otherObj) { return ((Comparable<T>) obj).compareTo(otherObj); } @SuppressWarnings("unchecked") public static <T> AnyEquivalence<T> getInstance() { return (AnyEquivalence<T>) OBJECT; } @SuppressWarnings("unchecked") public static <T> AnyEquivalence<T> getInstance(Class<T> classType) { return (AnyEquivalence<T>) OBJECT; } }