litesoft
@ 151
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.orsup.base; import org.litesoft.orsup.selection.*; import org.litesoft.util.*; /** * An inpliementation of a PersistentObjectUniqueKey that is PO Instance/Identity based for those POs that do NOT have a Unique Key */ public class PersistentObjectUniqueKeyForInstance extends PersistentObjectUniqueKey { transient private PersistentObject<?> mPersistentObject; private int mPOsystemHashCode; public PersistentObjectUniqueKeyForInstance( PersistentObject<?> pPersistentObject ) { Utils.assertNotNull( "PersistentObject", mPersistentObject = pPersistentObject ); mPOsystemHashCode = System.identityHashCode( mPersistentObject ); } @Override protected int calcHashCode() { return mPOsystemHashCode; } @Override protected boolean equalsNotNullNotUs( PersistentObjectUniqueKey pThem ) { if ( pThem instanceof PersistentObjectUniqueKeyForInstance ) { PersistentObjectUniqueKeyForInstance them = (PersistentObjectUniqueKeyForInstance) pThem; if ( this.mPOsystemHashCode == them.mPOsystemHashCode ) { if ( (this.mPersistentObject == null) || (them.mPersistentObject == null) || (this.mPersistentObject == them.mPersistentObject) ) { return true; } } } return false; } @Override protected String generateToStringForConstructor() { return null; // ? Should this throw an exception? } @Override public WhereClause convertToWC() { throw new IllegalStateException( "Attempt to query on a PersistentObjectUniqueKey for an object that has no PersistentObjectUniqueKey" ); } } |