View Javadoc

1   package com.atlassian.httpclient.apache.httpcomponents;
2   
3   import com.atlassian.httpclient.api.Common;
4   
5   import java.io.InputStream;
6   import java.nio.charset.Charset;
7   import java.util.Map;
8   
9   public class CommonBuilder<T> implements Common<CommonBuilder<T>> {
10      private final Headers.Builder headersBuilder = new Headers.Builder();
11      private InputStream entityStream;
12  
13      @Override
14      public CommonBuilder<T> setHeader(final String name, final String value) {
15          headersBuilder.setHeader(name, value);
16          return this;
17      }
18  
19      @Override
20      public CommonBuilder<T> setHeaders(final Map<String, String> headers) {
21          headersBuilder.setHeaders(headers);
22          return this;
23      }
24  
25      @Override
26      public CommonBuilder<T> setEntity(final String entity) {
27          if (entity != null) {
28              final String charset = "UTF-8";
29              byte[] bytes = entity.getBytes(Charset.forName(charset));
30              setEntityStream(new EntityByteArrayInputStream(bytes), charset);
31          } else {
32              setEntityStream(null, null);
33          }
34          return this;
35      }
36  
37      @Override
38      public CommonBuilder<T> setEntityStream(final InputStream entityStream) {
39          this.entityStream = entityStream;
40          return this;
41      }
42  
43      @Override
44      public CommonBuilder<T> setContentCharset(final String contentCharset) {
45          headersBuilder.setContentCharset(contentCharset);
46          return this;
47      }
48  
49      @Override
50      public CommonBuilder<T> setContentType(final String contentType) {
51          headersBuilder.setContentType(contentType);
52          return this;
53      }
54  
55      @Override
56      public CommonBuilder<T> setEntityStream(final InputStream entityStream, final String charset) {
57          setEntityStream(entityStream);
58          headersBuilder.setContentCharset(charset);
59          return this;
60      }
61  
62      public InputStream getEntityStream() {
63          return entityStream;
64      }
65  
66      public Headers getHeaders() {
67          return headersBuilder.build();
68      }
69  
70  }