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.util.List<java.lang.String> getAncestorResourceURIs(boolean decode)
          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.lang.String getPathExtension()
          Get the request URI extension, this includes everything following the first "." in the final path segment of the URI excluding any matrix parameters that might be present after the extension).
 MultivaluedMap<java.lang.String,java.lang.String> getPathParameters()
          Get the values of any embedded URI template parameters.
 MultivaluedMap<java.lang.String,java.lang.String> getPathParameters(boolean decode)
          Get the values of any embedded URI template parameters.
 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.
 UriBuilder getPlatonicRequestUriBuilder()
          Get the absolute platonic request URI in the form of a UriBuilder.
 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.
 

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 in path segments and matrix parmeter names and values 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 in path segments and matrix parameter names and values 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

getPlatonicRequestUriBuilder

UriBuilder getPlatonicRequestUriBuilder()
Get the absolute platonic request URI in the form of a UriBuilder. The platonic request URI is the request URI minus any extensions that were removed during request pre-processing for the purposes of URI-based content negotiation. E.g. if the request URI was:
http://example.com/resource.xml

and an applications implementation of ApplicationConfig.getMediaTypeMappings() returned a map that included "xml" as a key then the platonic request URI would be:

http://example.com/resource

Returns:
a UriBuilder initialized with the absolute platonic 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.

getPathExtension

java.lang.String getPathExtension()
Get the request URI extension, this includes everything following the first "." in the final path segment of the URI excluding any matrix parameters that might be present after the extension). The returned string includes any extensions removed during request pre-processing for the purposes of URI-based content negotiation. E.g. if the request URI was:
http://example.com/resource.xml.en

this method would return "xml.en" even if an applications implementation of ApplicationConfig.getMediaTypeMappings() returned a map that included "xml" as a key

Returns:
the request URI extension or null if there isn't one

getPathParameters

MultivaluedMap<java.lang.String,java.lang.String> getPathParameters()
Get the values of any embedded URI template parameters. All sequences of escaped octets are decoded, equivalent to getPathParameters(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, PathParam

getPathParameters

MultivaluedMap<java.lang.String,java.lang.String> getPathParameters(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, PathParam

getQueryParameters

MultivaluedMap<java.lang.String,java.lang.String> getQueryParameters()
Get the URI query parameters of the current request. All sequences of escaped octets in parameter names and values 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 in parameter names and values 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. All sequences of escaped octets are decoded, equivalent to getAncestorResourceURIs(true). 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.

getAncestorResourceURIs

java.util.List<java.lang.String> getAncestorResourceURIs(boolean decode)
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".

Parameters:
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
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.


Copyright © 2008. All Rights Reserved.