Subversion Repository Public Repository

litesoft

Diff Revisions 949 vs 950 for /trunk/Java/GWT/Client/src/org/litesoft/GWT/client/rpc/GwtCScomm.java

Diff revisions: vs.
  @@ -1,213 +1,212 @@
1 - // This Source Code is in the Public Domain per: http://unlicense.org
2 - package org.litesoft.GWT.client.rpc;
3 -
4 - import org.litesoft.GWT.client.view.*;
5 - import org.litesoft.bo.views.*;
6 - import org.litesoft.bo.views.caching.*;
7 - import org.litesoft.bo.views.communication.*;
8 - import org.litesoft.commonfoundation.base.*;
9 - import org.litesoft.commonfoundation.typeutils.*;
10 -
11 - import com.google.gwt.core.client.*;
12 - import com.google.gwt.user.client.rpc.*;
13 -
14 - public class GwtCScomm extends CScomm {
15 - private final VoServiceAsync mAsyncService = GWT.create( VoService.class );
16 -
17 - private CacheManager mCacheManager;
18 - private SecurityIssueable mSecurityIssueable;
19 -
20 - public GwtCScomm( CacheManager pCacheManager, SecurityIssueable pSecurityIssueable, AsyncCallback<AppInitializationResult> pCallback ) {
21 - mCacheManager = (pCacheManager != null) ? pCacheManager : CacheManager.NULL;
22 - mSecurityIssueable = pSecurityIssueable;
23 -
24 - ((ServiceDefTarget) mAsyncService).setServiceEntryPoint( extractEntryName( mAsyncService ) );
25 -
26 - mAsyncService.initialize( pCallback );
27 - }
28 -
29 - @Override
30 - public void requestTemporalTriggerPoll() {
31 - processRequest( "requestTemporalTriggerPoll", null, null );
32 - }
33 -
34 - @Override
35 - public void requestFunctionSimple( VOCSrequestFunctionSimple pFunctionSimple, SimpleDataProviderCallBack pCallBack ) {
36 - processRequest( "requestFunctionSimple", pFunctionSimple, pCallBack );
37 - }
38 -
39 - @Override
40 - public void requestFunctionFetchRow( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestFunctionFetchRow pFunctionFetchRow,
41 - FetchRowDataProviderCallBack<? extends IViewObject> pCallBack ) {
42 - processRequest( "requestFunctionFetchRow", pCacheInvalidCallBack, pCacheID, pFunctionFetchRow, pCallBack );
43 - }
44 -
45 - @Override
46 - public void requestFunctionFetchRows( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestFunctionFetchRows pFunctionFetchRows,
47 - FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
48 - processRequest( "requestFunctionFetchRows", pCacheInvalidCallBack, pCacheID, pFunctionFetchRows, pCallBack );
49 - }
50 -
51 - @Override
52 - public void requestRowByObjectURL( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestRowByObjectURL pRowByObjectURL,
53 - FetchRowDataProviderCallBack<? extends IViewObject> pCallBack ) {
54 - processRequest( "requestRowByObjectURL", pCacheInvalidCallBack, pCacheID, pRowByObjectURL, pCallBack );
55 - }
56 -
57 - @Override
58 - public void requestRowsByObjectURLs( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestRowsByObjectURLs pRowsByObjectURLs,
59 - FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
60 - processRequest( "requestRowsByObjectURLs", pCacheInvalidCallBack, pCacheID, pRowsByObjectURLs, pCallBack );
61 - }
62 -
63 - @Override
64 - public void requestRowsByFilters( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestRowsByFilters pRowsByFilters,
65 - FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
66 - processRequest( "requestRowsByFilters", pCacheInvalidCallBack, pCacheID, pRowsByFilters, pCallBack );
67 - }
68 -
69 - @SuppressWarnings({"unchecked"})
70 - @Override
71 - public void requestCommit( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestCommit pVOCSrequestCommit,
72 - CommitCallBack<? extends IViewObject> pCallBack ) {
73 - mAsyncService.process( handle( pCacheID, pCacheInvalidCallBack, pVOCSrequestCommit ), //
74 - new AsyncCommitCallBack( "requestCommit", (pCallBack != null) ? pCallBack : CommitCallBack.NULL ) );
75 - }
76 -
77 - @SuppressWarnings({"unchecked"})
78 - private void processRequest( final String pWho, VOCSrequestFunctionSimple pFunctionSimple, SimpleDataProviderCallBack pCallBack ) {
79 - mAsyncService.process( new CSpayload( pFunctionSimple, null ), //
80 - new AsyncSimpleDataProviderCallBack( pWho, (pCallBack != null) ? pCallBack : SimpleDataProviderCallBack.NULL ) );
81 - }
82 -
83 - @SuppressWarnings({"unchecked"})
84 - private void processRequest( final String pWho, CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, CSrequest pCSrequest,
85 - FetchRowDataProviderCallBack<? extends IViewObject> pCallBack ) {
86 - mAsyncService.process( handle( pCacheID, pCacheInvalidCallBack, pCSrequest ), //
87 - new AsyncFetchRowDataProviderCallBack( pWho, (pCallBack != null) ? pCallBack : FetchRowDataProviderCallBack.NULL ) );
88 - }
89 -
90 - @SuppressWarnings({"unchecked"})
91 - private void processRequest( final String pWho, CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, CSrequest pCSrequest,
92 - FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
93 - mAsyncService.process( handle( pCacheID, pCacheInvalidCallBack, pCSrequest ), //
94 - new AsyncFetchRowsDataProviderCallBack( pWho, (pCallBack != null) ? pCallBack : FetchRowsDataProviderCallBack.NULL ) );
95 - }
96 -
97 - private CSpayload handle( CacheID pCacheID, CacheInvalidCallBack pCacheInvalidCallBack, CSrequest pCSrequest ) {
98 - return new CSpayload( pCSrequest, mCacheManager.add( pCacheID, pCacheInvalidCallBack ) ? pCacheID : null );
99 - }
100 -
101 - private static final String ASYNC_NAME_PROXY_TAIL = "_Proxy";
102 -
103 - protected String extractEntryName( Object pAsyncInstance ) {
104 - String zTypeName = pAsyncInstance.getClass().getName();
105 -
106 - if ( !zTypeName.endsWith( ASYNC_NAME_PROXY_TAIL ) ) {
107 - throw new IllegalStateException( zTypeName + " did not end with '" + ASYNC_NAME_PROXY_TAIL + "'" );
108 - }
109 - int lastDot = zTypeName.lastIndexOf( '.' );
110 - if ( lastDot == -1 ) {
111 - throw new IllegalStateException( zTypeName + " may not live in the default package" );
112 - }
113 - return zTypeName.substring( lastDot + 1, zTypeName.length() - ASYNC_NAME_PROXY_TAIL.length() );
114 - }
115 -
116 - private String makeMessage( Throwable pThrowable ) {
117 - return ClassName.simple( pThrowable ) + " " + Strings.deNull( pThrowable.getMessage() ).trim();
118 - }
119 -
120 - private abstract class OurAsyncCallback implements AsyncCallback<SCpayload> {
121 - private String mWho;
122 - private ErrorCallBack mErrorCallBack;
123 -
124 - protected OurAsyncCallback( String pWho, ErrorCallBack pErrorCallBack ) {
125 - mWho = pWho;
126 - mErrorCallBack = pErrorCallBack;
127 - }
128 -
129 - @Override
130 - public void onFailure( Throwable caught ) {
131 - TemporalTriggerManager.get().response();
132 - mErrorCallBack.error( mWho + ": " + makeMessage( caught ) );
133 - }
134 -
135 - @Override
136 - public void onSuccess( SCpayload result ) {
137 - mCacheManager.invalidate( result.getInvalidCacheIDs() );
138 - TemporalTriggerManager zManager = TemporalTriggerManager.get();
139 - zManager.response();
140 - TemporalTrigger[] zTriggers = result.getTemporalTriggers();
141 - if ( (zTriggers != null) && (zTriggers.length != 0) ) {
142 - for ( TemporalTrigger zTrigger : zTriggers ) {
143 - zManager.dispatch( zTrigger );
144 - }
145 - }
146 - SCresponse zSCresponse = result.getSCresponse();
147 - if ( zSCresponse instanceof SecuritySCresponse ) {
148 - mSecurityIssueable.handleSecurityIssue( ((SecuritySCresponse) zSCresponse).isSessionExpired() ? "Session Expired" : "General Security Problem" );
149 - return;
150 - }
151 - //noinspection ConstantConditions
152 - call( (VOSCresponse) zSCresponse );
153 - }
154 -
155 - abstract protected void call( VOSCresponse pResponse );
156 - }
157 -
158 - private class AsyncSimpleDataProviderCallBack extends OurAsyncCallback {
159 - private SimpleDataProviderCallBack mCallBack;
160 -
161 - private AsyncSimpleDataProviderCallBack( String pWho, SimpleDataProviderCallBack pCallBack ) {
162 - super( pWho, pCallBack );
163 - mCallBack = pCallBack;
164 - }
165 -
166 - @Override
167 - protected void call( VOSCresponse pResponse ) {
168 - pResponse.call( mCallBack );
169 - }
170 - }
171 -
172 - private class AsyncCommitCallBack extends OurAsyncCallback {
173 - private CommitCallBack<? extends IViewObject> mCallBack;
174 -
175 - private AsyncCommitCallBack( String pWho, CommitCallBack<? extends IViewObject> pCallBack ) {
176 - super( pWho, pCallBack );
177 - mCallBack = pCallBack;
178 - }
179 -
180 - @Override
181 - protected void call( VOSCresponse pResponse ) {
182 - pResponse.call( mCallBack );
183 - }
184 - }
185 -
186 - private class AsyncFetchRowDataProviderCallBack extends OurAsyncCallback {
187 - private FetchRowDataProviderCallBack<? extends IViewObject> mCallBack;
188 -
189 - private AsyncFetchRowDataProviderCallBack( String pWho, FetchRowDataProviderCallBack<? extends IViewObject> pCallBack ) {
190 - super( pWho, pCallBack );
191 - mCallBack = pCallBack;
192 - }
193 -
194 - @Override
195 - protected void call( VOSCresponse pResponse ) {
196 - pResponse.call( mCallBack );
197 - }
198 - }
199 -
200 - private class AsyncFetchRowsDataProviderCallBack extends OurAsyncCallback {
201 - private FetchRowsDataProviderCallBack<? extends IViewObject> mCallBack;
202 -
203 - private AsyncFetchRowsDataProviderCallBack( String pWho, FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
204 - super( pWho, pCallBack );
205 - mCallBack = pCallBack;
206 - }
207 -
208 - @Override
209 - protected void call( VOSCresponse pResponse ) {
210 - pResponse.call( mCallBack );
211 - }
212 - }
213 - }
1 + // This Source Code is in the Public Domain per: http://unlicense.org
2 + package org.litesoft.GWT.client.rpc;
3 +
4 + import org.litesoft.GWT.client.view.*;
5 + import org.litesoft.bo.views.*;
6 + import org.litesoft.bo.views.caching.*;
7 + import org.litesoft.bo.views.communication.*;
8 + import org.litesoft.commonfoundation.base.*;
9 +
10 + import com.google.gwt.core.client.*;
11 + import com.google.gwt.user.client.rpc.*;
12 +
13 + public class GwtCScomm extends CScomm {
14 + private final VoServiceAsync mAsyncService = GWT.create( VoService.class );
15 +
16 + private CacheManager mCacheManager;
17 + private SecurityIssueable mSecurityIssueable;
18 +
19 + public GwtCScomm( CacheManager pCacheManager, SecurityIssueable pSecurityIssueable, AsyncCallback<AppInitializationResult> pCallback ) {
20 + mCacheManager = (pCacheManager != null) ? pCacheManager : CacheManager.NULL;
21 + mSecurityIssueable = pSecurityIssueable;
22 +
23 + ((ServiceDefTarget) mAsyncService).setServiceEntryPoint( extractEntryName( mAsyncService ) );
24 +
25 + mAsyncService.initialize( pCallback );
26 + }
27 +
28 + @Override
29 + public void requestTemporalTriggerPoll() {
30 + processRequest( "requestTemporalTriggerPoll", null, null );
31 + }
32 +
33 + @Override
34 + public void requestFunctionSimple( VOCSrequestFunctionSimple pFunctionSimple, SimpleDataProviderCallBack pCallBack ) {
35 + processRequest( "requestFunctionSimple", pFunctionSimple, pCallBack );
36 + }
37 +
38 + @Override
39 + public void requestFunctionFetchRow( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestFunctionFetchRow pFunctionFetchRow,
40 + FetchRowDataProviderCallBack<? extends IViewObject> pCallBack ) {
41 + processRequest( "requestFunctionFetchRow", pCacheInvalidCallBack, pCacheID, pFunctionFetchRow, pCallBack );
42 + }
43 +
44 + @Override
45 + public void requestFunctionFetchRows( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestFunctionFetchRows pFunctionFetchRows,
46 + FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
47 + processRequest( "requestFunctionFetchRows", pCacheInvalidCallBack, pCacheID, pFunctionFetchRows, pCallBack );
48 + }
49 +
50 + @Override
51 + public void requestRowByObjectURL( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestRowByObjectURL pRowByObjectURL,
52 + FetchRowDataProviderCallBack<? extends IViewObject> pCallBack ) {
53 + processRequest( "requestRowByObjectURL", pCacheInvalidCallBack, pCacheID, pRowByObjectURL, pCallBack );
54 + }
55 +
56 + @Override
57 + public void requestRowsByObjectURLs( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestRowsByObjectURLs pRowsByObjectURLs,
58 + FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
59 + processRequest( "requestRowsByObjectURLs", pCacheInvalidCallBack, pCacheID, pRowsByObjectURLs, pCallBack );
60 + }
61 +
62 + @Override
63 + public void requestRowsByFilters( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestRowsByFilters pRowsByFilters,
64 + FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
65 + processRequest( "requestRowsByFilters", pCacheInvalidCallBack, pCacheID, pRowsByFilters, pCallBack );
66 + }
67 +
68 + @SuppressWarnings({"unchecked"})
69 + @Override
70 + public void requestCommit( CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, VOCSrequestCommit pVOCSrequestCommit,
71 + CommitCallBack<? extends IViewObject> pCallBack ) {
72 + mAsyncService.process( handle( pCacheID, pCacheInvalidCallBack, pVOCSrequestCommit ), //
73 + new AsyncCommitCallBack( "requestCommit", (pCallBack != null) ? pCallBack : CommitCallBack.NULL ) );
74 + }
75 +
76 + @SuppressWarnings({"unchecked"})
77 + private void processRequest( final String pWho, VOCSrequestFunctionSimple pFunctionSimple, SimpleDataProviderCallBack pCallBack ) {
78 + mAsyncService.process( new CSpayload( pFunctionSimple, null ), //
79 + new AsyncSimpleDataProviderCallBack( pWho, (pCallBack != null) ? pCallBack : SimpleDataProviderCallBack.NULL ) );
80 + }
81 +
82 + @SuppressWarnings({"unchecked"})
83 + private void processRequest( final String pWho, CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, CSrequest pCSrequest,
84 + FetchRowDataProviderCallBack<? extends IViewObject> pCallBack ) {
85 + mAsyncService.process( handle( pCacheID, pCacheInvalidCallBack, pCSrequest ), //
86 + new AsyncFetchRowDataProviderCallBack( pWho, (pCallBack != null) ? pCallBack : FetchRowDataProviderCallBack.NULL ) );
87 + }
88 +
89 + @SuppressWarnings({"unchecked"})
90 + private void processRequest( final String pWho, CacheInvalidCallBack pCacheInvalidCallBack, CacheID pCacheID, CSrequest pCSrequest,
91 + FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
92 + mAsyncService.process( handle( pCacheID, pCacheInvalidCallBack, pCSrequest ), //
93 + new AsyncFetchRowsDataProviderCallBack( pWho, (pCallBack != null) ? pCallBack : FetchRowsDataProviderCallBack.NULL ) );
94 + }
95 +
96 + private CSpayload handle( CacheID pCacheID, CacheInvalidCallBack pCacheInvalidCallBack, CSrequest pCSrequest ) {
97 + return new CSpayload( pCSrequest, mCacheManager.add( pCacheID, pCacheInvalidCallBack ) ? pCacheID : null );
98 + }
99 +
100 + private static final String ASYNC_NAME_PROXY_TAIL = "_Proxy";
101 +
102 + protected String extractEntryName( Object pAsyncInstance ) {
103 + String zTypeName = pAsyncInstance.getClass().getName();
104 +
105 + if ( !zTypeName.endsWith( ASYNC_NAME_PROXY_TAIL ) ) {
106 + throw new IllegalStateException( zTypeName + " did not end with '" + ASYNC_NAME_PROXY_TAIL + "'" );
107 + }
108 + int lastDot = zTypeName.lastIndexOf( '.' );
109 + if ( lastDot == -1 ) {
110 + throw new IllegalStateException( zTypeName + " may not live in the default package" );
111 + }
112 + return zTypeName.substring( lastDot + 1, zTypeName.length() - ASYNC_NAME_PROXY_TAIL.length() );
113 + }
114 +
115 + private String makeMessage( Throwable pThrowable ) {
116 + return ClassName.simple( pThrowable ) + " " + ConstrainTo.notNull( pThrowable.getMessage() ).trim();
117 + }
118 +
119 + private abstract class OurAsyncCallback implements AsyncCallback<SCpayload> {
120 + private String mWho;
121 + private ErrorCallBack mErrorCallBack;
122 +
123 + protected OurAsyncCallback( String pWho, ErrorCallBack pErrorCallBack ) {
124 + mWho = pWho;
125 + mErrorCallBack = pErrorCallBack;
126 + }
127 +
128 + @Override
129 + public void onFailure( Throwable caught ) {
130 + TemporalTriggerManager.get().response();
131 + mErrorCallBack.error( mWho + ": " + makeMessage( caught ) );
132 + }
133 +
134 + @Override
135 + public void onSuccess( SCpayload result ) {
136 + mCacheManager.invalidate( result.getInvalidCacheIDs() );
137 + TemporalTriggerManager zManager = TemporalTriggerManager.get();
138 + zManager.response();
139 + TemporalTrigger[] zTriggers = result.getTemporalTriggers();
140 + if ( (zTriggers != null) && (zTriggers.length != 0) ) {
141 + for ( TemporalTrigger zTrigger : zTriggers ) {
142 + zManager.dispatch( zTrigger );
143 + }
144 + }
145 + SCresponse zSCresponse = result.getSCresponse();
146 + if ( zSCresponse instanceof SecuritySCresponse ) {
147 + mSecurityIssueable.handleSecurityIssue( ((SecuritySCresponse) zSCresponse).isSessionExpired() ? "Session Expired" : "General Security Problem" );
148 + return;
149 + }
150 + //noinspection ConstantConditions
151 + call( (VOSCresponse) zSCresponse );
152 + }
153 +
154 + abstract protected void call( VOSCresponse pResponse );
155 + }
156 +
157 + private class AsyncSimpleDataProviderCallBack extends OurAsyncCallback {
158 + private SimpleDataProviderCallBack mCallBack;
159 +
160 + private AsyncSimpleDataProviderCallBack( String pWho, SimpleDataProviderCallBack pCallBack ) {
161 + super( pWho, pCallBack );
162 + mCallBack = pCallBack;
163 + }
164 +
165 + @Override
166 + protected void call( VOSCresponse pResponse ) {
167 + pResponse.call( mCallBack );
168 + }
169 + }
170 +
171 + private class AsyncCommitCallBack extends OurAsyncCallback {
172 + private CommitCallBack<? extends IViewObject> mCallBack;
173 +
174 + private AsyncCommitCallBack( String pWho, CommitCallBack<? extends IViewObject> pCallBack ) {
175 + super( pWho, pCallBack );
176 + mCallBack = pCallBack;
177 + }
178 +
179 + @Override
180 + protected void call( VOSCresponse pResponse ) {
181 + pResponse.call( mCallBack );
182 + }
183 + }
184 +
185 + private class AsyncFetchRowDataProviderCallBack extends OurAsyncCallback {
186 + private FetchRowDataProviderCallBack<? extends IViewObject> mCallBack;
187 +
188 + private AsyncFetchRowDataProviderCallBack( String pWho, FetchRowDataProviderCallBack<? extends IViewObject> pCallBack ) {
189 + super( pWho, pCallBack );
190 + mCallBack = pCallBack;
191 + }
192 +
193 + @Override
194 + protected void call( VOSCresponse pResponse ) {
195 + pResponse.call( mCallBack );
196 + }
197 + }
198 +
199 + private class AsyncFetchRowsDataProviderCallBack extends OurAsyncCallback {
200 + private FetchRowsDataProviderCallBack<? extends IViewObject> mCallBack;
201 +
202 + private AsyncFetchRowsDataProviderCallBack( String pWho, FetchRowsDataProviderCallBack<? extends IViewObject> pCallBack ) {
203 + super( pWho, pCallBack );
204 + mCallBack = pCallBack;
205 + }
206 +
207 + @Override
208 + protected void call( VOSCresponse pResponse ) {
209 + pResponse.call( mCallBack );
210 + }
211 + }
212 + }