@ -20,6 +20,7 @@ import java.net.URI;
@@ -20,6 +20,7 @@ import java.net.URI;
import java.nio.charset.Charset ;
import java.nio.charset.StandardCharsets ;
import java.util.ArrayList ;
import java.util.Collection ;
import java.util.HashMap ;
import java.util.LinkedList ;
import java.util.List ;
@ -100,6 +101,8 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
@@ -100,6 +101,8 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
private static final Pattern FORWARDED_PROTO_PATTERN = Pattern . compile ( "proto=\"?([^;,\"]+)\"?" ) ;
private static final Object [ ] EMPTY_VALUES = new Object [ 0 ] ;
@Nullable
private String scheme ;
@ -696,6 +699,7 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
@@ -696,6 +699,7 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
* @param name the query parameter name
* @param values the query parameter values
* @return this UriComponentsBuilder
* @see # queryParam ( String , Collection )
* /
@Override
public UriComponentsBuilder queryParam ( String name , Object . . . values ) {
@ -713,6 +717,22 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
@@ -713,6 +717,22 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
return this ;
}
/ * *
* Append the given query parameter to the existing query parameters . The
* given name or any of the values may contain URI template variables . If no
* values are given , the resulting URI will contain the query parameter name
* only ( i . e . { @code ? foo } instead of { @code ? foo = bar } ) .
* @param name the query parameter name
* @param values the query parameter values
* @return this UriComponentsBuilder
* @since 5 . 2 . 0
* @see # queryParam ( String , Object . . . )
* /
@Override
public UriComponentsBuilder queryParam ( String name , @Nullable Collection < ? > values ) {
return queryParam ( name , values ! = null ? values . toArray ( ) : EMPTY_VALUES ) ;
}
/ * *
* Add the given query parameters .
* @param params the params
@ -733,6 +753,7 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
@@ -733,6 +753,7 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
* @param name the query parameter name
* @param values the query parameter values
* @return this UriComponentsBuilder
* @see # replaceQueryParam ( String , Collection )
* /
@Override
public UriComponentsBuilder replaceQueryParam ( String name , Object . . . values ) {
@ -745,6 +766,20 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
@@ -745,6 +766,20 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
return this ;
}
/ * *
* Set the query parameter values overriding all existing query values for
* the same parameter . If no values are given , the query parameter is removed .
* @param name the query parameter name
* @param values the query parameter values
* @return this UriComponentsBuilder
* @see # replaceQueryParam ( String , Object . . . )
* @since 5 . 2 . 0
* /
@Override
public UriComponentsBuilder replaceQueryParam ( String name , @Nullable Collection < ? > values ) {
return replaceQueryParam ( name , values ! = null ? values . toArray ( ) : EMPTY_VALUES ) ;
}
/ * *
* Set the query parameter values overriding all existing query values .
* @param params the query parameter name