Example usage for org.hibernate.tuple Instantiator Instantiator

List of usage examples for org.hibernate.tuple Instantiator Instantiator

Introduction

In this page you can find the example usage for org.hibernate.tuple Instantiator Instantiator.

Prototype

Instantiator

Source Link

Usage

From source file:com.rouletteapi.model.enums.EnumTuplizer.java

@Override
protected Instantiator buildInstantiator(final PersistentClass persistentClass) {

    return new Instantiator() {
        @Override//w  ww.j  a  v  a 2  s . c  om
        public Object instantiate(Serializable id) {
            try {
                return Enum.valueOf((Class) persistentClass.getClass().getClassLoader()
                        .loadClass(persistentClass.getClassName()), (String) id);
            } catch (ClassNotFoundException e) {
                throw new AssertionError(e);
            }
        }

        @Override
        public Object instantiate() {
            throw new UnsupportedOperationException();
        }

        @Override
        public boolean isInstance(Object object) {

            if (object == null)
                return false;

            Class clazz = persistentClass.getMappedClass();
            if (!clazz.isEnum())
                return false;
            try {
                clazz.cast(object);
                if (object.getClass().getName().equalsIgnoreCase(clazz.getName()))
                    return true;
            } catch (ClassCastException e) {
                return false;
            }

            return false;
        }
    };
}