org.glassfish.jersey.server.internal.routing
Class UriRoutingContext

java.lang.Object
  extended by org.glassfish.jersey.server.internal.routing.UriRoutingContext
All Implemented Interfaces:
ResourceInfo, UriInfo, ExtendedUriInfo, RoutingContext

public class UriRoutingContext
extends Object
implements RoutingContext, ExtendedUriInfo

Default implementation of the routing context as well as URI information provider.

Author:
Marek Potociar (marek.potociar at oracle.com)

Method Summary
 URI getAbsolutePath()
          Get the absolute path of the request.
 UriBuilder getAbsolutePathBuilder()
          Get the absolute path of the request in the form of a UriBuilder.
 URI getBaseUri()
          Get the base URI of the application.
 UriBuilder getBaseUriBuilder()
          Get the base URI of the application in the form of a UriBuilder.
 Iterable<ReaderInterceptor> getBoundReaderInterceptors()
          Get all reader interceptors applicable to this request.
 Iterable<RankedProvider<ContainerRequestFilter>> getBoundRequestFilters()
          Get all bound request filters applicable to this request.
 Iterable<RankedProvider<ContainerResponseFilter>> getBoundResponseFilters()
          Get all bound response filters applicable to this request.
 Iterable<WriterInterceptor> getBoundWriterInterceptors()
          Get all writer interceptors applicable to this request.
 String getFinalMatchingGroup()
          Get the final matching group of the last successful request URI routing pattern match result.
 Inflector<ContainerRequest,ContainerResponse> getInflector()
          Get the matched request to response data inflector if present, or null otherwise.
 List<Resource> getLocatorSubResources()
          Get the list of sub resources returned from resource locators during matching.
 Throwable getMappedThrowable()
          Get the throwable that was mapped to a response.
 Resource getMatchedModelResource()
          Get matched model resource from which the matched resource method was invoked.
 List<ResourceMethod> getMatchedResourceLocators()
          Get resource locators matched since beginning of a matching.
 ResourceMethod getMatchedResourceMethod()
          Get matched resource method that is invoked.
 List<Object> getMatchedResources()
          Get a read-only list of the currently matched resource class instances.
 LinkedList<MatchResult> getMatchedResults()
          Get a read-only list of match results for matched request URI routing patterns.
 List<RuntimeResource> getMatchedRuntimeResources()
          Return all matched runtime resources including runtime resources based on child resources.
 List<UriTemplate> getMatchedTemplates()
          Get a read-only list of UriTemplate for matched resources.
 List<String> getMatchedURIs()
          Get a read-only list of URIs for matched resources.
 List<String> getMatchedURIs(boolean decode)
          Get a read-only list of URIs for matched resources.
 String getPath()
          Get the path of the current request relative to the base URI as a string.
 String getPath(boolean decode)
          Get the path of the current request relative to the base URI as a string.
 MultivaluedMap<String,String> getPathParameters()
          Get the values of any embedded URI template parameters.
 MultivaluedMap<String,String> getPathParameters(boolean decode)
          Get the values of any embedded URI template parameters.
 List<PathSegment> getPathSegments()
          Get the path of the current request relative to the base URI as a list of PathSegment.
 List<PathSegment> getPathSegments(boolean decode)
          Get the path of the current request relative to the base URI as a list of PathSegment.
 List<PathSegment> getPathSegments(String name)
          Get the path segments that contain a template variable.
 List<PathSegment> getPathSegments(String name, boolean decode)
          Get the path segments that contain a template variable.
 MultivaluedMap<String,String> getQueryParameters()
          Get the URI query parameters of the current request.
 MultivaluedMap<String,String> getQueryParameters(boolean decode)
          Get the URI query parameters of the current request.
 URI getRequestUri()
          Get the absolute request URI including any query parameters.
 UriBuilder getRequestUriBuilder()
          Get the absolute request URI in the form of a UriBuilder.
 Class<?> getResourceClass()
          Get the resource class that is the target of a request, or null if this information is not available.
 Method getResourceMethod()
          Get the resource method that is the target of a request, or null if this information is not available.
 void invalidateUriComponentViews()
          Invalidate internal URI component cache views.
 Object peekMatchedResource()
          Peek the last resource object that successfully matched the request URI.
 MatchResult peekMatchResult()
          Peek at the last successful request URI routing pattern match result.
 void pushLeftHandPath()
          Add currently matched left-hand side part of request path to the list of matched paths returned by UriInfo.getMatchedURIs().
 void pushLocatorSubResource(Resource subResourceFromLocator)
          Push sub resource returned from a sub resource locator method.
 void pushMatchedLocator(ResourceMethod resourceLocator)
          Push the matched sub resource locator method.
 void pushMatchedResource(Object resource)
          Push the resource that matched the request URI.
 void pushMatchedRuntimeResource(RuntimeResource runtimeResource)
          Push a matched runtime resource that was visited during matching phase.
 void pushMatchResult(MatchResult matchResult)
          Push the result of the successful request URI routing pattern match.
 void pushTemplates(UriTemplate resourceTemplate, UriTemplate methodTemplate)
          Push matched request URI routing pattern templates for a single matched method.
 URI relativize(URI uri)
          Relativize a URI with respect to the current request URI.
 URI resolve(URI uri)
          Resolve a relative URI with respect to the base URI of the application.
 void setInflector(Inflector<ContainerRequest,ContainerResponse> inflector)
          Set the matched request to response inflector.
 void setMatchedResourceMethod(ResourceMethod resourceMethod)
          Set the matched resource method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

