public PersistentCollection instantiate( SessionImplementor session, CollectionPersister persister, Serializable key) throws HibernateException { return new PersistentIdentifierBag(session); }
public Object remove(int index) { write(); beforeRemove(index); return values.remove(index); }
public Object get(int index) { read(); return values.get(index); }
public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { if (entry==null) return false; java.util.Map snap = (java.util.Map) getSnapshot(); Object id = identifiers.get( new Integer(i) ); if (id==null) return false; Object old = snap.get(id); return old!=null && elemType.isDirty( old, entry, getSession() ); }
public void preInsert(CollectionPersister persister) throws HibernateException { Iterator iter = values.iterator(); int i=0; while ( iter.hasNext() ) { Object entry = iter.next(); Integer loc = new Integer(i++); if ( !identifiers.containsKey(loc) ) { //TODO: native ids Serializable id = persister.getIdentifierGenerator().generate( getSession(), entry ); identifiers.put(loc, id); } } }
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 ) { identifiers.put( new Integer(i/2), persister.getIdentifierType().assemble( array[i], getSession(), owner ) ); values.add( persister.getElementType().assemble( array[i+1], getSession(), owner ) ); } }
public Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException { Map sn = (Map) snapshot; return getOrphans( sn.values(), values, entityName, getSession() ); }
public Object getSnapshotElement(Object entry, int i) { java.util.Map snap = (java.util.Map) getSnapshot(); Object id = identifiers.get( new Integer(i) ); return snap.get(id); }
public boolean addAll(int index, Collection c) { if ( c.size() > 0 ) { Iterator iter = c.iterator(); while ( iter.hasNext() ) { add( index++, iter.next() ); } return true; } else { return false; } }
public boolean removeAll(Collection c) { if ( c.size() > 0 ) { boolean result = false; Iterator iter = c.iterator(); while ( iter.hasNext() ) { if ( remove( iter.next() ) ) result=true; } return result; } else { return false; } }
public boolean remove(Object o) { initialize( true ); int index = values.indexOf(o); if (index>=0) { beforeRemove(index); values.remove(index); dirty(); return true; } else { return false; } }
public Object get(int index) { read(); return values.get(index); }
public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { if (entry==null) return false; Map snap = (Map) getSnapshot(); Object id = identifiers.get( new Integer(i) ); if (id==null) return false; Object old = snap.get(id); return old!=null && elemType.isDirty( old, entry, getSession() ); }
public void preInsert(CollectionPersister persister) throws HibernateException { Iterator iter = values.iterator(); int i=0; while ( iter.hasNext() ) { Object entry = iter.next(); Integer loc = new Integer(i++); if ( !identifiers.containsKey(loc) ) { //TODO: native ids Serializable id = persister.getIdentifierGenerator().generate( getSession(), entry ); identifiers.put(loc, id); } } }
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 ) { identifiers.put( new Integer(i/2), persister.getIdentifierType().assemble( array[i], getSession(), owner ) ); values.add( persister.getElementType().assemble( array[i+1], getSession(), owner ) ); } }
public Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException { java.util.Map sn = (java.util.Map) snapshot; return getOrphans( sn.values(), values, entityName, getSession() ); }
public boolean needsInserting(Object entry, int i, Type elemType) throws HibernateException { java.util.Map snap = (java.util.Map) getSnapshot(); Object id = identifiers.get( new Integer(i) ); return entry!=null && ( id==null || snap.get(id)==null ); }
public boolean addAll(int index, Collection c) { if ( c.size()>0 ) { //write(); //return values.addAll(index, c); Iterator iter = c.iterator(); while ( iter.hasNext() ) add( index++, iter.next() ); return true; } else { return false; } }