public Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException { java.util.Map sn = (java.util.Map) snapshot; return getOrphans( sn.values(), map.values(), entityName, getSession() ); }
public boolean needsInserting(Object entry, int i, Type elemType) throws HibernateException { final java.util.Map sn = (java.util.Map) getSnapshot(); java.util.Map.Entry e = (java.util.Map.Entry) entry; return e.getValue()!=null && sn.get( e.getKey() )==null; }
public PersistentMap(SessionImplementor session, java.util.Map map) { super(session); this.map = map; setInitialized(); setDirectlyAccessible(true); }
public void remove() { write(); iter.remove(); } }
public void initializeFromCache(CollectionPersister persister, Serializable disassembled, Object owner) throws HibernateException { Serializable[] array = ( Serializable[] ) disassembled; int size = array.length; beforeInitialize( persister, size ); for ( int i = 0; i < size; i+=2 ) { map.put( persister.getIndexType().assemble( array[i], getSession(), owner ), persister.getElementType().assemble( array[i+1], getSession(), owner ) ); } }
public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { final java.util.Map sn = (java.util.Map) getSnapshot(); java.util.Map.Entry e = (java.util.Map.Entry) entry; Object snValue = sn.get( e.getKey() ); return e.getValue()!=null && snValue!=null && elemType.isDirty( snValue, e.getValue(), getSession() ); }
public Serializable disassemble(CollectionPersister persister) throws HibernateException { Serializable[] result = new Serializable[ map.size() * 2 ]; Iterator iter = map.entrySet().iterator(); int i=0; while ( iter.hasNext() ) { Map.Entry e = (Map.Entry) iter.next(); result[i++] = persister.getIndexType().disassemble( e.getKey(), getSession(), null ); result[i++] = persister.getElementType().disassemble( e.getValue(), getSession(), null ); } return result; }
public PersistentCollection wrap(SessionImplementor session, Object collection) { if ( session.getEntityMode()==EntityMode.DOM4J ) { return new PersistentMapElementHolder( session, (Element) collection ); } else { return new PersistentMap( session, (java.util.Map) collection ); } }
/** * @see java.util.Map#put(Object, Object) */ public Object put(Object key, Object value) { if ( isPutQueueEnabled() ) { Object old = readElementByIndex( key ); queueOperation( new Put( key, value, old ) ); return old; } else { initialize( true ); Object old = map.put( key, value ); // would be better to use the element-type to determine // whether the old and the new are equal here; the problem being // we do not necessarily have access to the element type in all // cases if ( value != old ) { dirty(); } return old; } }
public Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException { Map sn = (Map) snapshot; return getOrphans( sn.values(), map.values(), entityName, getSession() ); }
/** * @see java.util.Map#clear() */ public void clear() { if ( isClearQueueEnabled() ) { queueOperation( new Clear() ); } else { initialize( true ); if ( ! map.isEmpty() ) { dirty(); map.clear(); } } }
public Object setValue(Object value) { write(); return me.setValue(value); } }
public void initializeFromCache(CollectionPersister persister, Serializable disassembled, Object owner) throws HibernateException { beforeInitialize(persister); Serializable[] array = (Serializable[]) disassembled; for (int i=0; i<array.length; i+=2 ) map.put( persister.getIndexType().assemble( array[i], getSession(), owner ), persister.getElementType().assemble( array[i+1], getSession(), owner ) ); }
public boolean equalsSnapshot(CollectionPersister persister) throws HibernateException { Type elementType = persister.getElementType(); java.util.Map xmap = (java.util.Map) getSnapshot(); if ( xmap.size()!=this.map.size() ) return false; Iterator iter = map.entrySet().iterator(); while ( iter.hasNext() ) { java.util.Map.Entry entry = (java.util.Map.Entry) iter.next(); if ( elementType.isDirty( entry.getValue(), xmap.get( entry.getKey() ), getSession() ) ) return false; } return true; }
public Serializable disassemble(CollectionPersister persister) throws HibernateException { Serializable[] result = new Serializable[ map.size() * 2 ]; Iterator iter = map.entrySet().iterator(); int i=0; while ( iter.hasNext() ) { java.util.Map.Entry e = (java.util.Map.Entry) iter.next(); result[i++] = persister.getIndexType().disassemble( e.getKey(), getSession(), null ); result[i++] = persister.getElementType().disassemble( e.getValue(), getSession(), null ); } return result; }
public PersistentCollection wrap(SessionImplementor session, Object collection) { if ( session.getEntityMode()==EntityMode.DOM4J ) { return new PersistentMapElementHolder( session, (Element) collection ); } else { return new PersistentMap( session, (java.util.Map) collection ); } }
/** * @see java.util.Map#clear() */ public void clear() { write(); map.clear(); }
super(session); this.map = map; setInitialized(); setDirectlyAccessible(true);
public Object readFrom(ResultSet rs, CollectionPersister persister, CollectionAliases descriptor, Object owner) throws HibernateException, SQLException { Object element = persister.readElement( rs, owner, descriptor.getSuffixedElementAliases(), getSession() ); Object index = persister.readIndex( rs, descriptor.getSuffixedIndexAliases(), getSession() ); map.put(index, element); return element; }
public PersistentCollection instantiate(SessionImplementor session, CollectionPersister persister, Serializable key) { if ( session.getEntityMode()==EntityMode.DOM4J ) { return new PersistentMapElementHolder(session, persister, key); } else { return new PersistentMap(session); } }