pushMatchResult

public void pushMatchResult(MatchResult matchResult)
Description copied from interface: RoutingContext
Push the result of the successful request URI routing pattern match.

Specified by:
pushMatchResult in interface RoutingContext
Parameters:
matchResult - successful request URI routing pattern match result.

pushMatchedResource

public void pushMatchedResource(Object resource)
Description copied from interface: RoutingContext
Push the resource that matched the request URI.

Specified by:
pushMatchedResource in interface RoutingContext
Parameters:
resource - instance of the resource that matched the request URI.

peekMatchedResource

public Object peekMatchedResource()
Description copied from interface: RoutingContext
Peek the last resource object that successfully matched the request URI.

Specified by:
peekMatchedResource in interface RoutingContext
Returns:
last resource matched as previously set by RoutingContext.pushMatchedResource(java.lang.Object)

pushMatchedLocator

public void pushMatchedLocator(ResourceMethod resourceLocator)
Description copied from interface: RoutingContext
Push the matched sub resource locator method.

Specified by:
pushMatchedLocator in interface RoutingContext
Parameters:
resourceLocator - Sub resource locator method.

pushLeftHandPath

public void pushLeftHandPath()
Description copied from interface: RoutingContext
Add currently matched left-hand side part of request path to the list of matched paths returned by UriInfo.getMatchedURIs().

Left-hand side request path is the request path excluding the suffix part of the path matched by the final matching group of the last successful request URI routing pattern.

Specified by:
pushLeftHandPath in interface RoutingContext

pushTemplates

public void pushTemplates(UriTemplate resourceTemplate,
                          UriTemplate methodTemplate)
Description copied from interface: RoutingContext
Push matched request URI routing pattern templates for a single matched method.

In case only a single path matching has been performed on the resource (in case of resource methods, only the resource path is matched), the method template should be passed as null. In case a path matching has been performed on both a resource and method paths (in case of sub-resource methods and locators), both templates (resource and method) must be specified.

Specified by:
pushTemplates in interface RoutingContext
Parameters:
resourceTemplate - resource URI template that should be pushed.
methodTemplate - (sub-resource) method or locator URI template that should be pushed.

peekMatchResult

public MatchResult peekMatchResult()
Description copied from interface: RoutingContext
Peek at the last successful request URI routing pattern match result.

Specified by:
peekMatchResult in interface RoutingContext
Returns:
last successful request URI routing pattern match result.

getFinalMatchingGroup

public String getFinalMatchingGroup()
Description copied from interface: RoutingContext
Get the final matching group of the last successful request URI routing pattern match result. Also known as right-hand path.

May be empty but is never null.

Specified by:
getFinalMatchingGroup in interface RoutingContext
Returns:
final matching group of the last successful request URI routing pattern match result.

getMatchedResults

public LinkedList<MatchResult> getMatchedResults()
Description copied from interface: RoutingContext
Get a read-only list of match results for matched request URI routing patterns. Entries are ordered in reverse request URI matching order, with the root request URI routing pattern match result last.

