Example usage for org.hibernate.persister.collection CollectionPersister getElementType

List of usage examples for org.hibernate.persister.collection CollectionPersister getElementType

Introduction

In this page you can find the example usage for org.hibernate.persister.collection CollectionPersister getElementType.

Prototype

Type getElementType();

Source Link

Document

Get the "element" type

Usage

From source file:br.gov.jfrj.siga.model.Objeto.java

License:Open Source License

private static void cascadeOrphans(Objeto base, PersistentCollection persistentCollection, boolean willBeSaved)
        throws UnexpectedException {
    SessionImpl session = ((SessionImpl) em().getDelegate());
    PersistenceContext pc = session.getPersistenceContext();
    CollectionEntry ce = pc.getCollectionEntry(persistentCollection);

    if (ce != null) {
        CollectionPersister cp = ce.getLoadedPersister();
        if (cp != null) {
            Type ct = cp.getElementType();
            if (ct instanceof EntityType) {
                EntityEntry entry = pc.getEntry(base);
                String entityName = entry.getEntityName();
                entityName = ((EntityType) ct).getAssociatedEntityName(session.getFactory());
                if (ce.getSnapshot() != null) {
                    Collection orphans = ce.getOrphans(entityName, persistentCollection);
                    for (Object o : orphans) {
                        saveAndCascadeIfObjeto(o, willBeSaved);
                    }//from www. jav a2 s . com
                }
            }
        }
    }
}

From source file:com.miranteinfo.seam.hibernate.HibernateCascade.java

License:Open Source License

/**
 * Cascade an action to a collection/* w  w w  .  j  a  v a  2  s  . co  m*/
 */
private void cascadeCollection(final Object child, final CascadeStyle style, final Object anything,
        final CollectionType type) {
    CollectionPersister persister = eventSource.getFactory().getCollectionPersister(type.getRole());
    Type elemType = persister.getElementType();

    final int oldCascadeTo = cascadeTo;
    if (cascadeTo == AFTER_INSERT_BEFORE_DELETE) {
        cascadeTo = AFTER_INSERT_BEFORE_DELETE_VIA_COLLECTION;
    }

    //cascade to current collection elements
    if (elemType.isEntityType() || elemType.isAnyType() || elemType.isComponentType()) {
        cascadeCollectionElements(child, type, style, elemType, anything, persister.isCascadeDeleteEnabled());
    }

    cascadeTo = oldCascadeTo;
}

From source file:cz.jirutka.rsql.visitor.hibernate.HibernateCriterionVisitor.java

License:Apache License

private Tuple<Type, String>[] getPath(ClassMetadata classMetadata, String[] names) {
    Tuple<Type, String>[] path = new Tuple[names.length];
    Object element = classMetadata;
    for (int i = 0; i < names.length; ++i) {
        String name = names[i];//from  w  w w  . j av  a2 s.  c om
        Type propertyType = getPropertyType(element, name);
        path[i] = new Tuple<Type, String>(propertyType, name);
        if (propertyType.isCollectionType()) {
            CollectionType collectionType = (CollectionType) propertyType;
            String associatedEntityName = collectionType.getRole();
            CollectionPersister collectionPersister = getSessionFactory()
                    .getCollectionPersister(associatedEntityName);
            element = collectionPersister.getElementType();
        } else if (propertyType.isAssociationType()) {
            AssociationType associationType = (AssociationType) propertyType;
            String associatedEntityName = associationType.getAssociatedEntityName(getSessionFactory());
            element = getSessionFactory().getClassMetadata(associatedEntityName);
        } else if (propertyType.isComponentType()) {
            element = propertyType;
        }
    }
    return path;
}

From source file:org.babyfish.hibernate.collection.spi.persistence.ListBasePersistence.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from   w  w w . java  2 s  . co m
public void initializeFromCache(CollectionPersister persister, Serializable disassembled, Object owner)
        throws HibernateException {
    List<E> baseList = this.getBase();
    Serializable[] array = (Serializable[]) disassembled;
    int size = array.length;
    beforeInitialize(persister, size);
    for (int i = 0; i < size; i++) {
        baseList.add((E) persister.getElementType().assemble(array[i], getSession(), owner));
    }
}

