litesoft
@ 949
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.orsup.base; import org.litesoft.bo.attributes.*; import org.litesoft.commonfoundation.base.*; import org.litesoft.commonfoundation.typeutils.*; import java.sql.*; public abstract class AttributeAccessorSCD<Owner extends PersistentObject> extends SupplimentedSCD { public static final AttributeAccessorSCD[] EMPTY_ARRAY = new AttributeAccessorSCD[0]; public AttributeAccessorSCD( String pName, String pColumnName, boolean pRequired, AttributeMetaData pAMD ) { super( pName, pColumnName, pRequired, pAMD ); } public Object getDefault() { return null; } public void clrValueOnPO( Owner pPO ) { setValueOnPO( pPO, null ); } abstract public Object getValueOnPO( Owner pPO ); abstract public void setValueOnPO( Owner pPO, Object pValue ); abstract public Object db_getValueOnPO( Owner pPO ); abstract public void db_setValueOnPO( Owner pPO, Object pValue ); public void onSuccessfulCommit( Owner pPO, boolean pWasCommitted ) { } public Object convertToAppropriateColumnType( Object pValue ) { return convertToTargetType( pValue, getColumnType() ); } private static Object convertToTargetType( Object pValue, Class<?> pTargetType ) { // check first to see if we need to do a conversion if ( pValue == null || (pTargetType.isAssignableFrom( pValue.getClass() )) ) { return pValue; } if ( pTargetType == String.class ) { return pValue.toString(); } if ( (pTargetType == Boolean.class) || (pTargetType == Boolean.TYPE) ) { return to_Boolean( pValue ); } if ( (pTargetType == Long.class) || (pTargetType == Long.TYPE) ) { return to_Long( pValue ); } if ( (pTargetType == Integer.class) || (pTargetType == Integer.TYPE) ) { return to_Integer( pValue ); } if ( (pTargetType == Short.class) || (pTargetType == Short.TYPE) ) { return to_Short( pValue ); } if ( (pTargetType == Double.class) || (pTargetType == Double.TYPE) ) { return to_Double( pValue ); } if ( (pTargetType == Float.class) || (pTargetType == Float.TYPE) ) { return to_Float( pValue ); } if ( pTargetType == Timestamp.class ) { return to_Timestamp( pValue ); } if ( pTargetType == Time.class ) { return to_SqlTime( pValue ); } if ( pTargetType == java.util.Date.class || pTargetType == java.sql.Date.class ) { return to_UtilDate( pValue ); } throw new IllegalArgumentException( "unexpected value; expected: " + pTargetType + " but got: " + ClassName.full( pValue ) ); } public static AttributeAccessorSCD[] append( AttributeAccessorSCD[] pOrig, AttributeAccessorSCD pNew ) { if ( pNew == null ) { return pOrig; } if ( Objects.isNullOrEmpty( pOrig ) ) { return new AttributeAccessorSCD[]{pNew}; } AttributeAccessorSCD[] newArray = new AttributeAccessorSCD[pOrig.length + 1]; System.arraycopy( pOrig, 0, newArray, 0, pOrig.length ); newArray[pOrig.length] = pNew; return newArray; } /** * Intended mainly for cleaning up after junit tests that might dynamically insert attributes */ public static AttributeAccessorSCD[] remove( AttributeAccessorSCD[] pOrig, AttributeAccessorSCD pToRemove ) { if ( (pToRemove != null) && !Objects.isNullOrEmpty( pOrig ) ) { for ( int i = 0; i < pOrig.length; i++ ) { if ( pToRemove.getName().equals( pOrig[i].getName() ) ) { return remove( pOrig, i ); } } } return pOrig; } private static AttributeAccessorSCD[] remove( AttributeAccessorSCD[] pOrig, int pToRemove ) { AttributeAccessorSCD[] newArray = new AttributeAccessorSCD[pOrig.length - 1]; int zDst = 0; for ( int zSrc = 0; zSrc < pOrig.length; zSrc++ ) { if ( zSrc != pToRemove ) { newArray[zDst++] = pOrig[zSrc]; } } return newArray; } } |
Commits for litesoft/trunk/Java/core/Server/src/org/litesoft/orsup/base/AttributeAccessorSCD.java
Revision | Author | Commited | Message |
---|---|---|---|
949 Diff | GeorgeS | Sun 08 Jun, 2014 17:19:33 +0000 | Normalization |
948 Diff | GeorgeS | Sat 07 Jun, 2014 23:42:39 +0000 | Jusefuls Formatter Updated to New Code Format |
947 Diff | GeorgeS | Fri 06 Jun, 2014 23:36:56 +0000 | Correct Spelling of package! |
939 Diff | GeorgeS | Mon 02 Jun, 2014 21:30:31 +0000 | Extracting commonfoundation |
811 Diff | GeorgeS | Sat 18 Aug, 2012 13:45:18 +0000 | |
809 Diff | GeorgeS | Thu 16 Aug, 2012 04:10:46 +0000 | |
151 Diff | GeorgeS | Thu 17 Mar, 2011 04:16:22 +0000 | |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
2 | GeorgeS | Sun 07 Feb, 2010 12:50:58 +0000 |