litesoft
@ 821
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.bo.views.server; import java.util.*; import org.litesoft.bo.views.*; import org.litesoft.bo.views.communication.*; import org.litesoft.core.simpletypes.*; import org.litesoft.core.typeutils.*; import org.litesoft.core.util.*; public abstract class AbstractServerRequestRowOrRowsVoDataProvider<T extends IViewObject> extends AbstractFunctionalServerVoDataProvider<T> { protected AbstractServerRequestRowOrRowsVoDataProvider( VoMetaData<T> pVOMetaData ) { super( pVOMetaData ); } public final SCresult requestRowByObjectURL( ObjectURL pObjectURL ) throws PersistenceException { T zVO = getVOby( pObjectURL ); return VOSC.result( zVO ); } public final SCresult requestRowsByObjectURLs( ObjectURL... pObjectURLs ) throws PersistenceException { return process( getMatchingVOs( pObjectURLs ) ); } public final SCresult requestRowsByFilters( BoAccessorFilters pFilters, Integer pMaxToReturn ) throws PersistenceException { return process( getMatchingVOs( Integers.assertNonNegative( "MaxToReturn", pMaxToReturn ), toFilterArray( pFilters ) ) ); } public SCresult process( SizedIterator<T> zIterator ) throws PersistenceException { return (zIterator.size() != null) ? // zIterator's size is ONLY set if the Max Size was exceeded VOSC.result( zIterator.size() ) : // VOSC.result( convert( zIterator ) ); } public Collection<T> convert( Iterator<T> pIterator ) { try { ArrayList<T> zList = new ArrayList<T>(); while ( pIterator.hasNext() ) { zList.add( pIterator.next() ); } return zList; } finally { if ( pIterator instanceof Disposable ) { ((Disposable) pIterator).dispose(); } } } private static SSMap[] toFilterArray( BoAccessorFilters pFilters ) { return (pFilters == null) || pFilters.isEmpty() ? SSMap.EMPTY_ARRAY : new SSMap[]{pFilters.getFilters()}; } } |