Changeset 2190
- Timestamp:
- 09/03/12 10:41:21 (12 years ago)
- Location:
- SRUClient/trunk/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
SRUClient/trunk/src/main/java/eu/clarin/sru/client/SRUCallback.java
r2183 r2190 25 25 * </p> 26 26 * 27 * @param <T> 28 * a response type 27 * @param <V> 28 * the request type 29 * @param <S> 30 * the response type 29 31 * 30 32 * @see SRUThreadedClient#explain(SRUExplainRequest, SRUCallback) … … 32 34 * @see SRUThreadedClient#searchRetrieve(SRUSearchRetrieveRequest, SRUCallback) 33 35 */ 34 public interface SRUCallback<T extends SRUAbstractResponse<?>> { 36 public interface SRUCallback<V extends SRUAbstractRequest, 37 S extends SRUAbstractResponse<V>> { 35 38 36 39 /** … … 38 41 * 39 42 * @param response 40 * the response to the r quest43 * the response to the request 41 44 */ 42 public void done(T response); 45 public void onSuccess(S response); 46 47 48 /** 49 * Invoked when the request yielded an error 50 * 51 * @param request 52 * the original request 53 * @param error 54 * the error 55 */ 56 public void onError(V request, SRUClientException error); 43 57 44 58 } // interface SRUCallback -
SRUClient/trunk/src/main/java/eu/clarin/sru/client/SRUThreadedClient.java
r2183 r2190 180 180 */ 181 181 public void explain(final SRUExplainRequest request, 182 final SRUCallback<SRUExplainRe sponse> callback)182 final SRUCallback<SRUExplainRequest, SRUExplainResponse> callback) 183 183 throws SRUClientException { 184 184 if (request == null) { … … 248 248 */ 249 249 public void scan(final SRUScanRequest request, 250 final SRUCallback<SRUScanRe sponse> callback)250 final SRUCallback<SRUScanRequest, SRUScanResponse> callback) 251 251 throws SRUClientException { 252 252 if (request == null) { … … 316 316 */ 317 317 public void searchRetrieve(final SRUSearchRetrieveRequest request, 318 final SRUCallback<SRUSearchRetrieveRe sponse> callback)318 final SRUCallback<SRUSearchRetrieveRequest, SRUSearchRetrieveResponse> callback) 319 319 throws SRUClientException { 320 320 if (request == null) { … … 410 410 411 411 private abstract class AsyncRequest<V extends SRUAbstractRequest, 412 S extends SRUAbstractResponse< ?>>412 S extends SRUAbstractResponse<V>> 413 413 implements Runnable { 414 414 protected final V request; 415 private final SRUCallback< S> callback;416 417 418 public AsyncRequest(V request, SRUCallback< S> callback) {415 private final SRUCallback<V, S> callback; 416 417 418 public AsyncRequest(V request, SRUCallback<V, S> callback) { 419 419 this.callback = callback; 420 420 this.request = request; … … 425 425 public void run() { 426 426 try { 427 S response = doRequest(client.get()); 428 callback.done(response); 429 } catch (SRUClientException e) { 430 logger.debug("exception", e); 427 try { 428 final S response = doRequest(client.get()); 429 callback.onSuccess(response); 430 } catch (SRUClientException e) { 431 callback.onError(request, e); 432 } 431 433 } catch (Throwable t) { 432 logger.error("something went wrong", t); 433 } 434 } 435 436 protected abstract S doRequest(SRUClient client) throws SRUClientException; 434 logger.error("error while performing async callback", t); 435 } 436 } 437 438 439 protected abstract S doRequest(SRUClient client) 440 throws SRUClientException; 437 441 } 438 442 -
SRUClient/trunk/src/test/java/eu/clarin/sru/client/TestThreadedClientCallback.java
r2183 r2190 8 8 import eu.clarin.sru.fcs.ClarinFederatedContentSearchRecordData; 9 9 import eu.clarin.sru.fcs.ClarinFederatedContentSearchRecordParser; 10 10 11 11 12 public class TestThreadedClientCallback { … … 38 39 logger.info("submitting 'explain' request ..."); 39 40 SRUExplainRequest request1 = new SRUExplainRequest(args[0]); 40 client.explain(request1, new SRUCallback<SRUExplainRe sponse>() {41 @Override 42 public void done(SRUExplainResponse response) {41 client.explain(request1, new SRUCallback<SRUExplainRequest, SRUExplainResponse>() { 42 @Override 43 public void onSuccess(SRUExplainResponse response) { 43 44 printExplainResponse(response); 45 latch.countDown(); 46 } 47 48 @Override 49 public void onError(SRUExplainRequest request, 50 SRUClientException error) { 51 logger.error("error while performing request", error); 44 52 latch.countDown(); 45 53 } … … 49 57 SRUScanRequest request2 = new SRUScanRequest(args[0]); 50 58 request2.setScanClause("fcs.resource"); 51 client.scan(request2, new SRUCallback<SRUScanRe sponse>() {52 @Override 53 public void done(SRUScanResponse response) {59 client.scan(request2, new SRUCallback<SRUScanRequest, SRUScanResponse>() { 60 @Override 61 public void onSuccess(SRUScanResponse response) { 54 62 printScanResponse(response); 63 latch.countDown(); 64 } 65 66 @Override 67 public void onError(SRUScanRequest request, 68 SRUClientException error) { 69 logger.error("error while performing request", error); 55 70 latch.countDown(); 56 71 } … … 63 78 request3.setRecordSchema(ClarinFederatedContentSearchRecordData.RECORD_SCHEMA); 64 79 request3.setMaximumRecords(5); 65 client.searchRetrieve(request3, new SRUCallback<SRUSearchRetrieveRe sponse>() {66 @Override 67 public void done(SRUSearchRetrieveResponse response) {80 client.searchRetrieve(request3, new SRUCallback<SRUSearchRetrieveRequest, SRUSearchRetrieveResponse>() { 81 @Override 82 public void onSuccess(SRUSearchRetrieveResponse response) { 68 83 printSearchResponse(response); 84 latch.countDown(); 85 } 86 87 @Override 88 public void onError(SRUSearchRetrieveRequest request, 89 SRUClientException error) { 90 logger.error("error while performing request", error); 69 91 latch.countDown(); 70 92 }
Note: See TracChangeset
for help on using the changeset viewer.