Class UriBuilderImpl
- java.lang.Object
-
- jakarta.ws.rs.core.UriBuilder
-
- org.jboss.resteasy.reactive.common.jaxrs.UriBuilderImpl
-
public class UriBuilderImpl extends jakarta.ws.rs.core.UriBuilder- Author:
- Bill Burke
-
-
Field Summary
Fields Modifier and Type Field Description static PatternhierarchicalUristatic PatternopaqueUri
-
Constructor Summary
Constructors Constructor Description UriBuilderImpl()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description URIbuild(Object... values)URIbuild(Object[] values, boolean encodeSlashInPath)URIbuildFromEncoded(Object... values)URIbuildFromEncodedMap(Map<String,? extends Object> values)URIbuildFromMap(Map<String,?> values, boolean encodeSlashInPath)URIbuildFromMap(Map<String,? extends Object> values)protected URIbuildFromValues(boolean encodeSlash, boolean encoded, Object... values)protected URIbuildUriFromMap(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean encodeSlash)jakarta.ws.rs.core.UriBuilderclientQueryParam(String name, Object... values)Called by ClientRequest.getUri() to add a query parameter for@QueryParamparameters.jakarta.ws.rs.core.UriBuilderclone()static booleancompare(String s1, String s2)static MatchercreateUriParamMatcher(String string)jakarta.ws.rs.core.UriBuilderencode(boolean encode)jakarta.ws.rs.core.UriBuilderfragment(String fragment)static UriBuilderImplfromTemplate(String uriTemplate)You may put path parameters anywhere within the uriTemplate except port.StringgetFragment()StringgetHost()StringgetPath()List<String>getPathParamNamesInDeclarationOrder()Return a unique order list of path params.intgetPort()StringgetQuery()StringgetScheme()StringgetUserInfo()jakarta.ws.rs.core.UriBuilderhost(String host)jakarta.ws.rs.core.UriBuildermatrixParam(String name, Object... values)jakarta.ws.rs.core.UriBuildermultiQueryParamMode(MultiQueryParamMode mode)protected jakarta.ws.rs.core.UriBuilderparseHierarchicalUri(CharSequence uriTemplate, Matcher match)jakarta.ws.rs.core.UriBuilderpath(Class resource)jakarta.ws.rs.core.UriBuilderpath(Class resource, String method)jakarta.ws.rs.core.UriBuilderpath(Method method)jakarta.ws.rs.core.UriBuilderpath(String segment)protected static Stringpaths(boolean encode, String basePath, String... segments)jakarta.ws.rs.core.UriBuilderport(int port)jakarta.ws.rs.core.UriBuilderqueryParam(String name, Object... values)static URIrelativize(URI from, URI to)jakarta.ws.rs.core.UriBuilderreplaceMatrix(String matrix)jakarta.ws.rs.core.UriBuilderreplaceMatrixParam(String name, Object... values)protected StringBuilderreplaceParameter(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuilder builder, boolean encodeSlash)protected StringBuilderreplaceParameter(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuilder builder, boolean encode, boolean encodeSlash)jakarta.ws.rs.core.UriBuilderreplacePath(String path)protected StringBuilderreplacePathParameter(String name, String value, boolean isEncoded, String string, StringBuilder builder, boolean encodeSlash)jakarta.ws.rs.core.UriBuilderreplaceQuery(String query)jakarta.ws.rs.core.UriBuilderreplaceQueryParam(String name, Object... values)protected StringBuilderreplaceQueryStringParameter(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuilder builder)jakarta.ws.rs.core.UriBuilderresolveTemplate(String name, Object value)jakarta.ws.rs.core.UriBuilderresolveTemplate(String name, Object value, boolean encodeSlashInPath)jakarta.ws.rs.core.UriBuilderresolveTemplateFromEncoded(String name, Object value)jakarta.ws.rs.core.UriBuilderresolveTemplates(Map<String,Object> templateValues)jakarta.ws.rs.core.UriBuilderresolveTemplates(Map<String,Object> templateValues, boolean encodeSlashInPath)jakarta.ws.rs.core.UriBuilderresolveTemplatesFromEncoded(Map<String,Object> templateValues)jakarta.ws.rs.core.UriBuilderscheme(String scheme)jakarta.ws.rs.core.UriBuilderschemeSpecificPart(String ssp)jakarta.ws.rs.core.UriBuildersegment(String... segments)jakarta.ws.rs.core.UriBuildersubstitutePathParam(String name, Object value, boolean isEncoded)Only replace path params in path of URI.StringtoTemplate()jakarta.ws.rs.core.UriBuilderuri(String uriTemplate)jakarta.ws.rs.core.UriBuilderuri(URI uri)jakarta.ws.rs.core.UriBuilderuriFromCharSequence(CharSequence uriTemplate)jakarta.ws.rs.core.UriBuilderuriTemplate(CharSequence uriTemplate)You may put path parameters anywhere within the uriTemplate except port.jakarta.ws.rs.core.UriBuilderuserInfo(String ui)
-
-
-
Method Detail
-
clone
public jakarta.ws.rs.core.UriBuilder clone()
- Specified by:
clonein classjakarta.ws.rs.core.UriBuilder
-
fromTemplate
public static UriBuilderImpl fromTemplate(String uriTemplate)
You may put path parameters anywhere within the uriTemplate except port.- Parameters:
uriTemplate- uri template- Returns:
- uri builder
-
uriTemplate
public jakarta.ws.rs.core.UriBuilder uriTemplate(CharSequence uriTemplate)
You may put path parameters anywhere within the uriTemplate except port.- Parameters:
uriTemplate- uri template- Returns:
- uri builder
-
parseHierarchicalUri
protected jakarta.ws.rs.core.UriBuilder parseHierarchicalUri(CharSequence uriTemplate, Matcher match)
-
uri
public jakarta.ws.rs.core.UriBuilder uri(String uriTemplate) throws IllegalArgumentException
- Specified by:
uriin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
uriFromCharSequence
public jakarta.ws.rs.core.UriBuilder uriFromCharSequence(CharSequence uriTemplate) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
uri
public jakarta.ws.rs.core.UriBuilder uri(URI uri) throws IllegalArgumentException
- Specified by:
uriin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
scheme
public jakarta.ws.rs.core.UriBuilder scheme(String scheme) throws IllegalArgumentException
- Specified by:
schemein classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
schemeSpecificPart
public jakarta.ws.rs.core.UriBuilder schemeSpecificPart(String ssp) throws IllegalArgumentException
- Specified by:
schemeSpecificPartin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
userInfo
public jakarta.ws.rs.core.UriBuilder userInfo(String ui)
- Specified by:
userInfoin classjakarta.ws.rs.core.UriBuilder
-
host
public jakarta.ws.rs.core.UriBuilder host(String host) throws IllegalArgumentException
- Specified by:
hostin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
port
public jakarta.ws.rs.core.UriBuilder port(int port) throws IllegalArgumentException- Specified by:
portin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
encode
public jakarta.ws.rs.core.UriBuilder encode(boolean encode)
-
path
public jakarta.ws.rs.core.UriBuilder path(String segment) throws IllegalArgumentException
- Specified by:
pathin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
path
public jakarta.ws.rs.core.UriBuilder path(Class resource) throws IllegalArgumentException
- Specified by:
pathin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
path
public jakarta.ws.rs.core.UriBuilder path(Class resource, String method) throws IllegalArgumentException
- Specified by:
pathin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
path
public jakarta.ws.rs.core.UriBuilder path(Method method) throws IllegalArgumentException
- Specified by:
pathin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
replaceMatrix
public jakarta.ws.rs.core.UriBuilder replaceMatrix(String matrix) throws IllegalArgumentException
- Specified by:
replaceMatrixin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
replaceQuery
public jakarta.ws.rs.core.UriBuilder replaceQuery(String query) throws IllegalArgumentException
- Specified by:
replaceQueryin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
fragment
public jakarta.ws.rs.core.UriBuilder fragment(String fragment) throws IllegalArgumentException
- Specified by:
fragmentin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
substitutePathParam
public jakarta.ws.rs.core.UriBuilder substitutePathParam(String name, Object value, boolean isEncoded)
Only replace path params in path of URI. This changes state of URIBuilder.- Parameters:
name- parameter namevalue- parameter valueisEncoded- encoded flag- Returns:
- uri builder
-
buildFromMap
public URI buildFromMap(Map<String,? extends Object> values) throws IllegalArgumentException, jakarta.ws.rs.core.UriBuilderException
- Specified by:
buildFromMapin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjakarta.ws.rs.core.UriBuilderException
-
buildFromEncodedMap
public URI buildFromEncodedMap(Map<String,? extends Object> values) throws IllegalArgumentException, jakarta.ws.rs.core.UriBuilderException
- Specified by:
buildFromEncodedMapin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjakarta.ws.rs.core.UriBuilderException
-
buildFromMap
public URI buildFromMap(Map<String,?> values, boolean encodeSlashInPath) throws IllegalArgumentException, jakarta.ws.rs.core.UriBuilderException
- Specified by:
buildFromMapin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjakarta.ws.rs.core.UriBuilderException
-
buildUriFromMap
protected URI buildUriFromMap(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean encodeSlash) throws IllegalArgumentException, jakarta.ws.rs.core.UriBuilderException
- Throws:
IllegalArgumentExceptionjakarta.ws.rs.core.UriBuilderException
-
replacePathParameter
protected StringBuilder replacePathParameter(String name, String value, boolean isEncoded, String string, StringBuilder builder, boolean encodeSlash)
-
replaceParameter
protected StringBuilder replaceParameter(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuilder builder, boolean encodeSlash)
-
replaceParameter
protected StringBuilder replaceParameter(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuilder builder, boolean encode, boolean encodeSlash)
-
replaceQueryStringParameter
protected StringBuilder replaceQueryStringParameter(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuilder builder)
-
getPathParamNamesInDeclarationOrder
public List<String> getPathParamNamesInDeclarationOrder()
Return a unique order list of path params.- Returns:
- list of path parameters
-
build
public URI build(Object... values) throws IllegalArgumentException, jakarta.ws.rs.core.UriBuilderException
- Specified by:
buildin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjakarta.ws.rs.core.UriBuilderException
-
buildFromValues
protected URI buildFromValues(boolean encodeSlash, boolean encoded, Object... values)
-
matrixParam
public jakarta.ws.rs.core.UriBuilder matrixParam(String name, Object... values) throws IllegalArgumentException
- Specified by:
matrixParamin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
replaceMatrixParam
public jakarta.ws.rs.core.UriBuilder replaceMatrixParam(String name, Object... values) throws IllegalArgumentException
- Specified by:
replaceMatrixParamin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
clientQueryParam
public jakarta.ws.rs.core.UriBuilder clientQueryParam(String name, Object... values) throws IllegalArgumentException
Called by ClientRequest.getUri() to add a query parameter for@QueryParamparameters. We do not use UriBuilder.queryParam() because- queryParam() supports URI template processing and this method must
always encode braces (for parameter substitution is not possible for
@QueryParamparameters). - queryParam() supports "contextual URI encoding" (i.e., it does not
encode
%characters that are followed by two hex characters). The JavaDoc for@QueryParam.value()explicitly states that the value is specified in decoded format and that "any percent encoded literals within the value will not be decoded and will instead be treated as literal text". This means that it is an explicit bug to perform contextual URI encoding of this method's name parameter; hence, we must always encode said parameter. This method also foregoes contextual URI encoding on this method's values parameter because it represents arbitrary data passed to aQueryParamparameter of a client proxy (since the client proxy is nothing more than a transport layer, it should not be "interpreting" such data; instead, it should faithfully transmit this data over the wire).
- Parameters:
name- the name of the query parameter.values- the value(s) of the query parameter.- Returns:
- Returns this instance to allow call chaining.
- Throws:
IllegalArgumentException
- queryParam() supports URI template processing and this method must
always encode braces (for parameter substitution is not possible for
-
queryParam
public jakarta.ws.rs.core.UriBuilder queryParam(String name, Object... values) throws IllegalArgumentException
- Specified by:
queryParamin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
replaceQueryParam
public jakarta.ws.rs.core.UriBuilder replaceQueryParam(String name, Object... values) throws IllegalArgumentException
- Specified by:
replaceQueryParamin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
getHost
public String getHost()
-
getScheme
public String getScheme()
-
getPort
public int getPort()
-
getUserInfo
public String getUserInfo()
-
getPath
public String getPath()
-
getQuery
public String getQuery()
-
getFragment
public String getFragment()
-
segment
public jakarta.ws.rs.core.UriBuilder segment(String... segments) throws IllegalArgumentException
- Specified by:
segmentin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
buildFromEncoded
public URI buildFromEncoded(Object... values) throws IllegalArgumentException, jakarta.ws.rs.core.UriBuilderException
- Specified by:
buildFromEncodedin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjakarta.ws.rs.core.UriBuilderException
-
replacePath
public jakarta.ws.rs.core.UriBuilder replacePath(String path)
- Specified by:
replacePathin classjakarta.ws.rs.core.UriBuilder
-
build
public URI build(Object[] values, boolean encodeSlashInPath) throws IllegalArgumentException, jakarta.ws.rs.core.UriBuilderException
- Specified by:
buildin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjakarta.ws.rs.core.UriBuilderException
-
toTemplate
public String toTemplate()
- Specified by:
toTemplatein classjakarta.ws.rs.core.UriBuilder
-
resolveTemplate
public jakarta.ws.rs.core.UriBuilder resolveTemplate(String name, Object value) throws IllegalArgumentException
- Specified by:
resolveTemplatein classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplates
public jakarta.ws.rs.core.UriBuilder resolveTemplates(Map<String,Object> templateValues) throws IllegalArgumentException
- Specified by:
resolveTemplatesin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplate
public jakarta.ws.rs.core.UriBuilder resolveTemplate(String name, Object value, boolean encodeSlashInPath) throws IllegalArgumentException
- Specified by:
resolveTemplatein classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplateFromEncoded
public jakarta.ws.rs.core.UriBuilder resolveTemplateFromEncoded(String name, Object value) throws IllegalArgumentException
- Specified by:
resolveTemplateFromEncodedin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplates
public jakarta.ws.rs.core.UriBuilder resolveTemplates(Map<String,Object> templateValues, boolean encodeSlashInPath) throws IllegalArgumentException
- Specified by:
resolveTemplatesin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplatesFromEncoded
public jakarta.ws.rs.core.UriBuilder resolveTemplatesFromEncoded(Map<String,Object> templateValues) throws IllegalArgumentException
- Specified by:
resolveTemplatesFromEncodedin classjakarta.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
multiQueryParamMode
public jakarta.ws.rs.core.UriBuilder multiQueryParamMode(MultiQueryParamMode mode)
-
-