Class ResteasyUriBuilder


  • public class ResteasyUriBuilder
    extends javax.ws.rs.core.UriBuilder
    Version:
    $Revision: 1 $
    • 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  
    • 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 port
      java.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 params
      int 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 port
      javax.ws.rs.core.UriBuilder userInfo​(java.lang.String ui)  
      • Methods inherited from class javax.ws.rs.core.UriBuilder

        fromLink, fromMethod, fromPath, fromResource, fromUri, fromUri, newInstance
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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
    • Constructor Detail

      • ResteasyUriBuilder

        public ResteasyUriBuilder()
    • Method Detail

      • clone

        public javax.ws.rs.core.UriBuilder clone()
        Specified by:
        clone in class javax.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 class javax.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 class javax.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 class javax.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 class javax.ws.rs.core.UriBuilder
        Throws:
        java.lang.IllegalArgumentException
      • userInfo

        public javax.ws.rs.core.UriBuilder userInfo​(java.lang.String ui)
        Specified by:
        userInfo in class javax.ws.rs.core.UriBuilder
      • host

        public javax.ws.rs.core.UriBuilder host​(java.lang.String host)
                                         throws java.lang.IllegalArgumentException
        Specified by:
        host in class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 a QueryParam 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

        public javax.ws.rs.core.UriBuilder queryParam​(java.lang.String name,
                                                      java.lang.Object... values)
                                               throws java.lang.IllegalArgumentException
        Specified by:
        queryParam in class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.ws.rs.core.UriBuilder
        Throws:
        java.lang.IllegalArgumentException
        javax.ws.rs.core.UriBuilderException
      • toTemplate

        public java.lang.String toTemplate()
        Specified by:
        toTemplate in class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.ws.rs.core.UriBuilder
        Throws:
        java.lang.IllegalArgumentException