/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.cache.infinispan;
import org.hibernate.type.Type;
import org.infinispan.commons.equivalence.Equivalence;
/**
* @author Radim Vansa <rvansa@redhat.com>
*/
public class TypeEquivalance implements Equivalence<Object> {
private final Type type;
public TypeEquivalance(Type type) {
this.type = type;
}
@Override
public int hashCode(Object o) {
return type.getHashCode(o);
}
@Override
public boolean equals(Object x, Object y) {
return type.isEqual(x, y);
}
@Override
public String toString(Object o) {
return String.valueOf(o);
}
@Override
public boolean isComparable(Object o) {
return true; // cannot guess from the type
}
@Override
public int compare(Object x, Object y) {
return type.compare(x, y);
}
}