1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.client5.http.async.methods;
29
30 import java.util.Arrays;
31
32 import org.apache.hc.core5.http.ContentType;
33 import org.apache.hc.core5.http.Header;
34 import org.apache.hc.core5.http.ProtocolVersion;
35 import org.apache.hc.core5.http.support.AbstractResponseBuilder;
36 import org.apache.hc.core5.util.Args;
37
38
39
40
41
42
43 public class SimpleResponseBuilder extends AbstractResponseBuilder<SimpleHttpResponse> {
44
45 private SimpleBody body;
46
47 SimpleResponseBuilder(final int status) {
48 super(status);
49 }
50
51 public static SimpleResponseBuilder create(final int status) {
52 Args.checkRange(status, 100, 599, "HTTP status code");
53 return new SimpleResponseBuilder(status);
54 }
55
56 public static SimpleResponseBuilder copy(final SimpleHttpResponse response) {
57 Args.notNull(response, "HTTP response");
58 final SimpleResponseBuilder builder = new SimpleResponseBuilder(response.getCode());
59 builder.digest(response);
60 return builder;
61 }
62
63 protected void digest(final SimpleHttpResponse response) {
64 super.digest(response);
65 setBody(response.getBody());
66 }
67
68 @Override
69 public SimpleResponseBuilder setVersion(final ProtocolVersion version) {
70 super.setVersion(version);
71 return this;
72 }
73
74 @Override
75 public SimpleResponseBuilder setHeaders(final Header... headers) {
76 super.setHeaders(headers);
77 return this;
78 }
79
80 @Override
81 public SimpleResponseBuilder addHeader(final Header header) {
82 super.addHeader(header);
83 return this;
84 }
85
86 @Override
87 public SimpleResponseBuilder addHeader(final String name, final String value) {
88 super.addHeader(name, value);
89 return this;
90 }
91
92 @Override
93 public SimpleResponseBuilder removeHeader(final Header header) {
94 super.removeHeader(header);
95 return this;
96 }
97
98 @Override
99 public SimpleResponseBuilder removeHeaders(final String name) {
100 super.removeHeaders(name);
101 return this;
102 }
103
104 @Override
105 public SimpleResponseBuilder setHeader(final Header header) {
106 super.setHeader(header);
107 return this;
108 }
109
110 @Override
111 public SimpleResponseBuilder setHeader(final String name, final String value) {
112 super.setHeader(name, value);
113 return this;
114 }
115
116 public SimpleBody getBody() {
117 return body;
118 }
119
120 public SimpleResponseBuilder setBody(final SimpleBody body) {
121 this.body = body;
122 return this;
123 }
124
125 public SimpleResponseBuilder setBody(final String content, final ContentType contentType) {
126 this.body = SimpleBody.create(content, contentType);
127 return this;
128 }
129
130 public SimpleResponseBuilder setBody(final byte[] content, final ContentType contentType) {
131 this.body = SimpleBody.create(content, contentType);
132 return this;
133 }
134
135 @Override
136 public SimpleHttpResponse build() {
137 final SimpleHttpResponse result = new SimpleHttpResponse(getStatus());
138 result.setVersion(getVersion());
139 result.setHeaders(getHeaders());
140 result.setBody(body);
141 return result;
142 }
143
144 @Override
145 public String toString() {
146 final StringBuilder builder = new StringBuilder();
147 builder.append("SimpleResponseBuilder [status=");
148 builder.append(getStatus());
149 builder.append(", headerGroup=");
150 builder.append(Arrays.toString(getHeaders()));
151 builder.append(", body=");
152 builder.append(body);
153 builder.append("]");
154 return builder.toString();
155 }
156
157 }