Package org.jboss.resteasy.specimpl
Class ResteasyUriBuilderImpl
- java.lang.Object
-
- javax.ws.rs.core.UriBuilder
-
- org.jboss.resteasy.spi.ResteasyUriBuilder
-
- org.jboss.resteasy.specimpl.ResteasyUriBuilderImpl
-
public class ResteasyUriBuilderImpl extends ResteasyUriBuilder
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Field Summary
-
Fields inherited from class org.jboss.resteasy.spi.ResteasyUriBuilder
hierarchicalUri, opaqueUri
-
-
Constructor Summary
Constructors Constructor Description ResteasyUriBuilderImpl()ResteasyUriBuilderImpl(String host, String scheme, int port, String userInfo, String path, String query, String fragment, String ssp, String authority)
-
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)javax.ws.rs.core.UriBuilderclientQueryParam(String name, Object... values)Called by ClientRequest.getUri() to add a query parameter for@QueryParamparameters.javax.ws.rs.core.UriBuilderclone()static MatchercreateUriParamMatcher(String string)javax.ws.rs.core.UriBuilderfragment(String fragment)StringgetAuthority()StringgetFragment()StringgetHost()StringgetPath()List<String>getPathParamNamesInDeclarationOrder()Return a unique order list of path params.intgetPort()StringgetQuery()StringgetScheme()StringgetSsp()StringgetUserInfo()javax.ws.rs.core.UriBuilderhost(String host)javax.ws.rs.core.UriBuildermatrixParam(String name, Object... values)protected javax.ws.rs.core.UriBuilderparseHierarchicalUri(CharSequence uriTemplate, Matcher match)javax.ws.rs.core.UriBuilderpath(Class resource)javax.ws.rs.core.UriBuilderpath(Class resource, String method)javax.ws.rs.core.UriBuilderpath(Method method)javax.ws.rs.core.UriBuilderpath(String segment)protected static Stringpaths(boolean encode, String basePath, String... segments)javax.ws.rs.core.UriBuilderport(int port)javax.ws.rs.core.UriBuilderqueryParam(String name, Object... values)javax.ws.rs.core.UriBuilderreplaceMatrix(String matrix)javax.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)javax.ws.rs.core.UriBuilderreplacePath(String path)protected StringBuilderreplacePathParameter(String name, String value, boolean isEncoded, String string, StringBuilder builder, boolean encodeSlash)javax.ws.rs.core.UriBuilderreplaceQuery(String query)javax.ws.rs.core.UriBuilderreplaceQueryNoEncoding(String query)javax.ws.rs.core.UriBuilderreplaceQueryParam(String name, Object... values)protected StringBuilderreplaceQueryStringParameter(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuilder builder)javax.ws.rs.core.UriBuilderresolveTemplate(String name, Object value)javax.ws.rs.core.UriBuilderresolveTemplate(String name, Object value, boolean encodeSlashInPath)javax.ws.rs.core.UriBuilderresolveTemplateFromEncoded(String name, Object value)javax.ws.rs.core.UriBuilderresolveTemplates(Map<String,Object> templateValues)javax.ws.rs.core.UriBuilderresolveTemplates(Map<String,Object> templateValues, boolean encodeSlashInPath)javax.ws.rs.core.UriBuilderresolveTemplatesFromEncoded(Map<String,Object> templateValues)javax.ws.rs.core.UriBuilderscheme(String scheme)javax.ws.rs.core.UriBuilderschemeSpecificPart(String ssp)javax.ws.rs.core.UriBuildersegment(String... segments)javax.ws.rs.core.UriBuildersubstitutePathParam(String name, Object value, boolean isEncoded)Only replace path params in path of URI.StringtoTemplate()javax.ws.rs.core.UriBuilderuri(String uriTemplate)javax.ws.rs.core.UriBuilderuri(URI uri)javax.ws.rs.core.UriBuilderuriFromCharSequence(CharSequence uriTemplate)javax.ws.rs.core.UriBuilderuriTemplate(CharSequence uriTemplate)You may put path parameters anywhere within the uriTemplate except port.javax.ws.rs.core.UriBuilderuserInfo(String ui)-
Methods inherited from class org.jboss.resteasy.spi.ResteasyUriBuilder
compare, fromTemplate, relativize
-
-
-
-
Method Detail
-
clone
public javax.ws.rs.core.UriBuilder clone()
- Specified by:
clonein classResteasyUriBuilder
-
uriTemplate
public javax.ws.rs.core.UriBuilder uriTemplate(CharSequence uriTemplate)
You may put path parameters anywhere within the uriTemplate except port.- Specified by:
uriTemplatein classResteasyUriBuilder- Parameters:
uriTemplate- uri template- Returns:
- uri builder
-
parseHierarchicalUri
protected javax.ws.rs.core.UriBuilder parseHierarchicalUri(CharSequence uriTemplate, Matcher match)
-
uri
public javax.ws.rs.core.UriBuilder uri(String uriTemplate) throws IllegalArgumentException
- Specified by:
uriin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
uriFromCharSequence
public javax.ws.rs.core.UriBuilder uriFromCharSequence(CharSequence uriTemplate) throws IllegalArgumentException
- Specified by:
uriFromCharSequencein classResteasyUriBuilder- Throws:
IllegalArgumentException
-
uri
public javax.ws.rs.core.UriBuilder uri(URI uri) throws IllegalArgumentException
- Specified by:
uriin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
scheme
public javax.ws.rs.core.UriBuilder scheme(String scheme) throws IllegalArgumentException
- Specified by:
schemein classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
schemeSpecificPart
public javax.ws.rs.core.UriBuilder schemeSpecificPart(String ssp) throws IllegalArgumentException
- Specified by:
schemeSpecificPartin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
userInfo
public javax.ws.rs.core.UriBuilder userInfo(String ui)
- Specified by:
userInfoin classjavax.ws.rs.core.UriBuilder
-
host
public javax.ws.rs.core.UriBuilder host(String host) throws IllegalArgumentException
- Specified by:
hostin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
port
public javax.ws.rs.core.UriBuilder port(int port) throws IllegalArgumentException- Specified by:
portin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
path
public javax.ws.rs.core.UriBuilder path(String segment) throws IllegalArgumentException
- Specified by:
pathin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
path
public javax.ws.rs.core.UriBuilder path(Class resource) throws IllegalArgumentException
- Specified by:
pathin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
path
public javax.ws.rs.core.UriBuilder path(Class resource, String method) throws IllegalArgumentException
- Specified by:
pathin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
path
public javax.ws.rs.core.UriBuilder path(Method method) throws IllegalArgumentException
- Specified by:
pathin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
replaceMatrix
public javax.ws.rs.core.UriBuilder replaceMatrix(String matrix) throws IllegalArgumentException
- Specified by:
replaceMatrixin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
replaceQuery
public javax.ws.rs.core.UriBuilder replaceQuery(String query) throws IllegalArgumentException
- Specified by:
replaceQueryin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
replaceQueryNoEncoding
public javax.ws.rs.core.UriBuilder replaceQueryNoEncoding(String query)
-
fragment
public javax.ws.rs.core.UriBuilder fragment(String fragment) throws IllegalArgumentException
- Specified by:
fragmentin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
substitutePathParam
public javax.ws.rs.core.UriBuilder substitutePathParam(String name, Object value, boolean isEncoded)
Only replace path params in path of URI. This changes state of URIBuilder.- Specified by:
substitutePathParamin classResteasyUriBuilder- Parameters:
name- parameter namevalue- parameter valueisEncoded- encoded flag- Returns:
- uri builder
-
buildFromMap
public URI buildFromMap(Map<String,? extends Object> values) throws IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildFromMapin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjavax.ws.rs.core.UriBuilderException
-
buildFromEncodedMap
public URI buildFromEncodedMap(Map<String,? extends Object> values) throws IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildFromEncodedMapin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjavax.ws.rs.core.UriBuilderException
-
buildFromMap
public URI buildFromMap(Map<String,?> values, boolean encodeSlashInPath) throws IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildFromMapin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjavax.ws.rs.core.UriBuilderException
-
buildUriFromMap
protected URI buildUriFromMap(Map<String,? extends Object> paramMap, boolean fromEncodedMap, boolean encodeSlash) throws IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Throws:
IllegalArgumentExceptionjavax.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)
-
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.- Specified by:
getPathParamNamesInDeclarationOrderin classResteasyUriBuilder- Returns:
- list of path parameters
-
build
public URI build(Object... values) throws IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjavax.ws.rs.core.UriBuilderException
-
buildFromValues
protected URI buildFromValues(boolean encodeSlash, boolean encoded, Object... values)
-
matrixParam
public javax.ws.rs.core.UriBuilder matrixParam(String name, Object... values) throws IllegalArgumentException
- Specified by:
matrixParamin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
replaceMatrixParam
public javax.ws.rs.core.UriBuilder replaceMatrixParam(String name, Object... values) throws IllegalArgumentException
- Specified by:
replaceMatrixParamin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
clientQueryParam
public javax.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).
- Specified by:
clientQueryParamin classResteasyUriBuilder- 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 javax.ws.rs.core.UriBuilder queryParam(String name, Object... values) throws IllegalArgumentException
- Specified by:
queryParamin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
replaceQueryParam
public javax.ws.rs.core.UriBuilder replaceQueryParam(String name, Object... values) throws IllegalArgumentException
- Specified by:
replaceQueryParamin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
getHost
public String getHost()
- Specified by:
getHostin classResteasyUriBuilder
-
getScheme
public String getScheme()
- Specified by:
getSchemein classResteasyUriBuilder
-
getPort
public int getPort()
- Specified by:
getPortin classResteasyUriBuilder
-
getUserInfo
public String getUserInfo()
- Specified by:
getUserInfoin classResteasyUriBuilder
-
getPath
public String getPath()
- Specified by:
getPathin classResteasyUriBuilder
-
getQuery
public String getQuery()
- Specified by:
getQueryin classResteasyUriBuilder
-
getFragment
public String getFragment()
- Specified by:
getFragmentin classResteasyUriBuilder
-
getAuthority
public String getAuthority()
-
getSsp
public String getSsp()
-
segment
public javax.ws.rs.core.UriBuilder segment(String... segments) throws IllegalArgumentException
- Specified by:
segmentin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
buildFromEncoded
public URI buildFromEncoded(Object... values) throws IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildFromEncodedin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjavax.ws.rs.core.UriBuilderException
-
replacePath
public javax.ws.rs.core.UriBuilder replacePath(String path)
- Specified by:
replacePathin classjavax.ws.rs.core.UriBuilder
-
build
public URI build(Object[] values, boolean encodeSlashInPath) throws IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentExceptionjavax.ws.rs.core.UriBuilderException
-
toTemplate
public String toTemplate()
- Specified by:
toTemplatein classjavax.ws.rs.core.UriBuilder
-
resolveTemplate
public javax.ws.rs.core.UriBuilder resolveTemplate(String name, Object value) throws IllegalArgumentException
- Specified by:
resolveTemplatein classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplates
public javax.ws.rs.core.UriBuilder resolveTemplates(Map<String,Object> templateValues) throws IllegalArgumentException
- Specified by:
resolveTemplatesin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplate
public javax.ws.rs.core.UriBuilder resolveTemplate(String name, Object value, boolean encodeSlashInPath) throws IllegalArgumentException
- Specified by:
resolveTemplatein classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplateFromEncoded
public javax.ws.rs.core.UriBuilder resolveTemplateFromEncoded(String name, Object value) throws IllegalArgumentException
- Specified by:
resolveTemplateFromEncodedin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplates
public javax.ws.rs.core.UriBuilder resolveTemplates(Map<String,Object> templateValues, boolean encodeSlashInPath) throws IllegalArgumentException
- Specified by:
resolveTemplatesin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
resolveTemplatesFromEncoded
public javax.ws.rs.core.UriBuilder resolveTemplatesFromEncoded(Map<String,Object> templateValues) throws IllegalArgumentException
- Specified by:
resolveTemplatesFromEncodedin classjavax.ws.rs.core.UriBuilder- Throws:
IllegalArgumentException
-
-