package glaze.client.handlers; import glaze.client.Response; import java.io.IOException; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ResponseHandler; public abstract class DefaultResponseHandler implements ResponseHandler<Response> { public DefaultResponseHandler() { } @Override public Response handleResponse(HttpResponse httpResponse) throws ClientProtocolException, IOException { Response response = new Response(httpResponse); if (response.isError()) { try { return onError(response); } finally { response.discardContent(); } } return onResponse(response); } abstract protected Response onResponse(Response response); abstract protected Response onError(Response response); }