From: <one...@us...> - 2003-02-02 04:19:54
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection In directory sc8-pr-cvs1:/tmp/cvs-serv29352/sf/hibernate/collection Modified Files: ArrayHolder.java List.java Map.java Log Message: smarter dirty-checking for EntityType Index: ArrayHolder.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/ArrayHolder.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ArrayHolder.java 28 Jan 2003 10:22:19 -0000 1.5 --- ArrayHolder.java 2 Feb 2003 04:19:51 -0000 1.6 *************** *** 66,70 **** if ( xlen!= Array.getLength(array) ) return false; for ( int i=0; i<xlen; i++) { ! if ( !elementType.equals( Array.get(snapshot, i), Array.get(array, i) ) ) return false; } return true; --- 66,70 ---- if ( xlen!= Array.getLength(array) ) return false; for ( int i=0; i<xlen; i++) { ! if ( elementType.isDirty( Array.get(snapshot, i), Array.get(array, i), session ) ) return false; } return true; *************** *** 216,220 **** public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { Serializable snapshot = getSnapshot(); ! return i<Array.getLength(snapshot) && !elemType.equals( Array.get(array, i), Array.get(snapshot, i) ); } /** --- 216,220 ---- public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { Serializable snapshot = getSnapshot(); ! return i<Array.getLength(snapshot) && elemType.isDirty( Array.get(array, i), Array.get(snapshot, i), session ); } /** Index: List.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/List.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** List.java 5 Jan 2003 02:11:20 -0000 1.5 --- List.java 2 Feb 2003 04:19:51 -0000 1.6 *************** *** 42,46 **** Iterator sniter = sn.iterator(); while ( iter.hasNext() ) { ! if ( !elementType.equals( iter.next(), sniter.next() ) ) return false; } return true; --- 42,46 ---- Iterator sniter = sn.iterator(); while ( iter.hasNext() ) { ! if ( elementType.isDirty( iter.next(), sniter.next(), session ) ) return false; } return true; *************** *** 353,357 **** public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { final java.util.List sn = (java.util.List) getSnapshot(); ! return i<sn.size() && !elemType.equals( list.get(i), sn.get(i) ); } --- 353,357 ---- public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { final java.util.List sn = (java.util.List) getSnapshot(); ! return i<sn.size() && elemType.isDirty( list.get(i), sn.get(i), session ); } Index: Map.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/Map.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Map.java 5 Jan 2003 02:11:20 -0000 1.5 --- Map.java 2 Feb 2003 04:19:51 -0000 1.6 *************** *** 42,46 **** while ( iter.hasNext() ) { java.util.Map.Entry entry = (java.util.Map.Entry) iter.next(); ! if ( !elementType.equals( entry.getValue(), xmap.get( entry.getKey() ) ) ) return false; } return true; --- 42,46 ---- while ( iter.hasNext() ) { java.util.Map.Entry entry = (java.util.Map.Entry) iter.next(); ! if ( elementType.isDirty( entry.getValue(), xmap.get( entry.getKey() ), session ) ) return false; } return true; *************** *** 359,363 **** final java.util.Map sn = (java.util.Map) getSnapshot(); java.util.Map.Entry e = (java.util.Map.Entry) entry; ! return sn.containsKey( e.getKey() ) && !elemType.equals( e.getValue(), sn.get( e.getKey() ) ); } --- 359,363 ---- final java.util.Map sn = (java.util.Map) getSnapshot(); java.util.Map.Entry e = (java.util.Map.Entry) entry; ! return sn.containsKey( e.getKey() ) && elemType.isDirty( e.getValue(), sn.get( e.getKey() ), session ); } |