Package org.jboss.resteasy.specimpl
Class ResteasyUriBuilder
- java.lang.Object
-
- javax.ws.rs.core.UriBuilder
-
- org.jboss.resteasy.specimpl.ResteasyUriBuilder
-
public class ResteasyUriBuilder extends javax.ws.rs.core.UriBuilder
- Version:
- $Revision: 1 $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ResteasyUriBuilder.URITemplateParametersMap
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
authority
private java.lang.String
fragment
static java.util.regex.Pattern
hierarchicalUri
private java.lang.String
host
private static java.util.regex.Pattern
hostPortPattern
static java.util.regex.Pattern
opaqueUri
private static java.util.regex.Pattern
PARAM_REPLACEMENT
private java.lang.String
path
private int
port
private java.lang.String
query
private java.lang.String
scheme
private java.lang.String
ssp
private java.lang.String
userInfo
-
Constructor Summary
Constructors Constructor Description ResteasyUriBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addToPathParamList(java.util.List<java.lang.String> params, java.util.HashSet<java.lang.String> set, java.lang.String string)
java.net.URI
build(java.lang.Object... values)
java.net.URI
build(java.lang.Object[] values, boolean encodeSlashInPath)
java.net.URI
buildFromEncoded(java.lang.Object... values)
java.net.URI
buildFromEncodedMap(java.util.Map<java.lang.String,? extends java.lang.Object> values)
java.net.URI
buildFromMap(java.util.Map<java.lang.String,?> values, boolean encodeSlashInPath)
java.net.URI
buildFromMap(java.util.Map<java.lang.String,? extends java.lang.Object> values)
protected java.net.URI
buildFromValues(boolean encodeSlash, boolean encoded, java.lang.Object... values)
private java.lang.String
buildString(java.util.Map<java.lang.String,? extends java.lang.Object> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
protected java.net.URI
buildUriFromMap(java.util.Map<java.lang.String,? extends java.lang.Object> paramMap, boolean fromEncodedMap, boolean encodeSlash)
javax.ws.rs.core.UriBuilder
clientQueryParam(java.lang.String name, java.lang.Object value)
Called by ClientRequest.getUri() to add a query parameter for@QueryParam
parameters.javax.ws.rs.core.UriBuilder
clone()
static boolean
compare(java.lang.String s1, java.lang.String s2)
static java.util.regex.Matcher
createUriParamMatcher(java.lang.String string)
javax.ws.rs.core.UriBuilder
fragment(java.lang.String fragment)
static javax.ws.rs.core.UriBuilder
fromTemplate(java.lang.String uriTemplate)
You may put path parameters anywhere within the uriTemplate except portjava.lang.String
getFragment()
java.lang.String
getHost()
java.lang.String
getPath()
java.util.List<java.lang.String>
getPathParamNamesInDeclarationOrder()
Return a unique order list of path paramsint
getPort()
java.lang.String
getQuery()
java.lang.String
getScheme()
java.lang.String
getUserInfo()
javax.ws.rs.core.UriBuilder
host(java.lang.String host)
javax.ws.rs.core.UriBuilder
matrixParam(java.lang.String name, java.lang.Object... values)
protected javax.ws.rs.core.UriBuilder
parseHierarchicalUri(java.lang.String uriTemplate, java.util.regex.Matcher match)
javax.ws.rs.core.UriBuilder
path(java.lang.Class resource)
javax.ws.rs.core.UriBuilder
path(java.lang.Class resource, java.lang.String method)
javax.ws.rs.core.UriBuilder
path(java.lang.reflect.Method method)
javax.ws.rs.core.UriBuilder
path(java.lang.String segment)
protected static java.lang.String
paths(boolean encode, java.lang.String basePath, java.lang.String... segments)
javax.ws.rs.core.UriBuilder
port(int port)
javax.ws.rs.core.UriBuilder
queryParam(java.lang.String name, java.lang.Object... values)
static java.net.URI
relativize(java.net.URI from, java.net.URI to)
javax.ws.rs.core.UriBuilder
replaceMatrix(java.lang.String matrix)
javax.ws.rs.core.UriBuilder
replaceMatrixParam(java.lang.String name, java.lang.Object... values)
protected java.lang.StringBuilder
replaceParameter(java.util.Map<java.lang.String,? extends java.lang.Object> paramMap, boolean fromEncodedMap, boolean isTemplate, java.lang.String string, java.lang.StringBuilder builder, boolean encodeSlash)
javax.ws.rs.core.UriBuilder
replacePath(java.lang.String path)
protected java.lang.StringBuilder
replacePathParameter(java.lang.String name, java.lang.String value, boolean isEncoded, java.lang.String string, java.lang.StringBuilder builder, boolean encodeSlash)
javax.ws.rs.core.UriBuilder
replaceQuery(java.lang.String query)
javax.ws.rs.core.UriBuilder
replaceQueryParam(java.lang.String name, java.lang.Object... values)
protected java.lang.StringBuilder
replaceQueryStringParameter(java.util.Map<java.lang.String,? extends java.lang.Object> paramMap, boolean fromEncodedMap, boolean isTemplate, java.lang.String string, java.lang.StringBuilder builder)
javax.ws.rs.core.UriBuilder
resolveTemplate(java.lang.String name, java.lang.Object value)
javax.ws.rs.core.UriBuilder
resolveTemplate(java.lang.String name, java.lang.Object value, boolean encodeSlashInPath)
javax.ws.rs.core.UriBuilder
resolveTemplateFromEncoded(java.lang.String name, java.lang.Object value)
javax.ws.rs.core.UriBuilder
resolveTemplates(java.util.Map<java.lang.String,java.lang.Object> templateValues)
javax.ws.rs.core.UriBuilder
resolveTemplates(java.util.Map<java.lang.String,java.lang.Object> templateValues, boolean encodeSlashInPath)
javax.ws.rs.core.UriBuilder
resolveTemplatesFromEncoded(java.util.Map<java.lang.String,java.lang.Object> templateValues)
javax.ws.rs.core.UriBuilder
scheme(java.lang.String scheme)
javax.ws.rs.core.UriBuilder
schemeSpecificPart(java.lang.String ssp)
javax.ws.rs.core.UriBuilder
segment(java.lang.String... segments)
javax.ws.rs.core.UriBuilder
substitutePathParam(java.lang.String name, java.lang.Object value, boolean isEncoded)
Only replace path params in path of URI.java.lang.String
toTemplate()
javax.ws.rs.core.UriBuilder
uri(java.lang.String uriTemplate)
javax.ws.rs.core.UriBuilder
uri(java.net.URI uri)
javax.ws.rs.core.UriBuilder
uriTemplate(java.lang.String uriTemplate)
You may put path parameters anywhere within the uriTemplate except portjavax.ws.rs.core.UriBuilder
userInfo(java.lang.String ui)
-
-
-
Field Detail
-
host
private java.lang.String host
-
scheme
private java.lang.String scheme
-
port
private int port
-
userInfo
private java.lang.String userInfo
-
path
private java.lang.String path
-
query
private java.lang.String query
-
fragment
private java.lang.String fragment
-
ssp
private java.lang.String ssp
-
authority
private java.lang.String authority
-
opaqueUri
public static final java.util.regex.Pattern opaqueUri
-
hierarchicalUri
public static final java.util.regex.Pattern hierarchicalUri
-
hostPortPattern
private static final java.util.regex.Pattern hostPortPattern
-
PARAM_REPLACEMENT
private static final java.util.regex.Pattern PARAM_REPLACEMENT
-
-
Method Detail
-
clone
public javax.ws.rs.core.UriBuilder clone()
- Specified by:
clone
in classjavax.ws.rs.core.UriBuilder
-
compare
public static boolean compare(java.lang.String s1, java.lang.String s2)
-
relativize
public static java.net.URI relativize(java.net.URI from, java.net.URI to)
-
fromTemplate
public static javax.ws.rs.core.UriBuilder fromTemplate(java.lang.String uriTemplate)
You may put path parameters anywhere within the uriTemplate except port- Parameters:
uriTemplate
-- Returns:
-
uriTemplate
public javax.ws.rs.core.UriBuilder uriTemplate(java.lang.String uriTemplate)
You may put path parameters anywhere within the uriTemplate except port- Parameters:
uriTemplate
-- Returns:
-
parseHierarchicalUri
protected javax.ws.rs.core.UriBuilder parseHierarchicalUri(java.lang.String uriTemplate, java.util.regex.Matcher match)
-
uri
public javax.ws.rs.core.UriBuilder uri(java.lang.String uriTemplate) throws java.lang.IllegalArgumentException
- Specified by:
uri
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
uri
public javax.ws.rs.core.UriBuilder uri(java.net.URI uri) throws java.lang.IllegalArgumentException
- Specified by:
uri
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
scheme
public javax.ws.rs.core.UriBuilder scheme(java.lang.String scheme) throws java.lang.IllegalArgumentException
- Specified by:
scheme
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
schemeSpecificPart
public javax.ws.rs.core.UriBuilder schemeSpecificPart(java.lang.String ssp) throws java.lang.IllegalArgumentException
- Specified by:
schemeSpecificPart
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
userInfo
public javax.ws.rs.core.UriBuilder userInfo(java.lang.String ui)
- Specified by:
userInfo
in classjavax.ws.rs.core.UriBuilder
-
host
public javax.ws.rs.core.UriBuilder host(java.lang.String host) throws java.lang.IllegalArgumentException
- Specified by:
host
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
port
public javax.ws.rs.core.UriBuilder port(int port) throws java.lang.IllegalArgumentException
- Specified by:
port
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
paths
protected static java.lang.String paths(boolean encode, java.lang.String basePath, java.lang.String... segments)
-
path
public javax.ws.rs.core.UriBuilder path(java.lang.String segment) throws java.lang.IllegalArgumentException
- Specified by:
path
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
path
public javax.ws.rs.core.UriBuilder path(java.lang.Class resource) throws java.lang.IllegalArgumentException
- Specified by:
path
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
path
public javax.ws.rs.core.UriBuilder path(java.lang.Class resource, java.lang.String method) throws java.lang.IllegalArgumentException
- Specified by:
path
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
path
public javax.ws.rs.core.UriBuilder path(java.lang.reflect.Method method) throws java.lang.IllegalArgumentException
- Specified by:
path
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
replaceMatrix
public javax.ws.rs.core.UriBuilder replaceMatrix(java.lang.String matrix) throws java.lang.IllegalArgumentException
- Specified by:
replaceMatrix
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
replaceQuery
public javax.ws.rs.core.UriBuilder replaceQuery(java.lang.String query) throws java.lang.IllegalArgumentException
- Specified by:
replaceQuery
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
fragment
public javax.ws.rs.core.UriBuilder fragment(java.lang.String fragment) throws java.lang.IllegalArgumentException
- Specified by:
fragment
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
substitutePathParam
public javax.ws.rs.core.UriBuilder substitutePathParam(java.lang.String name, java.lang.Object value, boolean isEncoded)
Only replace path params in path of URI. This changes state of URIBuilder.- Parameters:
name
-value
-isEncoded
-- Returns:
-
buildFromMap
public java.net.URI buildFromMap(java.util.Map<java.lang.String,? extends java.lang.Object> values) throws java.lang.IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildFromMap
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
javax.ws.rs.core.UriBuilderException
-
buildFromEncodedMap
public java.net.URI buildFromEncodedMap(java.util.Map<java.lang.String,? extends java.lang.Object> values) throws java.lang.IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildFromEncodedMap
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
javax.ws.rs.core.UriBuilderException
-
buildFromMap
public java.net.URI buildFromMap(java.util.Map<java.lang.String,?> values, boolean encodeSlashInPath) throws java.lang.IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildFromMap
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
javax.ws.rs.core.UriBuilderException
-
buildUriFromMap
protected java.net.URI buildUriFromMap(java.util.Map<java.lang.String,? extends java.lang.Object> paramMap, boolean fromEncodedMap, boolean encodeSlash) throws java.lang.IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Throws:
java.lang.IllegalArgumentException
javax.ws.rs.core.UriBuilderException
-
buildString
private java.lang.String buildString(java.util.Map<java.lang.String,? extends java.lang.Object> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
-
replacePathParameter
protected java.lang.StringBuilder replacePathParameter(java.lang.String name, java.lang.String value, boolean isEncoded, java.lang.String string, java.lang.StringBuilder builder, boolean encodeSlash)
-
createUriParamMatcher
public static java.util.regex.Matcher createUriParamMatcher(java.lang.String string)
-
replaceParameter
protected java.lang.StringBuilder replaceParameter(java.util.Map<java.lang.String,? extends java.lang.Object> paramMap, boolean fromEncodedMap, boolean isTemplate, java.lang.String string, java.lang.StringBuilder builder, boolean encodeSlash)
-
replaceQueryStringParameter
protected java.lang.StringBuilder replaceQueryStringParameter(java.util.Map<java.lang.String,? extends java.lang.Object> paramMap, boolean fromEncodedMap, boolean isTemplate, java.lang.String string, java.lang.StringBuilder builder)
-
getPathParamNamesInDeclarationOrder
public java.util.List<java.lang.String> getPathParamNamesInDeclarationOrder()
Return a unique order list of path params- Returns:
-
addToPathParamList
private void addToPathParamList(java.util.List<java.lang.String> params, java.util.HashSet<java.lang.String> set, java.lang.String string)
-
build
public java.net.URI build(java.lang.Object... values) throws java.lang.IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
build
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
javax.ws.rs.core.UriBuilderException
-
buildFromValues
protected java.net.URI buildFromValues(boolean encodeSlash, boolean encoded, java.lang.Object... values)
-
matrixParam
public javax.ws.rs.core.UriBuilder matrixParam(java.lang.String name, java.lang.Object... values) throws java.lang.IllegalArgumentException
- Specified by:
matrixParam
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
replaceMatrixParam
public javax.ws.rs.core.UriBuilder replaceMatrixParam(java.lang.String name, java.lang.Object... values) throws java.lang.IllegalArgumentException
- Specified by:
replaceMatrixParam
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
clientQueryParam
public javax.ws.rs.core.UriBuilder clientQueryParam(java.lang.String name, java.lang.Object value) throws java.lang.IllegalArgumentException
Called by ClientRequest.getUri() to add a query parameter for@QueryParam
parameters. 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
@QueryParam
parameters). - 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 value parameter because it represents arbitrary data passed to aQueryParam
parameter 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.value
- the value of the query parameter.- Returns:
- Returns this instance to allow call chaining.
- Throws:
java.lang.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(java.lang.String name, java.lang.Object... values) throws java.lang.IllegalArgumentException
- Specified by:
queryParam
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
replaceQueryParam
public javax.ws.rs.core.UriBuilder replaceQueryParam(java.lang.String name, java.lang.Object... values) throws java.lang.IllegalArgumentException
- Specified by:
replaceQueryParam
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
getHost
public java.lang.String getHost()
-
getScheme
public java.lang.String getScheme()
-
getPort
public int getPort()
-
getUserInfo
public java.lang.String getUserInfo()
-
getPath
public java.lang.String getPath()
-
getQuery
public java.lang.String getQuery()
-
getFragment
public java.lang.String getFragment()
-
segment
public javax.ws.rs.core.UriBuilder segment(java.lang.String... segments) throws java.lang.IllegalArgumentException
- Specified by:
segment
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
buildFromEncoded
public java.net.URI buildFromEncoded(java.lang.Object... values) throws java.lang.IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
buildFromEncoded
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
javax.ws.rs.core.UriBuilderException
-
replacePath
public javax.ws.rs.core.UriBuilder replacePath(java.lang.String path)
- Specified by:
replacePath
in classjavax.ws.rs.core.UriBuilder
-
build
public java.net.URI build(java.lang.Object[] values, boolean encodeSlashInPath) throws java.lang.IllegalArgumentException, javax.ws.rs.core.UriBuilderException
- Specified by:
build
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
javax.ws.rs.core.UriBuilderException
-
toTemplate
public java.lang.String toTemplate()
- Specified by:
toTemplate
in classjavax.ws.rs.core.UriBuilder
-
resolveTemplate
public javax.ws.rs.core.UriBuilder resolveTemplate(java.lang.String name, java.lang.Object value) throws java.lang.IllegalArgumentException
- Specified by:
resolveTemplate
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
resolveTemplates
public javax.ws.rs.core.UriBuilder resolveTemplates(java.util.Map<java.lang.String,java.lang.Object> templateValues) throws java.lang.IllegalArgumentException
- Specified by:
resolveTemplates
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
resolveTemplate
public javax.ws.rs.core.UriBuilder resolveTemplate(java.lang.String name, java.lang.Object value, boolean encodeSlashInPath) throws java.lang.IllegalArgumentException
- Specified by:
resolveTemplate
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
resolveTemplateFromEncoded
public javax.ws.rs.core.UriBuilder resolveTemplateFromEncoded(java.lang.String name, java.lang.Object value) throws java.lang.IllegalArgumentException
- Specified by:
resolveTemplateFromEncoded
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
resolveTemplates
public javax.ws.rs.core.UriBuilder resolveTemplates(java.util.Map<java.lang.String,java.lang.Object> templateValues, boolean encodeSlashInPath) throws java.lang.IllegalArgumentException
- Specified by:
resolveTemplates
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
resolveTemplatesFromEncoded
public javax.ws.rs.core.UriBuilder resolveTemplatesFromEncoded(java.util.Map<java.lang.String,java.lang.Object> templateValues) throws java.lang.IllegalArgumentException
- Specified by:
resolveTemplatesFromEncoded
in classjavax.ws.rs.core.UriBuilder
- Throws:
java.lang.IllegalArgumentException
-
-