package org.infinispan.commons.equivalence; import java.util.Arrays; /** * AnyServerEquivalence. Works for both objects and byte[] * * @author Tristan Tarrant * @since 5.3 * @deprecated */ public class AnyServerEquivalence implements Equivalence<Object> { public static final Equivalence<Object> INSTANCE = new AnyServerEquivalence(); private static boolean isByteArray(Object obj) { return byte[].class == obj.getClass(); } @Override public int hashCode(Object obj) { if (isByteArray(obj)) { return 41 + Arrays.hashCode((byte[]) obj); } else { return obj.hashCode(); } } @Override public boolean equals(Object obj, Object otherObj) { if (obj == otherObj) return true; if (obj == null || otherObj == null) return false; if (isByteArray(obj) && isByteArray(otherObj)) return Arrays.equals((byte[]) obj, (byte[]) otherObj); return obj.equals(otherObj); } @Override public String toString(Object obj) { if (isByteArray(obj)) return Arrays.toString((byte[]) obj); else return obj.toString(); } @Override public boolean isComparable(Object obj) { return obj instanceof Comparable; } @Override @SuppressWarnings("unchecked") public int compare(Object obj, Object otherObj) { return ((Comparable<Object>) obj).compareTo(otherObj); } }