Specified by:
getMatchedResults in interface ExtendedUriInfo
Specified by:
getMatchedResults in interface RoutingContext
Returns:
a read-only reverse list of request URI routing pattern match results.

setInflector

public void setInflector(Inflector<ContainerRequest,ContainerResponse> inflector)
Description copied from interface: RoutingContext
Set the matched request to response inflector.

This method can be used in a non-terminal stage to set the inflector that can be retrieved and processed by a subsequent stage.

Specified by:
setInflector in interface RoutingContext
Parameters:
inflector - matched request to response inflector.

getInflector

public Inflector<ContainerRequest,ContainerResponse> getInflector()
Description copied from interface: RoutingContext
Get the matched request to response data inflector if present, or null otherwise.

Specified by:
getInflector in interface RoutingContext
Returns:
matched request to response inflector, or null if not available.

getBoundRequestFilters

public Iterable<RankedProvider<ContainerRequestFilter>> getBoundRequestFilters()
Description copied from interface: RoutingContext
Get all bound request filters applicable to this request.

Specified by:
getBoundRequestFilters in interface RoutingContext
Returns:
All bound (dynamically or by name) request filters applicable to the matched inflector (or an empty collection if no inflector matched yet).

getBoundResponseFilters

public Iterable<RankedProvider<ContainerResponseFilter>> getBoundResponseFilters()
Description copied from interface: RoutingContext
Get all bound response filters applicable to this request. This is populated once the right resource method is matched.

Specified by:
getBoundResponseFilters in interface RoutingContext
Returns:
All bound (dynamically or by name) response filters applicable to the matched inflector (or an empty collection if no inflector matched yet).

getBoundReaderInterceptors

public Iterable<ReaderInterceptor> getBoundReaderInterceptors()
Description copied from interface: RoutingContext
Get all reader interceptors applicable to this request. This is populated once the right resource method is matched.

Specified by:
getBoundReaderInterceptors in interface RoutingContext
Returns:
All reader interceptors applicable to the matched inflector (or an empty collection if no inflector matched yet).

getBoundWriterInterceptors

public Iterable<WriterInterceptor> getBoundWriterInterceptors()
Description copied from interface: RoutingContext
Get all writer interceptors applicable to this request.

Specified by:
getBoundWriterInterceptors in interface RoutingContext
Returns:
All writer interceptors applicable to the matched inflector (or an empty collection if no inflector matched yet).

setMatchedResourceMethod

public void setMatchedResourceMethod(ResourceMethod resourceMethod)
Description copied from interface: RoutingContext
Set the matched resource method. This method needs to be called only if the method was matched. This method should be called only for setting the final resource method and not for setting sub resource locators invoked during matching.

Specified by:
setMatchedResourceMethod in interface RoutingContext
Parameters:
resourceMethod - Resource method that was matched.

pushMatchedRuntimeResource

public void pushMatchedRuntimeResource(RuntimeResource runtimeResource)
Description copied from interface: RoutingContext
Push a matched runtime resource that was visited during matching phase. This method must be called for any matched runtime resource.

Specified by:
pushMatchedRuntimeResource in interface RoutingContext
Parameters:
runtimeResource - Runtime resource that was matched during matching.

pushLocatorSubResource

public void pushLocatorSubResource(Resource subResourceFromLocator)
Description copied from interface: RoutingContext
Push sub resource returned from a sub resource locator method. The pushed subResourceFromLocator is the final model of a sub resource which is already enhanced by model processors and validated.

Specified by:
pushLocatorSubResource in interface RoutingContext
Parameters:
subResourceFromLocator - Resource constructed from result of sub resource locator method.

getAbsolutePath

public URI getAbsolutePath()
Description copied from interface: UriInfo
Get the absolute path of the request. This includes everything preceding the path (host, port etc) but excludes query parameters. This is a shortcut for uriInfo.getBaseUri().resolve(uriInfo.getPath(false)).

Specified by:
getAbsolutePath in interface UriInfo
Returns:
the absolute path of the request.

getAbsolutePathBuilder

public UriBuilder getAbsolutePathBuilder()
Description copied from interface: UriInfo
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.

Specified by:
getAbsolutePathBuilder in interface UriInfo
Returns:
a UriBuilder initialized with the absolute path of the request.

