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 88 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.bo.views; import org.litesoft.bo.views.server.*; import org.litesoft.commonfoundation.exceptions.*; import org.litesoft.commonfoundation.interators.*; import org.litesoft.core.simpletypes.*; import org.litesoft.logger.*; @SuppressWarnings({"DuplicateThrows"}) public interface ServerVoDataProvider<T extends IViewObject> { public static final Logger LOGGER = LoggerFactory.getLogger( ServerVoDataProvider.class ); public VoMetaData<T> getVOMetaData(); public void initialize( ServerVoDataProviderMap pServerVoDataProviderMap ); public ServerVoDataProviderMap getServerVoDataProviderMap(); /** * Get a single VO based on an ObejctURL * * @param pObjectURL if null, null will be return * * @return single VO found (matches), or null if not found (or pObjectURL is null) * * @throws PersistenceException if there was an underlying exception! */ public T getVOby( ObjectURL pObjectURL ) throws PersistenceException; /** * Get all Matching VO(s) with the supplied URLs. * * @param pObjectURLs the URLs for the VOs to fetch. * * @return a SizedIterator, if the rows found are <= pMaxToReturn then the size indicated will match the rows returned by iterating, otherwise, the state of the iterator is unspecified. * * @throws PersistenceException if there was an underlying exception! */ public SizedIterator<T> getMatchingVOs( ObjectURL... pObjectURLs ) throws PersistenceException; /** * Get all Matching VO(s) by the supplied criteria (Not to exceed the pMaxToReturn). * * @param pMaxToReturn if ! null, then if there are more then the pMaxToReturn that match, return none, but indicate how many would have been returned. * @param pORed_ANDFilters - OR the criteria of each map, where each map is the ANDing of the attribute values (Note: if No Maps are given then return ALL) * * @return a SizedIterator, if the rows found are <= pMaxToReturn then the size indicated will match the rows returned by iterating, otherwise, the state of the iterator is unspecified. * * @throws PersistenceException if there was an underlying exception! */ public SizedIterator<T> getMatchingVOs( Integer pMaxToReturn, SSMap... pORed_ANDFilters ) throws PersistenceException; public SCresult requestFunctionSimple( String pFunction, IViewObject... pVOs ) throws PersistenceException; public SCresult requestFunctionFetchRow( String pFunction, IViewObject... pVOs ) throws MultipleMatchingPersistenceException, PersistenceException; public SCresult requestFunctionFetchRows( String pFunction, Integer pMaxToReturn, IViewObject... pVOs ) throws PersistenceException; public SCresult requestRowByObjectURL( ObjectURL pObjectURL ) throws MultipleMatchingPersistenceException, PersistenceException; public SCresult requestRowsByObjectURLs( ObjectURL... pObjectURLs ) throws PersistenceException; public SCresult requestRowsByFilters( BoAccessorFilters pFilters, Integer pMaxToReturn ) throws PersistenceException; /** * ACIDly update the Backing Persistence Engine (DB?) with rows from the pTransactionSet. * * @param pTransactionSet !null * @param pReturnOnSuccess the SCresult will contain a VO (which may be null) entry for each VO originally in the pTransactionSet whose original ObjectURL matches the entry in this array (dups allowed). * * @return a Relatively complex object that is used to manage Caches. * * @throws PersistenceException if there was an underlying exception! */ public SCresult requestCommit( TransactionSet pTransactionSet, ObjectURL... pReturnOnSuccess ) throws PersistenceException; } |