litesoft
@ 939
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 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.bo.views; import java.util.*; import org.litesoft.commonfoundation.exceptions.*; /** * Track the ServerVoDataProvider(s) by the ViewObject's Class Name */ public final class ServerVoDataProviderMap { private Map<String, ServerVoDataProvider> mMap = new HashMap<String, ServerVoDataProvider>(); public ServerVoDataProviderMap( VarArgOption... pOptions ) { if ( pOptions != null ) { for ( VarArgOption zOption : pOptions ) { if ( zOption != null ) { if ( null != mMap.put( zOption.getRegisteredName(), zOption.getVoDataProvider() ) ) { throw new PersistenceException( "Duplicate Vo Mapping for " + zOption.getRegisteredName() ); } } } } if ( mMap.isEmpty() ) { throw new PersistenceException( "No Vo Mappings" ); } for ( ServerVoDataProvider zProvider : mMap.values() ) // This loop should be last as 'this' is leaked! { zProvider.initialize( this ); } } public <T extends IViewObject> ServerVoDataProvider<T> get( Class<T> pViewObjectClass ) { return get( pViewObjectClass.getName() ); } @SuppressWarnings({"unchecked"}) public <T extends IViewObject> ServerVoDataProvider<T> get( String pViewObjectRegisteredName ) { return (ServerVoDataProvider<T>) mMap.get( pViewObjectRegisteredName ); } public static <T extends IViewObject> VarArgOption mapping( ServerVoDataProvider<T> pServerVoDataProvider ) { return mapping( pServerVoDataProvider.getVOMetaData().getViewObjectClass(), pServerVoDataProvider ); } public static <T,P extends IViewObject> VarArgOption mapping( Class<T> pViewObjectClass, ServerVoDataProvider<P> pServerVoDataProvider ) { return mapping( pViewObjectClass.getName(), pServerVoDataProvider ); } public static VarArgOption mapping( String pViewObjectRegisteredName, ServerVoDataProvider pServerVoDataProvider ) { return new VarArgOption( pViewObjectRegisteredName, pServerVoDataProvider ); } public static class VarArgOption { private String mRegisteredName; private ServerVoDataProvider mVoDataProvider; public VarArgOption( String pRegisteredName, ServerVoDataProvider pVoDataProvider ) { mRegisteredName = pRegisteredName; mVoDataProvider = pVoDataProvider; } public String getRegisteredName() { return mRegisteredName; } public ServerVoDataProvider getVoDataProvider() { return mVoDataProvider; } } } |
Commits for litesoft/trunk/Java/core/Anywhere/src/org/litesoft/bo/views/ServerVoDataProviderMap.java
Revision | Author | Commited | Message |
---|---|---|---|
939 Diff | GeorgeS | Mon 02 Jun, 2014 21:30:31 +0000 | Extracting commonfoundation |
480 Diff | GeorgeS | Sun 04 Sep, 2011 02:38:20 +0000 | Progress on common User Support... |
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 |