Skip to content

Instantly share code, notes, and snippets.

@afeinberg
Created September 18, 2009 05:34
Show Gist options
  • Save afeinberg/188897 to your computer and use it in GitHub Desktop.
Save afeinberg/188897 to your computer and use it in GitHub Desktop.
public class DelayedHttpRequest implements Delayed, HttpRequest {
private final HttpRequest request;
protected long delay; // in milliseconds
public DelayedHttpRequest(HttpRequest request) {
this.request = request;
}
public void setDelay(Long delay) {
this.delay = delay;
}
@Override
public long getDelay(TimeUnit timeUnit) {
switch (timeUnit) {
case MILLISECONDS:
return delay;
case MICROSECONDS:
return delay * 100;
case SECONDS:
return delay / 100;
case NANOSECONDS:
return delay * 1000;
default:
throw new IllegalStateException();
}
}
@Override
public int compareTo(Delayed delayed) {
if (delay > delayed.getDelay(TimeUnit.MILLISECONDS))
return 1;
else if (delay < delayed.getDelay(TimeUnit.MILLISECONDS))
return -1;
else
return 0;
}
@Override
public RequestLine getRequestLine() {
return request.getRequestLine();
}
@Override
public ProtocolVersion getProtocolVersion() {
return request.getProtocolVersion();
}
@Override
public boolean containsHeader(String s) {
return request.containsHeader(s);
}
@Override
public Header[] getHeaders(String s) {
return request.getHeaders(s);
}
@Override
public Header getFirstHeader(String s) {
return request.getFirstHeader(s);
}
@Override
public Header getLastHeader(String s) {
return request.getLastHeader(s);
}
@Override
public Header[] getAllHeaders() {
return request.getAllHeaders();
}
@Override
public void addHeader(Header header) {
request.addHeader(header);
}
@Override
public void addHeader(String s, String s1) {
request.addHeader(s, s1);
}
@Override
public void setHeader(Header header) {
request.setHeader(header);
}
@Override
public void setHeader(String s, String s1) {
request.setHeader(s, s1);
}
@Override
public void setHeaders(Header[] headers) {
request.setHeaders(headers);
}
@Override
public void removeHeader(Header header) {
request.removeHeader(header);
}
@Override
public void removeHeaders(String s) {
request.removeHeaders(s);
}
@Override
public HeaderIterator headerIterator() {
return request.headerIterator();
}
@Override
public HeaderIterator headerIterator(String s) {
return request.headerIterator(s);
}
@Override
public HttpParams getParams() {
return request.getParams();
}
@Override
public void setParams(HttpParams httpParams) {
request.setParams(httpParams);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment