package org.webpieces.httpclient.impl; import java.util.concurrent.CompletableFuture; import org.webpieces.httpclient.api.HttpResponseListener; import org.webpieces.httpparser.api.dto.HttpChunk; import org.webpieces.httpparser.api.dto.HttpResponse; public class CompletableListener implements HttpResponseListener { private CompletableFuture<HttpResponse> future; public CompletableListener(CompletableFuture<HttpResponse> future) { this.future = future; } @Override public void incomingResponse(HttpResponse resp, boolean isComplete) { if(!isComplete) { future.completeExceptionally(new IllegalStateException("You need to call " + "sendRequest(HttpRequest req, ResponseListener l) because this is a " + "chunked download response and could potentially blow out your memory")); } future.complete(resp); } @Override public void incomingChunk(HttpChunk chunk, boolean isLastChunk) { } @Override public void failure(Throwable e) { future.completeExceptionally(e); } }