Example usage for org.hibernate.proxy LazyInitializer isUninitialized

List of usage examples for org.hibernate.proxy LazyInitializer isUninitialized

Introduction

In this page you can find the example usage for org.hibernate.proxy LazyInitializer isUninitialized.

Prototype

boolean isUninitialized();

Source Link

Document

Is the proxy uninitialzed?

Usage

From source file:com.erinors.hpb.server.handler.JavaBeanHandler.java

License:Apache License

@Override
public Object clone(final CloningContext context, Object object) {
    final Object effectiveObject;
    if (object instanceof HibernateProxy) {
        LazyInitializer lazyInitializer = ((HibernateProxy) object).getHibernateLazyInitializer();

        if (lazyInitializer.isUninitialized()) {
            throw new RuntimeException("Uninitialized proxies are not supported by this handler: " + object);
        }//from  w w w. j a v a 2  s .  co m

        effectiveObject = lazyInitializer.getImplementation();

        Object alreadyProcessedObject = context.getProcessedObject(effectiveObject);
        if (alreadyProcessedObject != null) {
            return alreadyProcessedObject;
        }
    } else {
        effectiveObject = object;
    }

    return copyBean(effectiveObject, new ObjectCopier() {
        @Override
        public Object processObject(Object object) {
            return context.clone(object);
        }
    }, context);
}

From source file:com.erinors.hpb.server.handler.UninitializedHibernateProxyHandler.java

License:Apache License

@Override
public Object clone(CloningContext context, Object object) {
    ////from  ww  w  . j  a v a 2 s .c  o m
    // Check if the object is an uninitialized hibernate proxy, return false otherwise
    //

    if (!(object instanceof HibernateProxy)) {
        return null;
    }

    HibernateProxy hibernateProxy = (HibernateProxy) object;
    LazyInitializer lazyInitializer = hibernateProxy.getHibernateLazyInitializer();

    if (!lazyInitializer.isUninitialized()) {
        return null;
    }

    //
    // Check if the proxied object can be cloned
    //

    Class<?> persistentClass = lazyInitializer.getPersistentClass();
    if (!HibernateProxyPojoSupport.class.isAssignableFrom(persistentClass)) {
        // TODO tesztet r
        throw new RuntimeException("Uninitialized hibernate proxy should implement "
                + HibernateProxyPojoSupport.class.getName() + " to be cloneable: " + persistentClass);
    }

    //
    // Clone
    //

    HibernateProxyPojoSupport result;
    try {
        Constructor<?> constructor = ClassUtils.getAccessibleInstanceConstructor(persistentClass);
        result = (HibernateProxyPojoSupport) constructor.newInstance();
    } catch (Exception e) {
        throw new RuntimeException("Cannot instantiate: " + persistentClass.getClass(), e);
    }

    result.setUninitializedHibernateProxy(true);
    result.setUninitializedHibernateProxyId(lazyInitializer.getIdentifier());

    context.addProcessedObject(object, result);

    return result;
}

From source file:de.innovationgate.webgate.api.jdbc.WGDocumentImpl.java

License:Open Source License

public void makeEditable() throws WGAPIException {

    if (_editable == false) {
        if (_parent.getSessionStatus().isInSaveOperation()) { // Do not make editable if already in save operation
            return;
        }//from  w w w. j  a  v a 2  s  .co m

        if (_parent._saveIsolationActive) {
            _entity.loadFully();
            if (_entity instanceof HibernateProxy) { // Unproxying because of #00002040
                HibernateProxy proxy = (HibernateProxy) _entity;
                LazyInitializer lazyInitializer = proxy.getHibernateLazyInitializer();
                if (lazyInitializer.isUninitialized()) {
                    lazyInitializer.initialize();
                }
                _entity = (MainEntity) lazyInitializer.getImplementation();
                _parent.getSession().evict(proxy);
            } else {

                _parent.getSession().evict(_entity);
            }

        }
        _editable = true;
    }

}

From source file:org.babyfish.hibernate.association.EntityReferenceComparator.java

License:Open Source License

private static Object getImplementation(Object proxy) {
    if (proxy instanceof HibernateProxy) {
        LazyInitializer hibernateLazyInitializer = ((HibernateProxy) proxy).getHibernateLazyInitializer();
        if (!hibernateLazyInitializer.isUninitialized()) {
            Object implementation = hibernateLazyInitializer.getImplementation();
            return getImplementation(implementation);
        }//from w w w .j ava  2 s  . com
    }
    return proxy;
}

