blob: d7e52ace240ea05821c20daa906cdfcf46d91969 [file] [log] [blame]
package org.bouncycastle.est;
import java.net.URL;
import org.bouncycastle.util.Arrays;
/**
* Builder for basic EST requests
*/
public class ESTRequestBuilder
{
private final String method;
private URL url;
private HttpUtil.Headers headers;
ESTHijacker hijacker;
ESTSourceConnectionListener listener;
ESTClient client;
private byte[] data;
public ESTRequestBuilder(ESTRequest request)
{
this.method = request.method;
this.url = request.url;
this.listener = request.listener;
this.data = request.data;
this.hijacker = request.hijacker;
this.headers = (HttpUtil.Headers)request.headers.clone();
this.client = request.getClient();
}
public ESTRequestBuilder(String method, URL url)
{
this.method = method;
this.url = url;
this.headers = new HttpUtil.Headers();
}
public ESTRequestBuilder withConnectionListener(ESTSourceConnectionListener listener)
{
this.listener = listener;
return this;
}
public ESTRequestBuilder withHijacker(ESTHijacker hijacker)
{
this.hijacker = hijacker;
return this;
}
public ESTRequestBuilder withURL(URL url)
{
this.url = url;
return this;
}
public ESTRequestBuilder withData(byte[] data)
{
this.data = Arrays.clone(data);
return this;
}
public ESTRequestBuilder addHeader(String key, String value)
{
headers.add(key, value);
return this;
}
public ESTRequestBuilder setHeader(String key, String value)
{
headers.set(key, value);
return this;
}
public ESTRequestBuilder withClient(ESTClient client)
{
this.client = client;
return this;
}
public ESTRequest build()
{
return new ESTRequest(method, url, data, hijacker, listener, headers, client);
}
}