getBaseUri

public URI getBaseUri()
Description copied from interface: UriInfo
Get the base URI of the application. URIs of root resource classes are all relative to this base URI.

Specified by:
getBaseUri in interface UriInfo
Returns:
the base URI of the application.

getBaseUriBuilder

public UriBuilder getBaseUriBuilder()
Description copied from interface: UriInfo
Get the base URI of the application in the form of a UriBuilder.

Specified by:
getBaseUriBuilder in interface UriInfo
Returns:
a UriBuilder initialized with the base URI of the application.

getMatchedResources

public List<Object> getMatchedResources()
Description copied from interface: UriInfo
Get a read-only list of the currently matched resource class instances. Each entry is a resource class instance that matched the request URI either directly or via a sub-resource method or a sub-resource locator. Entries are ordered according to reverse request URI matching order, with the current resource first. E.g. given the following resource classes:
@Path("foo")
 public class FooResource {
  @GET
  public String getFoo() {...}

  @Path("bar")
  public BarResource getBarResource() {...}
 }

 public class BarResource {
  @GET
  public String getBar() {...}
 }
 

The values returned by this method based on request uri and where the method is called from are:

Request Called from Value(s)
GET /foo FooResource.getFoo FooResource
GET /foo/bar FooResource.getBarResource FooResource
GET /foo/bar BarResource.getBar BarResource, FooResource
In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an empty list.

Specified by:
getMatchedResources in interface UriInfo
Returns:
a read-only list of matched resource class instances.

getMatchedURIs

public List<String> getMatchedURIs()
Description copied from interface: UriInfo
Get a read-only list of URIs for matched resources. Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. All sequences of escaped octets are decoded, equivalent to getMatchedURIs(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 current resource URI first. E.g. given the following resource classes:
@Path("foo")
 public class FooResource {
  @GET
  public String getFoo() {...}

  @Path("bar")
  public BarResource getBarResource() {...}
 }

 public class BarResource {
  @GET
  public String getBar() {...}
 }
 

The values returned by this method based on request uri and where the method is called from are:

Request Called from Value(s)
GET /foo FooResource.getFoo foo
GET /foo/bar FooResource.getBarResource foo/bar, foo
GET /foo/bar BarResource.getBar foo/bar, foo
In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an empty list.

Specified by:
getMatchedURIs in interface UriInfo
Returns:
a read-only list of URI paths for matched resources.

getMatchedURIs

public List<String> getMatchedURIs(boolean decode)
Description copied from interface: UriInfo
Get a read-only list of URIs for matched resources. Each entry is a relative URI 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 current resource URI first. See UriInfo.getMatchedURIs() for an example. In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an empty list.

Specified by:
getMatchedURIs in interface UriInfo
Parameters:
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
Returns:
a read-only list of URI paths for matched resources.

getPath

public String getPath()
Description copied from interface: UriInfo
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).

Specified by:
getPath in interface UriInfo
Returns:
the relative URI path.

getPath

public String getPath(boolean decode)
Description copied from interface: UriInfo
Get the path of the current request relative to the base URI as a string.

Specified by:
getPath in interface UriInfo
Parameters:
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
Returns:
the relative URI path

getPathParameters

public MultivaluedMap<String,String> getPathParameters()
Description copied from interface: UriInfo
Get the values of any embedded URI template parameters. All sequences of escaped octets are decoded, equivalent to getPathParameters(true).

Specified by:
getPathParameters in interface UriInfo
Returns:
an unmodifiable map of parameter names and values.
See Also:
Path, PathParam

getPathParameters

public MultivaluedMap<String,String> getPathParameters(boolean decode)
Description copied from interface: UriInfo
Get the values of any embedded URI template parameters.

Specified by:
getPathParameters in interface UriInfo
Parameters:
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
Returns:
an unmodifiable map of parameter names and values
See Also:
Path, PathParam

getPathSegments

public List<PathSegment> getPathSegments()
Description copied from interface: UriInfo
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 parameter values are decoded, equivalent to getPathSegments(true).

Specified by:
getPathSegments in interface UriInfo
Returns:
an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also unmodifiable.
See Also:
PathSegment, Matrix URIs

getPathSegments

