package com.jdroid.java.http.okhttp; import com.jdroid.java.collections.Lists; import com.jdroid.java.http.HttpService; import com.jdroid.java.http.HttpServiceFactory; import com.jdroid.java.http.HttpServiceProcessor; import com.jdroid.java.http.MultipartHttpService; import com.jdroid.java.http.Server; import com.jdroid.java.http.okhttp.delete.OkDeleteHttpService; import com.jdroid.java.http.okhttp.get.OkGetHttpService; import com.jdroid.java.http.okhttp.patch.OkPatchHttpService; import com.jdroid.java.http.okhttp.post.OkPostHttpService; import com.jdroid.java.http.okhttp.put.OkPutHttpService; import com.jdroid.java.http.post.BodyEnclosingHttpService; import java.util.List; import okhttp3.Interceptor; public class OkHttpServiceFactory implements HttpServiceFactory { private List<Interceptor> networkInterceptors = Lists.newArrayList(); @Override public HttpService newGetService(Server server, List<Object> urlSegments, List<HttpServiceProcessor> httpServiceProcessors) { OkGetHttpService service = new OkGetHttpService(server, urlSegments, httpServiceProcessors); service.setNetworkInterceptors(networkInterceptors); return service; } @Override public BodyEnclosingHttpService newPostService(Server server, List<Object> urlSegments, List<HttpServiceProcessor> httpServiceProcessors) { OkPostHttpService service = new OkPostHttpService(server, urlSegments, httpServiceProcessors); service.setNetworkInterceptors(networkInterceptors); return service; } @Override public MultipartHttpService newMultipartPostService(Server server, List<Object> urlSegments, List<HttpServiceProcessor> httpServiceProcessors) { throw new UnsupportedOperationException(); } @Override public MultipartHttpService newMultipartPutService(Server server, List<Object> urlSegments, List<HttpServiceProcessor> httpServiceProcessors) { throw new UnsupportedOperationException(); } @Override public BodyEnclosingHttpService newFormPostService(Server server, List<Object> urlSegments, List<HttpServiceProcessor> httpServiceProcessors) { throw new UnsupportedOperationException(); } @Override public BodyEnclosingHttpService newPutService(Server server, List<Object> urlSegments, List<HttpServiceProcessor> httpServiceProcessors) { OkPutHttpService service = new OkPutHttpService(server, urlSegments, httpServiceProcessors); service.setNetworkInterceptors(networkInterceptors); return service; } @Override public BodyEnclosingHttpService newPatchService(Server baseURL, List<Object> urlSegments, List<HttpServiceProcessor> httpServiceProcessors) { OkPatchHttpService service = new OkPatchHttpService(baseURL, urlSegments, httpServiceProcessors); service.setNetworkInterceptors(networkInterceptors); return service; } @Override public HttpService newDeleteService(Server server, List<Object> urlSegments, List<HttpServiceProcessor> httpServiceProcessors) { OkHttpService service = new OkDeleteHttpService(server, urlSegments, httpServiceProcessors); service.setNetworkInterceptors(networkInterceptors); return service; } public void setNetworkInterceptors(List<Interceptor> networkInterceptors) { this.networkInterceptors = networkInterceptors; } public void addNetworkInterceptor(Interceptor networkInterceptor) { this.networkInterceptors.add(networkInterceptor); } }