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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.orsup.lazyload; import org.litesoft.orsup.base.*; import org.litesoft.orsup.nonpublic.*; import org.litesoft.orsup.otherattributeaccessors.*; import org.litesoft.util.*; public class LazyLoadToOneCommonPaired<Owner extends PersistentObjectImpl> extends AbstractLazyLoadToOne<Owner, PersistentObjectImpl> implements ToVariable { protected AttributeAccessorSCDtoOneCommonPaired<Owner> mSCDtoOneCommonPaired; public LazyLoadToOneCommonPaired( Owner pOwner, AttributeAccessorSCDtoOneCommonPaired<Owner> pSCDtoOneCommonPaired ) { super( pOwner, pSCDtoOneCommonPaired ); mSCDtoOneCommonPaired = pSCDtoOneCommonPaired; } @Override public final AttributeAccessorSCDtoOneCommonPaired<Owner> getSCDtoOne() { return mSCDtoOneCommonPaired; } public final PersistentObjectImpl getValue() { return LL_getValue(); } public final void setValue( PersistentObjectImpl pNewThem ) { PersistentObjectImpl zOldThem = getValue(); if ( !Utils.areNonArraysEqual( pNewThem, zOldThem ) ) { if ( zOldThem != null ) { getSCDtoOne().pairReplaced( mOwner, zOldThem, pNewThem ); zOldThem.requestDelete(); } mDBValue = (null != (mValue = pNewThem)) ? pNewThem.getRegisteredName() : null; } } /** * @param pDBValue !null */ @Override protected final PersistentObject<?> LL_loadValueWithNonNull( Object pDBValue ) { Finder zFinder = mOwner.getFinder(); MetaDataForPO zThemMD = zFinder.getMetaDataRequired( pDBValue.toString() ); // Force validation! return zFinder.findOne( zThemMD.getPOregistrationName(), // assumes that that our Key Type is the same as thier Key Type mOwner.getPersistentObjectUniqueKey() ); } @Override protected String getBackRefOnUnWire( String pBackRefAttributeNameOnNewThem ) { throw new IllegalStateException( "getBackRefOnUnWire should not be called on CommonPairedToOne" ); } /** * @param pNewThem !null */ @Override protected final Object LL_extract_db_value( PersistentObjectImpl pNewThem, String pBackRefAttributeNameOnNewThem ) { return pNewThem.getRegisteredName(); } } |