Package org.jboss.resteasy.spi
Class ResteasyUriBuilder
- java.lang.Object
-
- javax.ws.rs.core.UriBuilder
-
- org.jboss.resteasy.spi.ResteasyUriBuilder
-
- Direct Known Subclasses:
ResteasyUriBuilderImpl
public abstract class ResteasyUriBuilder extends javax.ws.rs.core.UriBuilder
-
-
Field Summary
Fields Modifier and Type Field Description static Pattern
hierarchicalUri
static Pattern
opaqueUri
-
Constructor Summary
Constructors Constructor Description ResteasyUriBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract javax.ws.rs.core.UriBuilder
clientQueryParam(String name, Object... values)
Called by ClientRequest.getUri() to add a query parameter for@QueryParam
parameters.abstract javax.ws.rs.core.UriBuilder
clone()
static boolean
compare(String s1, String s2)
static ResteasyUriBuilder
fromTemplate(String uriTemplate)
You may put path parameters anywhere within the uriTemplate except port.abstract String
getFragment()
abstract String
getHost()
abstract String
getPath()
abstract List<String>
getPathParamNamesInDeclarationOrder()
Return a unique order list of path params.abstract int
getPort()
abstract String
getQuery()
abstract String
getScheme()
abstract String
getUserInfo()
static URI
relativize(URI from, URI to)
abstract javax.ws.rs.core.UriBuilder
substitutePathParam(String name, Object value, boolean isEncoded)
Only replace path params in path of URI.abstract javax.ws.rs.core.UriBuilder
uriFromCharSequence(CharSequence uriTemplate)
abstract javax.ws.rs.core.UriBuilder
uriTemplate(CharSequence uriTemplate)
You may put path parameters anywhere within the uriTemplate except port.-
Methods inherited from class javax.ws.rs.core.UriBuilder
build, build, buildFromEncoded, buildFromEncodedMap, buildFromMap, buildFromMap, fragment, fromLink, fromMethod, fromPath, fromResource, fromUri, fromUri, host, matrixParam, newInstance, path, path, path, path, port, queryParam, replaceMatrix, replaceMatrixParam, replacePath, replaceQuery, replaceQueryParam, resolveTemplate, resolveTemplate, resolveTemplateFromEncoded, resolveTemplates, resolveTemplates, resolveTemplatesFromEncoded, scheme, schemeSpecificPart, segment, toTemplate, uri, uri, userInfo
-
-
-
-
Method Detail
-
clone
public abstract javax.ws.rs.core.UriBuilder clone()
- Specified by:
clone
in classjavax.ws.rs.core.UriBuilder
-
fromTemplate
public static ResteasyUriBuilder fromTemplate(String uriTemplate)
You may put path parameters anywhere within the uriTemplate except port.- Parameters:
uriTemplate
- uri template- Returns:
- uri builder
-
uriTemplate
public abstract javax.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
-
uriFromCharSequence
public abstract javax.ws.rs.core.UriBuilder uriFromCharSequence(CharSequence uriTemplate) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
substitutePathParam
public abstract 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.- Parameters:
name
- parameter namevalue
- parameter valueisEncoded
- encoded flag- Returns:
- uri builder
-
getPathParamNamesInDeclarationOrder
public abstract List<String> getPathParamNamesInDeclarationOrder()
Return a unique order list of path params.- Returns:
- list of path parameters
-
clientQueryParam
public abstract javax.ws.rs.core.UriBuilder clientQueryParam(String name, Object... values) throws 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 values 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.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
-
getHost
public abstract String getHost()
-
getScheme
public abstract String getScheme()
-
getPort
public abstract int getPort()
-
getUserInfo
public abstract String getUserInfo()
-
getPath
public abstract String getPath()
-
getQuery
public abstract String getQuery()
-
getFragment
public abstract String getFragment()
-
-