public List<PathSegment> getPathSegments(boolean decode)
Description copied from interface: UriInfo
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.

Specified by:
getPathSegments in interface UriInfo
Parameters:
decode - controls whether sequences of escaped octets in path segments and matrix parameter values are decoded (true) or not (false).
Returns:
an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also unmodifiable.
See Also:
PathSegment, Matrix URIs

getQueryParameters

public MultivaluedMap<String,String> getQueryParameters()
Description copied from interface: UriInfo
Get the URI query parameters of the current request. The map keys are the names of the query parameters with any escaped characters decoded. All sequences of escaped octets in parameter names and values are decoded, equivalent to getQueryParameters(true).

Specified by:
getQueryParameters in interface UriInfo
Returns:
an unmodifiable map of query parameter names and values.

getQueryParameters

public MultivaluedMap<String,String> getQueryParameters(boolean decode)
Description copied from interface: UriInfo
Get the URI query parameters of the current request. The map keys are the names of the query parameters with any escaped characters decoded.

Specified by:
getQueryParameters in interface UriInfo
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.

invalidateUriComponentViews

public void invalidateUriComponentViews()
Invalidate internal URI component cache views.

This method needs to be called if request URI information changes.


getRequestUri

public URI getRequestUri()
Description copied from interface: UriInfo
Get the absolute request URI including any query parameters.

Specified by:
getRequestUri in interface UriInfo
Returns:
the absolute request URI

getRequestUriBuilder

public UriBuilder getRequestUriBuilder()
Description copied from interface: UriInfo
Get the absolute request URI in the form of a UriBuilder.

Specified by:
getRequestUriBuilder in interface UriInfo
Returns:
a UriBuilder initialized with the absolute request URI.

getMappedThrowable

public Throwable getMappedThrowable()
Description copied from interface: ExtendedUriInfo
Get the throwable that was mapped to a response.

A response filter or a message body writer may utilize this method to determine if a resource method was invoked but did not return a response because an exception was thrown from the resource method, or the resource method returned but a response filter threw an exception.

Specified by:
getMappedThrowable in interface ExtendedUriInfo
Returns:
the throwable that was mapped to a response, otherwise null if no throwable was mapped to a response.

getMatchedTemplates

public List<UriTemplate> getMatchedTemplates()
Description copied from interface: ExtendedUriInfo
Get a read-only list of UriTemplate for matched resources. Each entry is a URI template that is the value of the Path that is a partial path that matched a resource class, a sub-resource method or a sub-resource locator. Entries are ordered in reverse request URI matching order, with the root resource URI template last.

Specified by:
getMatchedTemplates in interface ExtendedUriInfo
Returns:
a read-only list of URI templates for matched resources.

getPathSegments

public List<PathSegment> getPathSegments(String name)
Description copied from interface: ExtendedUriInfo
Get the path segments that contain a template variable. All sequences of escaped octets are decoded, equivalent to getPathSegments(true).

Specified by:
getPathSegments in interface ExtendedUriInfo
Parameters:
name - the template variable name
Returns:
the path segments, the list will be empty the matching path does not contain the template

getPathSegments

public List<PathSegment> getPathSegments(String name,
                                         boolean decode)
Description copied from interface: ExtendedUriInfo
Get the path segments that contain a template variable.

Specified by:
getPathSegments in interface ExtendedUriInfo
Parameters:
name - the template variable name
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
Returns:
the path segments, the list will be empty the matching path does not contain the template

getResourceMethod

public Method getResourceMethod()
Description copied from interface: ResourceInfo
Get the resource method that is the target of a request, or null if this information is not available.

Specified by:
getResourceMethod in interface ResourceInfo
Returns:
resource method instance or null
See Also:
ResourceInfo.getResourceClass()

getResourceClass

public Class<?> getResourceClass()
Description copied from interface: ResourceInfo
Get the resource class that is the target of a request, or null if this information is not available.

Specified by:
getResourceClass in interface ResourceInfo
Returns:
resource class instance or null
See Also:
ResourceInfo.getResourceMethod()

getMatchedRuntimeResources

public List<RuntimeResource> getMatchedRuntimeResources()
Description copied from interface: ExtendedUriInfo
Return all matched runtime resources including runtime resources based on child resources. The list is ordered so that the runtime resource currently being processed is the first element in the list.

