From 930fbf58458e8c142468a6ba608f453a4975b26e Mon Sep 17 00:00:00 2001 From: Jianghao Lu Date: Fri, 26 Aug 2016 16:20:17 -0700 Subject: [PATCH] Let original paging async method return List --- .../com/microsoft/azure/AzureServiceCall.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/azure-client-runtime/src/main/java/com/microsoft/azure/AzureServiceCall.java b/azure-client-runtime/src/main/java/com/microsoft/azure/AzureServiceCall.java index d60604815046e..2995b04a87018 100644 --- a/azure-client-runtime/src/main/java/com/microsoft/azure/AzureServiceCall.java +++ b/azure-client-runtime/src/main/java/com/microsoft/azure/AzureServiceCall.java @@ -10,6 +10,8 @@ import com.microsoft.rest.ServiceCall; import com.microsoft.rest.ServiceResponse; +import java.util.List; + import rx.Observable; import rx.Subscriber; import rx.functions.Func1; @@ -31,13 +33,12 @@ private AzureServiceCall() { * @param first the observable to the first page * @param next the observable to poll subsequent pages * @param callback the client-side callback - * @param the Page type - * @param the element type + * @param the element type * @return the future based ServiceCall */ - public static , V> ServiceCall create(Observable> first, final Func1>> next, final ListOperationCallback callback) { - final AzureServiceCall serviceCall = new AzureServiceCall<>(); - final PagingSubscriber subscriber = new PagingSubscriber<>(serviceCall, next, callback); + public static ServiceCall> create(Observable>> first, final Func1>>> next, final ListOperationCallback callback) { + final AzureServiceCall> serviceCall = new AzureServiceCall<>(); + final PagingSubscriber subscriber = new PagingSubscriber<>(serviceCall, next, callback); serviceCall.setSubscription(first .single() .subscribe(subscriber)); @@ -47,16 +48,15 @@ public static , V> ServiceCall create(Observable the Page type - * @param the element type + * @param the element type */ - private static class PagingSubscriber, V> extends Subscriber> { - private AzureServiceCall serviceCall; - private Func1>> next; - private ListOperationCallback callback; - private ServiceResponse lastResponse; + private static class PagingSubscriber extends Subscriber>> { + private AzureServiceCall> serviceCall; + private Func1>>> next; + private ListOperationCallback callback; + private ServiceResponse> lastResponse; - PagingSubscriber(final AzureServiceCall serviceCall, final Func1>> next, final ListOperationCallback callback) { + PagingSubscriber(final AzureServiceCall> serviceCall, final Func1>>> next, final ListOperationCallback callback) { this.serviceCall = serviceCall; this.next = next; this.callback = callback; @@ -76,7 +76,7 @@ public void onError(Throwable e) { } @Override - public void onNext(ServiceResponse serviceResponse) { + public void onNext(ServiceResponse> serviceResponse) { lastResponse = serviceResponse; ListOperationCallback.PagingBehavior behavior = ListOperationCallback.PagingBehavior.CONTINUE; if (callback != null) { @@ -86,7 +86,7 @@ public void onNext(ServiceResponse serviceResponse) { } } if (behavior == ListOperationCallback.PagingBehavior.STOP || serviceResponse.getBody().getNextPageLink() == null) { - serviceCall.set(lastResponse); + serviceCall.set(new ServiceResponse<>(lastResponse.getBody().getItems(), lastResponse.getResponse())); } else { serviceCall.setSubscription(next.call(serviceResponse.getBody().getNextPageLink()).single().subscribe(this)); }