Skip to content

Commit fbb72ef

Browse files
committed
Polish
1 parent ea10ee5 commit fbb72ef

File tree

4 files changed

+47
-46
lines changed

4 files changed

+47
-46
lines changed

spring-web/src/main/java/org/springframework/web/util/DefaultUriBuilderFactory.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -328,8 +328,8 @@ public DefaultUriBuilder queryParam(String name, Object... values) {
328328
}
329329

330330
@Override
331-
public DefaultUriBuilder queryParams(String name, @Nullable Collection<?> values) {
332-
this.uriComponentsBuilder.queryParams(name, values);
331+
public DefaultUriBuilder queryParam(String name, @Nullable Collection<?> values) {
332+
this.uriComponentsBuilder.queryParam(name, values);
333333
return this;
334334
}
335335

@@ -340,8 +340,8 @@ public DefaultUriBuilder replaceQueryParam(String name, Object... values) {
340340
}
341341

342342
@Override
343-
public DefaultUriBuilder replaceQueryParams(String name, @Nullable Collection<?> values) {
344-
this.uriComponentsBuilder.replaceQueryParams(name, values);
343+
public DefaultUriBuilder replaceQueryParam(String name, @Nullable Collection<?> values) {
344+
this.uriComponentsBuilder.replaceQueryParam(name, values);
345345
return this;
346346
}
347347

spring-web/src/main/java/org/springframework/web/util/UriBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public interface UriBuilder {
125125
* only (i.e. {@code ?foo} instead of {@code ?foo=bar}.
126126
* @param name the query parameter name
127127
* @param values the query parameter values
128-
* @see #queryParams(String, Collection)
128+
* @see #queryParam(String, Collection)
129129
*/
130130
UriBuilder queryParam(String name, Object... values);
131131

@@ -139,7 +139,7 @@ public interface UriBuilder {
139139
* @since 5.2.0
140140
* @see #queryParam(String, Object...)
141141
*/
142-
UriBuilder queryParams(String name, @Nullable Collection<?> values);
142+
UriBuilder queryParam(String name, @Nullable Collection<?> values);
143143

144144
/**
145145
* Add the given query parameters.
@@ -152,7 +152,7 @@ public interface UriBuilder {
152152
* the same parameter. If no values are given, the query parameter is removed.
153153
* @param name the query parameter name
154154
* @param values the query parameter values
155-
* @see #replaceQueryParams(String, Collection)
155+
* @see #replaceQueryParam(String, Collection)
156156
*/
157157
UriBuilder replaceQueryParam(String name, Object... values);
158158

@@ -164,7 +164,7 @@ public interface UriBuilder {
164164
* @since 5.2.0
165165
* @see #replaceQueryParam(String, Object...)
166166
*/
167-
UriBuilder replaceQueryParams(String name, @Nullable Collection<?> values);
167+
UriBuilder replaceQueryParam(String name, @Nullable Collection<?> values);
168168

169169
/**
170170
* Set the query parameter values overriding all existing query values.

spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@
2020
import java.nio.charset.Charset;
2121
import java.nio.charset.StandardCharsets;
2222
import java.util.ArrayList;
23-
import java.util.Arrays;
2423
import java.util.Collection;
25-
import java.util.Collections;
2624
import java.util.HashMap;
2725
import java.util.LinkedList;
2826
import java.util.List;
@@ -34,7 +32,6 @@
3432
import org.springframework.http.HttpRequest;
3533
import org.springframework.lang.Nullable;
3634
import org.springframework.util.Assert;
37-
import org.springframework.util.CollectionUtils;
3835
import org.springframework.util.LinkedMultiValueMap;
3936
import org.springframework.util.MultiValueMap;
4037
import org.springframework.util.ObjectUtils;
@@ -104,6 +101,8 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
104101

105102
private static final Pattern FORWARDED_PROTO_PATTERN = Pattern.compile("proto=\"?([^;,\"]+)\"?");
106103

104+
private static final Object[] EMPTY_VALUES = new Object[0];
105+
107106

108107
@Nullable
109108
private String scheme;
@@ -700,11 +699,22 @@ public UriComponentsBuilder replaceQuery(@Nullable String query) {
700699
* @param name the query parameter name
701700
* @param values the query parameter values
702701
* @return this UriComponentsBuilder
703-
* @see #queryParams(String, Collection)
702+
* @see #queryParam(String, Collection)
704703
*/
705704
@Override
706705
public UriComponentsBuilder queryParam(String name, Object... values) {
707-
return queryParams(name, (!ObjectUtils.isEmpty(values) ? Arrays.asList(values) : Collections.emptyList()));
706+
Assert.notNull(name, "Name must not be null");
707+
if (!ObjectUtils.isEmpty(values)) {
708+
for (Object value : values) {
709+
String valueAsString = (value != null ? value.toString() : null);
710+
this.queryParams.add(name, valueAsString);
711+
}
712+
}
713+
else {
714+
this.queryParams.add(name, null);
715+
}
716+
resetSchemeSpecificPart();
717+
return this;
708718
}
709719

710720
/**
@@ -719,19 +729,8 @@ public UriComponentsBuilder queryParam(String name, Object... values) {
719729
* @see #queryParam(String, Object...)
720730
*/
721731
@Override
722-
public UriComponentsBuilder queryParams(String name, @Nullable Collection<?> values) {
723-
Assert.notNull(name, "Name must not be null");
724-
if (!CollectionUtils.isEmpty(values)) {
725-
for (Object value : values) {
726-
String valueAsString = (value != null ? value.toString() : null);
727-
this.queryParams.add(name, valueAsString);
728-
}
729-
}
730-
else {
731-
this.queryParams.add(name, null);
732-
}
733-
resetSchemeSpecificPart();
734-
return this;
732+
public UriComponentsBuilder queryParam(String name, @Nullable Collection<?> values) {
733+
return queryParam(name, values != null ? values.toArray() : EMPTY_VALUES);
735734
}
736735

737736
/**
@@ -754,11 +753,17 @@ public UriComponentsBuilder queryParams(@Nullable MultiValueMap<String, String>
754753
* @param name the query parameter name
755754
* @param values the query parameter values
756755
* @return this UriComponentsBuilder
757-
* @see #replaceQueryParams(String, Collection)
756+
* @see #replaceQueryParam(String, Collection)
758757
*/
759758
@Override
760759
public UriComponentsBuilder replaceQueryParam(String name, Object... values) {
761-
return replaceQueryParams(name, (!ObjectUtils.isEmpty(values) ? Arrays.asList(values) : Collections.emptyList()));
760+
Assert.notNull(name, "Name must not be null");
761+
this.queryParams.remove(name);
762+
if (!ObjectUtils.isEmpty(values)) {
763+
queryParam(name, values);
764+
}
765+
resetSchemeSpecificPart();
766+
return this;
762767
}
763768

764769
/**
@@ -771,14 +776,8 @@ public UriComponentsBuilder replaceQueryParam(String name, Object... values) {
771776
* @since 5.2.0
772777
*/
773778
@Override
774-
public UriComponentsBuilder replaceQueryParams(String name, @Nullable Collection<?> values) {
775-
Assert.notNull(name, "Name must not be null");
776-
this.queryParams.remove(name);
777-
if (!CollectionUtils.isEmpty(values)) {
778-
queryParams(name, values);
779-
}
780-
resetSchemeSpecificPart();
781-
return this;
779+
public UriComponentsBuilder replaceQueryParam(String name, @Nullable Collection<?> values) {
780+
return replaceQueryParam(name, values != null ? values.toArray() : EMPTY_VALUES);
782781
}
783782

784783
/**

spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.net.URI;
2020
import java.net.URISyntaxException;
2121
import java.util.Arrays;
22+
import java.util.Collection;
2223
import java.util.Collections;
2324
import java.util.HashMap;
2425
import java.util.Map;
@@ -644,8 +645,7 @@ public void replaceQuery() {
644645

645646
@Test
646647
public void queryParam() {
647-
UriComponentsBuilder builder = UriComponentsBuilder.newInstance();
648-
UriComponents result = builder.queryParam("baz", "qux", 42).build();
648+
UriComponents result = UriComponentsBuilder.newInstance().queryParam("baz", "qux", 42).build();
649649

650650
assertThat(result.getQuery()).isEqualTo("baz=qux&baz=42");
651651
MultiValueMap<String, String> expectedQueryParams = new LinkedMultiValueMap<>(2);
@@ -655,9 +655,9 @@ public void queryParam() {
655655
}
656656

657657
@Test
658-
public void queryParams() {
658+
public void queryParamWithList() {
659659
UriComponentsBuilder builder = UriComponentsBuilder.newInstance();
660-
UriComponents result = builder.queryParams("baz", Arrays.asList("qux", 42)).build();
660+
UriComponents result = builder.queryParam("baz", Arrays.asList("qux", 42)).build();
661661

662662
assertThat(result.getQuery()).isEqualTo("baz=qux&baz=42");
663663
MultiValueMap<String, String> expectedQueryParams = new LinkedMultiValueMap<>(2);
@@ -679,8 +679,10 @@ public void emptyQueryParam() {
679679

680680
@Test
681681
public void emptyQueryParams() {
682-
UriComponentsBuilder builder = UriComponentsBuilder.newInstance();
683-
UriComponents result = builder.queryParams("baz", Collections.emptyList()).queryParams("foo", null).build();
682+
UriComponents result = UriComponentsBuilder.newInstance()
683+
.queryParam("baz", Collections.emptyList())
684+
.queryParam("foo", (Collection<?>) null)
685+
.build();
684686

685687
assertThat(result.getQuery()).isEqualTo("baz&foo");
686688
MultiValueMap<String, String> expectedQueryParams = new LinkedMultiValueMap<>(2);
@@ -706,14 +708,14 @@ public void replaceQueryParam() {
706708

707709
@Test
708710
public void replaceQueryParams() {
709-
UriComponentsBuilder builder = UriComponentsBuilder.newInstance().queryParams("baz", Arrays.asList("qux", 42));
710-
builder.replaceQueryParams("baz", Arrays.asList("xuq", 24));
711+
UriComponentsBuilder builder = UriComponentsBuilder.newInstance().queryParam("baz", Arrays.asList("qux", 42));
712+
builder.replaceQueryParam("baz", Arrays.asList("xuq", 24));
711713
UriComponents result = builder.build();
712714

713715
assertThat(result.getQuery()).isEqualTo("baz=xuq&baz=24");
714716

715-
builder = UriComponentsBuilder.newInstance().queryParams("baz", Arrays.asList("qux", 42));
716-
builder.replaceQueryParams("baz", Collections.emptyList());
717+
builder = UriComponentsBuilder.newInstance().queryParam("baz", Arrays.asList("qux", 42));
718+
builder.replaceQueryParam("baz", Collections.emptyList());
717719
result = builder.build();
718720

719721
assertThat(result.getQuery()).as("Query param should have been deleted").isNull();

0 commit comments

Comments
 (0)