From source file:org.babyfish.hibernate.collection.spi.persistence.ListBasePersistence.java

License:Open Source License

@Override
public Serializable disassemble(CollectionPersister persister) throws HibernateException {
    List<E> baseList = this.getBase();
    int length = baseList.size();
    Serializable[] result = new Serializable[length];
    for (int i = 0; i < length; i++) {
        result[i] = persister.getElementType().disassemble(baseList.get(i), getSession(), null);
    }//from   ww  w .j a v a2s.  c o m
    return result;
}

From source file:org.babyfish.hibernate.collection.spi.persistence.ListBasePersistence.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override// w ww .  j  av  a2  s.  c o  m
public boolean equalsSnapshot(CollectionPersister persister) throws HibernateException {
    List<E> baseList = this.getBase();
    List<E> sn = (List<E>) getSnapshot();
    Type elementType = persister.getElementType();
    if (sn.size() != baseList.size()) {
        return false;
    }
    Iterator<E> iter = baseList.iterator();
    Iterator<E> sniter = sn.iterator();
    while (iter.hasNext()) {
        if (elementType.isDirty(iter.next(), sniter.next(), getSession())) {
            return false;
        }
    }
    return true;
}

From source file:org.babyfish.hibernate.collection.spi.persistence.ListBasePersistence.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from w  w  w. j a  v  a  2  s. co  m
public Serializable getSnapshot(CollectionPersister persister) throws HibernateException {
    MAList<E> baseList = this.getBase();
    ArrayList<E> clonedList = new ArrayList<E>(baseList.unifiedComparator(), baseList.size());
    Iterator<E> iter = baseList.iterator();
    while (iter.hasNext()) {
        E deepCopy = (E) persister.getElementType().deepCopy(iter.next(), persister.getFactory());
        clonedList.add(deepCopy);
    }
    return clonedList;
}

From source file:org.babyfish.hibernate.collection.spi.persistence.MapBasePersistence.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from w ww.jav  a  2  s  .c o m
public void initializeFromCache(CollectionPersister persister, Serializable disassembled, Object owner)
        throws HibernateException {
    Serializable[] array = (Serializable[]) disassembled;
    int size = array.length;
    beforeInitialize(persister, size);
    MAMap<K, V> baseMap = this.getBase();
    for (int i = 0; i < size; i += 2) {
        baseMap.put((K) persister.getIndexType().assemble(array[i], getSession(), owner),
                (V) persister.getElementType().assemble(array[i + 1], getSession(), owner));
    }
}

From source file:org.babyfish.hibernate.collection.spi.persistence.MapBasePersistence.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from  w ww .  java 2 s. c  om
public boolean equalsSnapshot(CollectionPersister persister) throws HibernateException {
    Type elementType = persister.getElementType();
    XMap<K, V> snapshotMap = (XMap<K, V>) this.getSnapshot();
    MAMap<K, V> baseMap = this.getBase();
    if (snapshotMap.size() != baseMap.size()) {
        return false;
    }
    Iterator<Entry<K, V>> iter = baseMap.entrySet().iterator();
    while (iter.hasNext()) {
        Entry<K, V> entry = iter.next();
        if (elementType.isDirty(entry.getValue(), snapshotMap.get(entry.getKey()), this.getSession())) {
            return false;
        }
    }
    return true;
}

From source file:org.babyfish.hibernate.collection.spi.persistence.MapBasePersistence.java

License:Open Source License

@Override
public Serializable disassemble(CollectionPersister persister) throws HibernateException {
    MAMap<K, V> baseMap = this.getBase();
    Serializable[] result = new Serializable[baseMap.size() << 1];
    Iterator<Entry<K, V>> iter = baseMap.entrySet().iterator();
    int i = 0;//from  ww w. j a v  a2  s. c o m
    while (iter.hasNext()) {
        Entry<K, V> e = iter.next();
        result[i++] = persister.getIndexType().disassemble(e.getKey(), getSession(), null);
        result[i++] = persister.getElementType().disassemble(e.getValue(), getSession(), null);
    }
    return result;
}