From source file:org.babyfish.hibernate.proxy.FrozenLazyInitializerImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
private void initTransient(Class<?> persistentClass) {
    LazyInitializer rawLazyInitializer = this.lazyInitializer;
    if (persistentClass == null) {
        persistentClass = getPersistentClass((BasicLazyInitializer) rawLazyInitializer);
    }//from   w  w w .  jav a2s .  c o  m
    HibernateObjectModelMetadata objectModelMetadata = HibernateMetadatas.of(persistentClass);
    this.objectModelMetadata = objectModelMetadata;
    this.omFactory = (ObjectModelFactory<ObjectModel>) ObjectModelFactoryFactory
            .factoryOf(objectModelMetadata.getObjectModelClass());
    try {
        this.getIdentifierMethod = (Method) GET_IDENTIFIER_METHOD_FIELD.get(rawLazyInitializer);
        this.setIdentifierMethod = (Method) SET_IDENTIFIER_METHOD_FIELD.get(rawLazyInitializer);
    } catch (IllegalArgumentException | IllegalAccessException e) {
        throw new AssertionError();
    }
    if (!rawLazyInitializer.isUninitialized()) {
        ObjectModel targetOM = this.omFactory.get(rawLazyInitializer.getImplementation());
        ScalarListener listener = this.new TargetScalarListener();
        targetOM.removeScalarListener(listener);
        targetOM.addScalarListener(listener);
    }
}

From source file:org.babyfish.hibernate.proxy.FrozenLazyInitializerImpl.java

License:Open Source License

@Override
public void setImplementation(Object target) {
    LazyInitializer rawLazyInitializer = this.lazyInitializer;
    Object oldTarget = rawLazyInitializer.isUninitialized() ? null : rawLazyInitializer.getImplementation();
    if (target != oldTarget) {
        ScalarListener listener = this.new TargetScalarListener();
        if (oldTarget != null) {
            this.omFactory.get(oldTarget).removeScalarListener(listener);
        }/*w  w w. ja  v  a 2s  .  c om*/
        rawLazyInitializer.setImplementation(target);
        this.oldTarget = target;
        if (target != null) {
            ObjectModel targetOM = this.omFactory.get(target);
            targetOM.removeScalarListener(listener); //remove the duplicated listener.
            targetOM.addScalarListener(listener);
        }
    }
}

From source file:org.babyfish.hibernate.proxy.FrozenLazyInitializerImpl.java

License:Open Source License

@Override
public void initialize() throws HibernateException {
    LazyInitializer rawLazyInitializer = this.lazyInitializer;
    Object oldTarget = rawLazyInitializer.isUninitialized() ? null : rawLazyInitializer.getImplementation();
    rawLazyInitializer.initialize();/*from   ww w  .j  av  a 2 s.  c om*/
    Object target = rawLazyInitializer.getImplementation();
    if (oldTarget != target) {
        ScalarListener listener = this.new TargetScalarListener();
        if (oldTarget != null) {
            this.omFactory.get(oldTarget).removeScalarListener(listener);
        }
        this.oldTarget = target;
        if (target != null) {
            ObjectModel targetOM = this.omFactory.get(target);
            targetOM.removeScalarListener(listener); //remove the duplicated listener.
            targetOM.addScalarListener(listener);
        }
    }
}

From source file:org.brushingbits.jnap.common.bean.visitor.HibernateTypeResolver.java

License:Apache License

@Override
public Class<?> resolve(Object source, BeanPropertyFilter filter) {
    Class<?> type = null;/* w  w w.  j  a  va2s.  c  o m*/
    if (source instanceof HibernateProxy) {
        HibernateProxy proxy = (HibernateProxy) source;
        LazyInitializer lazyInitializer = proxy.getHibernateLazyInitializer();
        if (!lazyInitializer.isUninitialized() || !filter.isIgnoreUninitializedProxies()) {
            type = lazyInitializer.getImplementation().getClass();
        }
    } else if (source instanceof PersistentCollection) {
        PersistentCollection collection = (PersistentCollection) source;
        if (collection.wasInitialized() || !filter.isIgnoreUninitializedProxies()) {
            type = getUnderlyingCollectionType(collection.getClass());
        }
    } else {
        type = super.resolve(source, filter);
    }
    return type;
}

From source file:org.codehaus.groovy.grails.orm.hibernate.proxy.HibernateProxyHandler.java

License:Apache License

public Object unwrapProxy(final HibernateProxy proxy) {
    final LazyInitializer lazyInitializer = proxy.getHibernateLazyInitializer();
    if (lazyInitializer.isUninitialized()) {
        lazyInitializer.initialize();/*from   w  w w. j  a v  a2s  .c  om*/
    }
    final Object obj = lazyInitializer.getImplementation();
    if (obj != null) {
        GrailsHibernateUtil.ensureCorrectGroovyMetaClass(obj, obj.getClass());
    }
    return obj;
}

From source file:org.codehaus.groovy.grails.orm.hibernate.proxy.HibernateProxyHandler.java

License:Apache License

public void initialize(Object o) {
    if (o instanceof HibernateProxy) {
        final LazyInitializer hibernateLazyInitializer = ((HibernateProxy) o).getHibernateLazyInitializer();
        if (hibernateLazyInitializer.isUninitialized()) {
            hibernateLazyInitializer.initialize();
        }//  w ww  . j  av  a  2s. c  o  m
    } else if (o instanceof AbstractPersistentCollection) {
        final AbstractPersistentCollection col = (AbstractPersistentCollection) o;
        if (!col.wasInitialized()) {
            col.forceInitialization();
        }
    }
}