Java tutorial
package org.apache.http.protocol; import java.io.IOException; import java.util.List; import org.apache.http.HttpException; import org.apache.http.HttpRequest; import org.apache.http.HttpRequestInterceptor; import org.apache.http.HttpResponse; import org.apache.http.HttpResponseInterceptor; import org.apache.http.annotation.ThreadSafe; @ThreadSafe public final class ImmutableHttpProcessor implements HttpProcessor { private final HttpRequestInterceptor[] requestInterceptors; private final HttpResponseInterceptor[] responseInterceptors; public ImmutableHttpProcessor(HttpRequestInterceptor[] httpRequestInterceptorArr, HttpResponseInterceptor[] httpResponseInterceptorArr) { if (httpRequestInterceptorArr != null) { int length = httpRequestInterceptorArr.length; this.requestInterceptors = new HttpRequestInterceptor[length]; System.arraycopy(httpRequestInterceptorArr, 0, this.requestInterceptors, 0, length); } else { this.requestInterceptors = new HttpRequestInterceptor[0]; } if (httpResponseInterceptorArr != null) { length = httpResponseInterceptorArr.length; this.responseInterceptors = new HttpResponseInterceptor[length]; System.arraycopy(httpResponseInterceptorArr, 0, this.responseInterceptors, 0, length); return; } this.responseInterceptors = new HttpResponseInterceptor[0]; } public ImmutableHttpProcessor(List<HttpRequestInterceptor> list, List<HttpResponseInterceptor> list2) { if (list != null) { this.requestInterceptors = (HttpRequestInterceptor[]) list .toArray(new HttpRequestInterceptor[list.size()]); } else { this.requestInterceptors = new HttpRequestInterceptor[0]; } if (list2 != null) { this.responseInterceptors = (HttpResponseInterceptor[]) list2 .toArray(new HttpResponseInterceptor[list2.size()]); } else { this.responseInterceptors = new HttpResponseInterceptor[0]; } } @Deprecated public ImmutableHttpProcessor(HttpRequestInterceptorList httpRequestInterceptorList, HttpResponseInterceptorList httpResponseInterceptorList) { int i; int i2 = 0; if (httpRequestInterceptorList != null) { int requestInterceptorCount = httpRequestInterceptorList.getRequestInterceptorCount(); this.requestInterceptors = new HttpRequestInterceptor[requestInterceptorCount]; for (i = 0; i < requestInterceptorCount; i++) { this.requestInterceptors[i] = httpRequestInterceptorList.getRequestInterceptor(i); } } else { this.requestInterceptors = new HttpRequestInterceptor[0]; } if (httpResponseInterceptorList != null) { i = httpResponseInterceptorList.getResponseInterceptorCount(); this.responseInterceptors = new HttpResponseInterceptor[i]; while (i2 < i) { this.responseInterceptors[i2] = httpResponseInterceptorList.getResponseInterceptor(i2); i2++; } return; } this.responseInterceptors = new HttpResponseInterceptor[0]; } public ImmutableHttpProcessor(HttpRequestInterceptor... httpRequestInterceptorArr) { this(httpRequestInterceptorArr, null); } public ImmutableHttpProcessor(HttpResponseInterceptor... httpResponseInterceptorArr) { this(null, httpResponseInterceptorArr); } public void process(HttpRequest httpRequest, HttpContext httpContext) throws IOException, HttpException { for (HttpRequestInterceptor process : this.requestInterceptors) { process.process(httpRequest, httpContext); } } public void process(HttpResponse httpResponse, HttpContext httpContext) throws IOException, HttpException { for (HttpResponseInterceptor process : this.responseInterceptors) { process.process(httpResponse, httpContext); } } }