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 );
}
|