Skip to content

Commit 1373084

Browse files
authored
refactor: implement CharSequence methods as interface defaults
1 parent df4ca75 commit 1373084

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

vertx-web-client/src/main/java/io/vertx/ext/web/client/HttpRequest.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,9 @@ public interface HttpRequest<T> {
193193
*/
194194
@Fluent
195195
@GenIgnore(GenIgnore.PERMITTED_TYPE)
196-
HttpRequest<T> putHeader(CharSequence name, CharSequence value);
196+
default HttpRequest<T> putHeader(CharSequence name, CharSequence value) {
197+
return putHeader(name.toString(), value.toString());
198+
}
197199

198200
/**
199201
* Configure the request to set a new HTTP header with multiple values.
@@ -206,6 +208,25 @@ public interface HttpRequest<T> {
206208
@GenIgnore(GenIgnore.PERMITTED_TYPE)
207209
HttpRequest<T> putHeader(String name, Iterable<String> value);
208210

211+
/**
212+
* Configure the request to set a new HTTP header with multiple values using CharSequence.
213+
* <p>
214+
* This is an overload of {@link #putHeader(String, Iterable)} that accepts CharSequence parameters.
215+
*
216+
* @param name the header name
217+
* @param value the header value
218+
* @return a reference to this, so the API can be used fluently
219+
*/
220+
@Fluent
221+
@GenIgnore(GenIgnore.PERMITTED_TYPE)
222+
default HttpRequest<T> putHeader(CharSequence name, Iterable<CharSequence> value) {
223+
List<String> values = new ArrayList<>();
224+
for (CharSequence cs : value) {
225+
values.add(cs.toString());
226+
}
227+
return putHeader(name.toString(), values);
228+
}
229+
209230
/**
210231
* @return The HTTP headers
211232
*/

vertx-web-client/src/main/java/io/vertx/ext/web/client/impl/HttpRequestImpl.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -231,12 +231,6 @@ public HttpRequest<T> putHeader(String name, String value) {
231231
return this;
232232
}
233233

234-
@Override
235-
public HttpRequest<T> putHeader(CharSequence name, CharSequence value) {
236-
headers().set(name, value);
237-
return this;
238-
}
239-
240234
@Override
241235
public HttpRequest<T> putHeader(String name, Iterable<String> value) {
242236
headers().set(name, value);

vertx-web-client/src/test/java/io/vertx/ext/web/client/tests/WebClientTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,7 +1255,7 @@ public void testFormUrlEncodedMultipleHeaders() throws Exception {
12551255
startServer();
12561256
MultiMap form = MultiMap.caseInsensitiveMultiMap();
12571257
HttpRequest<Buffer> builder = webClient.post("/somepath");
1258-
builder.putHeader("bla", Arrays.asList("1", "2"));
1258+
builder.putHeader((CharSequence) "bla", Arrays.asList("1", "2"));
12591259
builder.sendForm(form).onComplete(onSuccess(resp -> complete()));
12601260
await();
12611261
}
@@ -1485,7 +1485,7 @@ public void testMultipartFormMultipleHeaders() throws Exception {
14851485
startServer();
14861486
HttpRequest<Buffer> builder = webClient.post("somepath");
14871487
MultipartForm form = MultipartForm.create();
1488-
builder.putHeader("bla", Arrays.asList("1", "2"));
1488+
builder.putHeader((CharSequence) "bla", Arrays.asList("1", "2"));
14891489
builder.sendMultipartForm(form).onComplete(onSuccess(resp -> complete()));
14901490
await();
14911491
}
@@ -2161,7 +2161,7 @@ public void testMultipleHeaders() throws Exception {
21612161
testRequest(
21622162
client -> client
21632163
.get("somepath")
2164-
.putHeader("bla", Arrays.asList("1", "2")),
2164+
.putHeader((CharSequence) "bla", Arrays.asList("1", "2")),
21652165
req -> assertEquals(Arrays.asList("1", "2"), req.headers().getAll("bla")));
21662166
}
21672167

0 commit comments

Comments
 (0)