javax.ws.rs.core
Interface UriInfo


public interface UriInfo

An injectable interface that provides access to application and request URI information. Relative URIs are relative to the base URI of the application, see getBaseUri().

All methods except getBaseUri() and getBaseUriBuilder() throw java.lang.IllegalStateException if called outside the scope of a request (e.g. from a provider constructor).

See Also:
Context

Method Summary
 java.net.URI getAbsolutePath()
          Get the absolute path of the request.
 UriBuilder getAbsolutePathBuilder()
          Get the absolute path of the request in the form of a UriBuilder.
 java.util.List<java.lang.Object> getAncestorResources()
          Get a read-only list of ancestor resource class instances.
 java.util.List<java.lang.String> getAncestorResourceURIs()
          Get a read-only list of URIs for ancestor resources.
 java.net.URI getBaseUri()
          Get the base URI of the application.
 UriBuilder getBaseUriBuilder()
          Get the base URI of the application in the form of a UriBuilder.
 java.lang.String getPath()
          Get the path of the current request relative to the base URI as a string.
 java.lang.String getPath(boolean decode)
          Get the path of the current request relative to the base URI as a string.
 java.util.List<PathSegment> getPathSegments()
          Get the path of the current request relative to the base URI as a list of PathSegment.
 java.util.List<PathSegment> getPathSegments(boolean decode)
          Get the path of the current request relative to the base URI as a list of PathSegment.
 MultivaluedMap<java.lang.String,java.lang.String> getQueryParameters()
          Get the URI query parameters of the current request.
 MultivaluedMap<java.lang.String,java.lang.String> getQueryParameters(boolean decode)
          Get the URI query parameters of the current request.
 java.net.URI getRequestUri()
          Get the absolute request URI.
 UriBuilder getRequestUriBuilder()
          Get the absolute request URI in the form of a UriBuilder.
 MultivaluedMap<java.lang.String,java.lang.String> getTemplateParameters()
          Get the values of any embedded URI template parameters.
 MultivaluedMap<java.lang.String,java.lang.String> getTemplateParameters(boolean decode)
          Get the values of any embedded URI template parameters.
 

Method Detail

getPath

java.lang.String getPath()
Get the path of the current request relative to the base URI as a string. All sequences of escaped octets are decoded, equivalent to getPath(true).

Returns:
the relative URI path
Throws:
java.lang.IllegalStateException - if called outside the scope of a request

getPath

java.lang.String getPath(boolean decode)
Get the path of the current request relative to the base URI as a string.

Parameters:
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
Returns:
the relative URI path
Throws:
java.lang.IllegalStateException - if called outside the scope of a request

getPathSegments

java.util.List<PathSegment> getPathSegments()
Get the path of the current request relative to the base URI as a list of PathSegment. This method is useful when the path needs to be parsed, particularly when matrix parameters may be present in the path. All sequences of escaped octets are decoded, equivalent to getPathSegments(true).

Returns:
an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also unmodifiable.
Throws:
java.lang.IllegalStateException - if called outside the scope of a request
See Also:
PathSegment

getPathSegments

java.util.List<PathSegment> getPathSegments(boolean decode)
Get the path of the current request relative to the base URI as a list of PathSegment. This method is useful when the path needs to be parsed, particularly when matrix parameters may be present in the path.

Parameters:
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
Returns:
an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also unmodifiable.
Throws:
java.lang.IllegalStateException - if called outside the scope of a request
See Also:
PathSegment

getRequestUri

java.net.URI getRequestUri()
Get the absolute request URI. This includes query parameters and any supplied fragment.

Returns:
the absolute request URI
Throws:
java.lang.IllegalStateException - if called outside the scope of a request

getRequestUriBuilder

UriBuilder getRequestUriBuilder()
Get the absolute request URI in the form of a UriBuilder.

Returns:
a UriBuilder initialized with the absolute request URI
Throws:
java.lang.IllegalStateException - if called outside the scope of a request

getAbsolutePath

java.net.URI getAbsolutePath()
Get the absolute path of the request. This includes everything preceding the path (host, port etc) but excludes query parameters and fragment. This is a shortcut for uriInfo.getBase().resolve(uriInfo.getPath()).

Returns:
the absolute path of the request
Throws:
java.lang.IllegalStateException - if called outside the scope of a request

getAbsolutePathBuilder

UriBuilder getAbsolutePathBuilder()
Get the absolute path of the request in the form of a UriBuilder. This includes everything preceding the path (host, port etc) but excludes query parameters and fragment.

Returns:
a UriBuilder initialized with the absolute path of the request
Throws:
java.lang.IllegalStateException - if called outside the scope of a request

getBaseUri

java.net.URI getBaseUri()
Get the base URI of the application. URIs of resource beans are all relative to this base URI.

Returns:
the base URI of the application

getBaseUriBuilder

UriBuilder getBaseUriBuilder()
Get the base URI of the application in the form of a UriBuilder.

Returns:
a UriBuilder initialized with the base URI of the application.

getTemplateParameters

MultivaluedMap<java.lang.String,java.lang.String> getTemplateParameters()
Get the values of any embedded URI template parameters. All sequences of escaped octets are decoded, equivalent to getTemplateParameters(true).

Returns:
an unmodifiable map of parameter names and values
Throws:
java.lang.IllegalStateException - if called outside the scope of a request
See Also:
Path

getTemplateParameters

MultivaluedMap<java.lang.String,java.lang.String> getTemplateParameters(boolean decode)
Get the values of any embedded URI template parameters.

Parameters:
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
Returns:
an unmodifiable map of parameter names and values
Throws:
java.lang.IllegalStateException - if called outside the scope of a request
See Also:
Path

getQueryParameters

MultivaluedMap<java.lang.String,java.lang.String> getQueryParameters()
Get the URI query parameters of the current request. All sequences of escaped octets are decoded, equivalent to getQueryParameters(true).

Returns:
an unmodifiable map of query parameter names and values
Throws:
java.lang.IllegalStateException - if called outside the scope of a request

getQueryParameters

MultivaluedMap<java.lang.String,java.lang.String> getQueryParameters(boolean decode)
Get the URI query parameters of the current request.

Parameters:
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
Returns:
an unmodifiable map of query parameter names and values
Throws:
java.lang.IllegalStateException - if called outside the scope of a request

getAncestorResourceURIs

java.util.List<java.lang.String> getAncestorResourceURIs()
Get a read-only list of URIs for ancestor resources. Each entry is a relative URI that is a partial path that matched a resource class, a sub-resource method or a sub-resource locator. Entries do not include query parameters but do include matrix parameters if present in the request URI. Entries are ordered in reverse request URI matching order, with the root resource URI last. E.g.:
@Path("foo")
public class FooResource {
  @GET
  public String getFoo() {...}
 
  @Path("bar")
  @GET
  public String getFooBar() {...}
}

A request GET /foo would return an empty list since FooResource is a root resource.

A request GET /foo/bar would return a list with one entry: "foo".

Returns:
a read-only list of URI paths for ancestor resources.

getAncestorResources

java.util.List<java.lang.Object> getAncestorResources()
Get a read-only list of ancestor resource class instances. Each entry is a resource class instance that matched a resource class, a sub-resource method or a sub-resource locator. Entries are ordered according in reverse request URI matching order, with the root resource last. E.g.:
@Path("foo")
public class FooResource {
  @GET
  public String getFoo() {...}
 
  @Path("bar")
  @GET
  public String getFooBar() {...}
}

A request GET /foo would return an empty list since FooResource is a root resource.

A request GET /foo/bar would return a list with one entry: an instance of FooResource.

Returns:
a read-only list of ancestor resource class instances.