List of usage examples for org.hibernate.persister.collection CollectionPersister getIndexType
Type getIndexType();
From source file:org.babyfish.hibernate.collection.spi.persistence.MapBasePersistence.java
License:Open Source License
@SuppressWarnings("unchecked") @Override/*from w w w . ja va 2 s . c om*/ 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
@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;/*w ww.j a va 2s . c om*/ 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; }
From source file:org.babyfish.hibernate.collection.type.AbstractMAMapType.java
License:Open Source License
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override/*from w ww. ja v a 2 s.c o m*/
public Object onReplaceElements(Object original, Object target, CollectionPersister persister, Object owner,
Map copyCache, SessionImplementor session) throws HibernateException {
// Must before result.clear()
Iterator itr = this.getClonedIterator(((java.util.Map) original).entrySet());
/*
* TODO:
* This code is copy from hibernate's CollectionType class.
* In its source code, hibernate's author have wrote another
* _TODO_ comment "does not work for EntityMode.DOM4J yet!"
* So here, I must check the source code of newest version
* hibernate to make sure whether these code should be changed.
*/
java.util.Map result = (java.util.Map) target;
result.clear();
while (itr.hasNext()) {
java.util.Map.Entry me = (java.util.Map.Entry) itr.next();
Object key = persister.getIndexType().replace(me.getKey(), null, session, owner, copyCache);
Object value = persister.getElementType().replace(me.getValue(), null, session, owner, copyCache);
result.put(key, value);
}
return result;
}
From source file:tools.xor.HibernateProperty.java
License:Apache License
@Override public void init(DataAccessService das) { HibernateDAS hibernateDAS = (HibernateDAS) das; if (isMany()) { if (hibernateProperty.getType().isCollectionType()) { CollectionType collType = (CollectionType) hibernateProperty.getType(); CollectionPersister cp = HibernateUtil.getCollectionPersister(hibernateDAS.getSessionFactory(), collType);//from ww w .j a va 2 s . com keyType = (cp.getIndexType() == null) ? null : das.getType(cp.getIndexType().getReturnedClass()); elementType = das.getType(cp.getElementType().getReturnedClass()); } } }