private boolean doTryUpdateNoLock ( S storable ) { S existing = mMap . get ( new Key < S > ( storable , mFullComparator ) ) ; if ( existing == null ) { return false ; } else { // Copy altered values to existing object. existing . markAllPropertiesDirty ( ) ; storable . copyDirtyProperties ( existing ) ; existing . markAllPropertiesClean ( ) ; // Copy all values to user object, to simulate a reload. storable . markAllPropertiesDirty ( ) ; existing . copyAllProperties ( storable ) ; storable . markAllPropertiesClean ( ) ; return true ; } }
Caller must hold write lock .