The following example

@Path("foo")
 public class FooResource {
  @GET
  public String getFoo() {...}

  @Path("bar")
  public BarResource getBarResource() {...}
 }

 public class BarResource {
  @GET
  public String getBar() {...}
 }
 

The values returned by this method based on request uri and where the method is called from are:

Request Called from Value(s)
GET /foo FooResource.getFoo RuntimeResource["/foo"]
GET /foo/bar FooResource.getBarResource RuntimeResource["foo/bar"], Resource["foo"]
GET /foo/bar BarResource.getBar RuntimeResource[no path; based on BarResource.class], RuntimeResource["foo/bar"], RuntimeResource["foo"]

Specified by:
getMatchedRuntimeResources in interface ExtendedUriInfo
Returns:
List of resources and child resources that were processed during request matching.

getMatchedResourceMethod

public ResourceMethod getMatchedResourceMethod()
Description copied from interface: ExtendedUriInfo
Get matched resource method that is invoked.

Note that sub resource locator is not not considered as a matched resource method and calling the method from sub resource locator will therefore return null.

Specified by:
getMatchedResourceMethod in interface ExtendedUriInfo
Returns:
The matched resource method that was invoked or null if no resource method was invoked.

getMatchedResourceLocators

public List<ResourceMethod> getMatchedResourceLocators()
Description copied from interface: ExtendedUriInfo
Get resource locators matched since beginning of a matching. The list contains resource locators sorted in the order that the first element of the list is the last locator executed (LIFO ordering). The method can be invoked from request scoped code. When method is invoked from the resource locator itself such a locator will be already in the returned list as a first element.

The resource locator is a resource method which is annotated by the @Path and returns a sub resource.

Specified by:
getMatchedResourceLocators in interface ExtendedUriInfo
Returns:
List of matched resource locators.

getLocatorSubResources

public List<Resource> getLocatorSubResources()
Description copied from interface: ExtendedUriInfo
Get the list of sub resources returned from resource locators during matching. The sub resources are sorted in the order, so that the first element of the list is a sub resource that was lastly returned from the resource locator (LIFO ordering).

Sub resource is a resource that is returned from invoked resource locator method and that will be used for further resource matching.

Specified by:
getLocatorSubResources in interface ExtendedUriInfo
Returns:
Locator sub resource.

getMatchedModelResource

public Resource getMatchedModelResource()
Description copied from interface: ExtendedUriInfo
Get matched model resource from which the matched resource method was invoked. The resource can also be a child if the matched method is a sub resource method.

Note that method return only resource containing finally matched resource method and not intermediary processed resources (parent resources or resources containing sub resource locators).

Specified by:
getMatchedModelResource in interface ExtendedUriInfo
Returns:
The matched model resource or null if no resource was matched.

resolve

public URI resolve(URI uri)
Description copied from interface: UriInfo
Resolve a relative URI with respect to the base URI of the application. The resolved URI returned by this method is normalized. If the supplied URI is already resolved, it is just returned.

Specified by:
resolve in interface UriInfo
Parameters:
uri - URI to resolve against the base URI of the application.
Returns:
newly resolved URI or supplied URI if already resolved.

relativize

public URI relativize(URI uri)
Description copied from interface: UriInfo

Relativize a URI with respect to the current request URI. Relativization works as follows:

  1. If the URI to relativize is already relative, it is first resolved using UriInfo.resolve(java.net.URI).
  2. The resulting URI is relativized with respect to the current request URI. If the two URIs do not share a prefix, the URI computed in step 1 is returned.

Examples (for base URI http://example.com:8080/app/root/):

Request URI: http://example.com:8080/app/root/a/b/c/resource.html
Supplied URI: a/b/c/d/file.txt
Returned URI: d/file.txt

Request URI: http://example.com:8080/app/root/a/b/c/resource.html
Supplied URI: http://example2.com:9090/app2/root2/a/d/file.txt
Returned URI: http://example2.com:9090/app2/root2/a/d/file.txt

In the second example, the supplied URI is returned given that it is absolute and there is no common prefix between it and the request URI.

Specified by:
relativize in interface UriInfo
Parameters:
uri - URI to relativize against the request URI.
Returns:
newly relativized URI.


Copyright © 2007-2014, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.