Subversion Repository Public Repository

litesoft

Diff Revisions 949 vs 950 for /trunk/Java/GWT/Server/src/org/litesoft/GWT/server/AbstractVoServerApp.java

Diff revisions: vs.
  @@ -1,97 +1,97 @@
1 - // This Source Code is in the Public Domain per: http://unlicense.org
2 - package org.litesoft.GWT.server;
3 -
4 - import org.litesoft.GWT.client.rpc.*;
5 - import org.litesoft.bo.views.*;
6 - import org.litesoft.bo.views.caching.*;
7 - import org.litesoft.bo.views.communication.*;
8 - import org.litesoft.bo.views.server.*;
9 - import org.litesoft.commonfoundation.exceptions.*;
10 - import org.litesoft.core.*;
11 -
12 - import java.util.*;
13 -
14 - public abstract class AbstractVoServerApp extends AbstractServerApp implements VoService // don't forget this!
15 - {
16 - private ServerVoDataProviderMap mDPmap;
17 -
18 - protected AbstractVoServerApp( String pAppName, VoCacheManager pCacheManager, ServerVoDataProviderMapFactory pFactory ) {
19 - super( pAppName );
20 - ServletSessionHelper.initialize( pCacheManager );
21 - ServerContext.getMasterServerStore().set( ServerVoDataProviderMap.class, mDPmap = pFactory.createServerVoDataProviderMap() );
22 - }
23 -
24 - @Override
25 - public final SCpayload process( CSpayload pPayload ) {
26 - ContextID zContextID = ServletSessionHelper.callInit( getThreadLocalRequest().getSession( true ) );
27 -
28 - try {
29 - AbstractCSrequestVOtype zRequest = (AbstractCSrequestVOtype) pPayload.getCSrequest();
30 - if ( zRequest == null ) {
31 - return new SCpayload( new VOSCresponseError( "" ), getTemporalTriggers() ); // Simple Poll
32 - }
33 - String zViewObjectRegisteredName = zRequest.getForViewObjectRegisteredName();
34 -
35 - ServerVoDataProvider<IViewObject> zDataProvider = mDPmap.get( zViewObjectRegisteredName );
36 -
37 - if ( zDataProvider == null ) {
38 - throw new IllegalStateException( "No DataProvider for '" + zViewObjectRegisteredName + "'" );
39 - }
40 -
41 - SCresult zResult = zRequest.process( mDPmap, zDataProvider );
42 -
43 - CacheID zCacheID = pPayload.getResponseCacheID();
44 - if ( zCacheID != null ) {
45 - if ( zResult.getReadObjectClassName() != null ) {
46 - ServletSessionHelper.getCacheManager().addType( zContextID, zCacheID, zResult.getReadObjectClassName() );
47 - } else if ( zResult.getReadObjectURL() != null ) {
48 - ServletSessionHelper.getCacheManager().addInstance( zContextID, zCacheID, zResult.getReadObjectURL() );
49 - }
50 - }
51 - List<ObjectURL> zChangedObjectURLs = zResult.getChangedObjectURLs();
52 -
53 - CacheID[] zCacheIDs = ServletSessionHelper.getCacheManager().invalidate( zContextID, zChangedObjectURLs );
54 -
55 - return new SCpayload( zResult.getSCresponse(), getTemporalTriggers(), zCacheIDs );
56 - }
57 - catch ( SessionExpiredException e ) {
58 - return new SCpayload( new SecuritySCresponse( true, e.getMessage() ), getTemporalTriggers() );
59 - }
60 - catch ( SecurityException e ) {
61 - return new SCpayload( new SecuritySCresponse( false, e.getMessage() ), getTemporalTriggers() );
62 - }
63 - catch ( RuntimeException e ) {
64 - if ( e instanceof DisplayableException ) {
65 - DisplayableException zDisplayable = (DisplayableException) e;
66 - return new SCpayload( new VOSCresponseError( resolve( zDisplayable.getToResolveIdentifier(), zDisplayable.getParams() ) ),
67 - getTemporalTriggers() );
68 - }
69 - getLogger().warn().log( e );
70 - throw e;
71 - }
72 - finally {
73 - ServletSessionHelper.callFini();
74 - }
75 - }
76 -
77 - protected synchronized TemporalTrigger[] getTemporalTriggers() {
78 - if ( mTemporalTriggerAccessors.isEmpty() ) {
79 - return null;
80 - }
81 - TemporalTrigger[] rv = new TemporalTrigger[mTemporalTriggerAccessors.size()];
82 - for ( int i = 0; i < mTemporalTriggerAccessors.size(); i++ ) {
83 - rv[i] = mTemporalTriggerAccessors.get( i ).getTrigger();
84 - }
85 - return rv;
86 - }
87 -
88 - private List<TemporalTriggerAccessor> mTemporalTriggerAccessors = new ArrayList<TemporalTriggerAccessor>();
89 -
90 - public synchronized void add( TemporalTriggerAccessor pTemporalTriggerAccessor ) {
91 - if ( pTemporalTriggerAccessor != null ) {
92 - mTemporalTriggerAccessors.add( pTemporalTriggerAccessor );
93 - }
94 - }
95 -
96 - abstract protected String resolve( String pIdentifier, String[] pParams );
97 - }
1 + // This Source Code is in the Public Domain per: http://unlicense.org
2 + package org.litesoft.GWT.server;
3 +
4 + import org.litesoft.GWT.client.rpc.*;
5 + import org.litesoft.bo.views.*;
6 + import org.litesoft.bo.views.caching.*;
7 + import org.litesoft.bo.views.communication.*;
8 + import org.litesoft.bo.views.server.*;
9 + import org.litesoft.commonfoundation.exceptions.*;
10 + import org.litesoft.core.*;
11 +
12 + import java.util.*;
13 +
14 + public abstract class AbstractVoServerApp extends AbstractServerApp implements VoService // don't forget this!
15 + {
16 + private ServerVoDataProviderMap mDPmap;
17 +
18 + protected AbstractVoServerApp( String pAppName, VoCacheManager pCacheManager, ServerVoDataProviderMapFactory pFactory ) {
19 + super( pAppName );
20 + ServletSessionHelper.initialize( pCacheManager );
21 + ServerContext.getMasterServerStore().set( ServerVoDataProviderMap.class, mDPmap = pFactory.createServerVoDataProviderMap() );
22 + }
23 +
24 + @Override
25 + public final SCpayload process( CSpayload pPayload ) {
26 + ContextID zContextID = ServletSessionHelper.callInit( getThreadLocalRequest().getSession( true ) );
27 +
28 + try {
29 + AbstractCSrequestVOtype zRequest = (AbstractCSrequestVOtype) pPayload.getCSrequest();
30 + if ( zRequest == null ) {
31 + return new SCpayload( new VOSCresponseError( "" ), getTemporalTriggers() ); // Simple Poll
32 + }
33 + String zViewObjectRegisteredName = zRequest.getForViewObjectRegisteredName();
34 +
35 + ServerVoDataProvider<IViewObject> zDataProvider = mDPmap.get( zViewObjectRegisteredName );
36 +
37 + if ( zDataProvider == null ) {
38 + throw new IllegalStateException( "No DataProvider for '" + zViewObjectRegisteredName + "'" );
39 + }
40 +
41 + SCresult zResult = zRequest.process( mDPmap, zDataProvider );
42 +
43 + CacheID zCacheID = pPayload.getResponseCacheID();
44 + if ( zCacheID != null ) {
45 + if ( zResult.getReadObjectClassName() != null ) {
46 + ServletSessionHelper.getCacheManager().addType( zContextID, zCacheID, zResult.getReadObjectClassName() );
47 + } else if ( zResult.getReadObjectURL() != null ) {
48 + ServletSessionHelper.getCacheManager().addInstance( zContextID, zCacheID, zResult.getReadObjectURL() );
49 + }
50 + }
51 + List<ObjectURL> zChangedObjectURLs = zResult.getChangedObjectURLs();
52 +
53 + CacheID[] zCacheIDs = ServletSessionHelper.getCacheManager().invalidate( zContextID, zChangedObjectURLs );
54 +
55 + return new SCpayload( zResult.getSCresponse(), getTemporalTriggers(), zCacheIDs );
56 + }
57 + catch ( SessionExpiredException e ) {
58 + return new SCpayload( new SecuritySCresponse( true, e.getMessage() ), getTemporalTriggers() );
59 + }
60 + catch ( SecurityException e ) {
61 + return new SCpayload( new SecuritySCresponse( false, e.getMessage() ), getTemporalTriggers() );
62 + }
63 + catch ( RuntimeException e ) {
64 + if ( e instanceof DisplayableException ) {
65 + DisplayableException zDisplayable = (DisplayableException) e;
66 + return new SCpayload( new VOSCresponseError( resolve( zDisplayable.getToResolveIdentifier(), zDisplayable.getParams() ) ),
67 + getTemporalTriggers() );
68 + }
69 + getLogger().warn().log( e );
70 + throw e;
71 + }
72 + finally {
73 + ServletSessionHelper.callFini();
74 + }
75 + }
76 +
77 + protected synchronized TemporalTrigger[] getTemporalTriggers() {
78 + if ( mTemporalTriggerAccessors.isEmpty() ) {
79 + return null;
80 + }
81 + TemporalTrigger[] rv = new TemporalTrigger[mTemporalTriggerAccessors.size()];
82 + for ( int i = 0; i < mTemporalTriggerAccessors.size(); i++ ) {
83 + rv[i] = mTemporalTriggerAccessors.get( i ).getTrigger();
84 + }
85 + return rv;
86 + }
87 +
88 + private List<TemporalTriggerAccessor> mTemporalTriggerAccessors = new ArrayList<TemporalTriggerAccessor>();
89 +
90 + public synchronized void add( TemporalTriggerAccessor pTemporalTriggerAccessor ) {
91 + if ( pTemporalTriggerAccessor != null ) {
92 + mTemporalTriggerAccessors.add( pTemporalTriggerAccessor );
93 + }
94 + }
95 +
96 + abstract protected String resolve( String pIdentifier, String[] pParams );
97 + }