class HurlStack extends AbstractHttpStack {

    void setConnectionParametersForRequest(HttpURLConnection connection,
                                           Request<?> request) throws IOException {
        switch (request.getMethod()) {
            case Method.GET:
                break;
            case Method.DELETE:
                connection.setRequestMethod("DELETE");
                break;
            case Method.POST:
                connection.setRequestMethod("POST");
                addBodyIfExists(connection, request);
                break;
            case Method.PUT:
                connection.setRequestMethod("PUT");
                addBodyIfExists(connection, request);
                break;
            case Method.HEAD:
                connection.setRequestMethod("HEAD");
                break;
            case Method.OPTIONS:
                connection.setRequestMethod("OPTIONS");
                break;
            case Method.TRACE:
                connection.setRequestMethod("TRACE");
                break;
            case Method.PATCH:
                connection.setRequestMethod("PATCH");
                addBodyIfExists(connection, request);
                break;
            default:
                connection.setRequestMethod(request.getMethod());
                addBodyIfExists(connection, request);
                break;
        }
    }

    public  HurlStack();
    public  HurlStack(UrlRewriter urlRewriter);
    public  HurlStack(UrlRewriter urlRewriter, SSLSocketFactory sslSocketFactory);

}