View Javadoc

1   package com.atlassian.httpclient.api;
2   
3   
4   import com.google.common.collect.ForwardingObject;
5   
6   import java.net.URI;
7   import java.util.regex.Pattern;
8   
9   /**
10   * An HTTP Client which forwards all its method calls to another HTTP Client. Subclasses should override one or more
11   * methods to modify the behavior of the backing HTTP Client as desired per the
12   * <a href="http://en.wikipedia.org/wiki/Decorator_pattern">decorator pattern</a>.
13   */
14  public abstract class ForwardingHttpClient extends ForwardingObject implements HttpClient {
15      /**
16       * Constructor for use by subclasses.
17       */
18      protected ForwardingHttpClient() {
19      }
20  
21      @Override
22      protected abstract HttpClient delegate();
23  
24      @Override
25      public Request.Builder newRequest() {
26          return delegate().newRequest();
27      }
28  
29      @Override
30      public Request.Builder newRequest(URI uri) {
31          return delegate().newRequest(uri);
32      }
33  
34      @Override
35      public Request.Builder newRequest(String uri) {
36          return delegate().newRequest(uri);
37      }
38  
39      @Override
40      public Request.Builder newRequest(URI uri, String contentType, String entity) {
41          return delegate().newRequest(uri, contentType, entity);
42      }
43  
44      @Override
45      public Request.Builder newRequest(String uri, String contentType, String entity) {
46          return delegate().newRequest(uri, contentType, entity);
47      }
48  
49      @Override
50      public void flushCacheByUriPattern(Pattern uriPattern) {
51          delegate().flushCacheByUriPattern(uriPattern);
52      }
53  }