|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.glassfish.jersey.server.internal.routing.UriRoutingContext
public class UriRoutingContext
Default implementation of the routing context as well as URI information provider.
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 |
---|
public void pushMatchResult(MatchResult matchResult)
RoutingContext
pushMatchResult
in interface RoutingContext
matchResult
- successful request URI routing pattern
match result
.public void pushMatchedResource(Object resource)
RoutingContext
pushMatchedResource
in interface RoutingContext
resource
- instance of the resource that matched the request URI.public Object peekMatchedResource()
RoutingContext
peekMatchedResource
in interface RoutingContext
RoutingContext.pushMatchedResource(java.lang.Object)
public void pushMatchedLocator(ResourceMethod resourceLocator)
RoutingContext
sub resource locator method
.
pushMatchedLocator
in interface RoutingContext
resourceLocator
- Sub resource locator method.public void pushLeftHandPath()
RoutingContext
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.
pushLeftHandPath
in interface RoutingContext
public void pushTemplates(UriTemplate resourceTemplate, UriTemplate methodTemplate)
RoutingContext
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.
pushTemplates
in interface RoutingContext
resourceTemplate
- resource URI template that should be pushed.methodTemplate
- (sub-resource) method or locator URI template that should be pushed.public MatchResult peekMatchResult()
RoutingContext
match result
.
peekMatchResult
in interface RoutingContext
public String getFinalMatchingGroup()
RoutingContext
match result
. Also known as right-hand path.
May be empty but is never null
.
getFinalMatchingGroup
in interface RoutingContext
public LinkedList<MatchResult> getMatchedResults()
RoutingContext
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.
getMatchedResults
in interface ExtendedUriInfo
getMatchedResults
in interface RoutingContext
public void setInflector(Inflector<ContainerRequest,ContainerResponse> inflector)
RoutingContext
setInflector
in interface RoutingContext
inflector
- matched request to response inflector.public Inflector<ContainerRequest,ContainerResponse> getInflector()
RoutingContext
null
otherwise.
getInflector
in interface RoutingContext
null
if not available.public Iterable<RankedProvider<ContainerRequestFilter>> getBoundRequestFilters()
RoutingContext
getBoundRequestFilters
in interface RoutingContext
public Iterable<RankedProvider<ContainerResponseFilter>> getBoundResponseFilters()
RoutingContext
getBoundResponseFilters
in interface RoutingContext
public Iterable<ReaderInterceptor> getBoundReaderInterceptors()
RoutingContext
getBoundReaderInterceptors
in interface RoutingContext
public Iterable<WriterInterceptor> getBoundWriterInterceptors()
RoutingContext
getBoundWriterInterceptors
in interface RoutingContext
public void setMatchedResourceMethod(ResourceMethod resourceMethod)
RoutingContext
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.
setMatchedResourceMethod
in interface RoutingContext
resourceMethod
- Resource method that was matched.public void pushMatchedRuntimeResource(RuntimeResource runtimeResource)
RoutingContext
runtime resource
that was visited during matching phase. This method must
be called for any matched runtime resource.
pushMatchedRuntimeResource
in interface RoutingContext
runtimeResource
- Runtime resource that was matched during matching.public void pushLocatorSubResource(Resource subResourceFromLocator)
RoutingContext
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.
pushLocatorSubResource
in interface RoutingContext
subResourceFromLocator
- Resource constructed from result of sub resource locator method.public URI getAbsolutePath()
UriInfo
uriInfo.getBaseUri().resolve(uriInfo.getPath(false))
.
getAbsolutePath
in interface UriInfo
public UriBuilder getAbsolutePathBuilder()
UriInfo
getAbsolutePathBuilder
in interface UriInfo
public URI getBaseUri()
UriInfo
getBaseUri
in interface UriInfo
public UriBuilder getBaseUriBuilder()
UriInfo
getBaseUriBuilder
in interface UriInfo
public List<Object> getMatchedResources()
UriInfo
@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 |
getMatchedResources
in interface UriInfo
public List<String> getMatchedURIs()
UriInfo
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 |
getMatchedURIs
in interface UriInfo
public List<String> getMatchedURIs(boolean decode)
UriInfo
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.
getMatchedURIs
in interface UriInfo
decode
- controls whether sequences of escaped octets are decoded
(true
) or not (false
).
public String getPath()
UriInfo
getPath(true)
.
getPath
in interface UriInfo
public String getPath(boolean decode)
UriInfo
getPath
in interface UriInfo
decode
- controls whether sequences of escaped octets are decoded
(true
) or not (false
).
public MultivaluedMap<String,String> getPathParameters()
UriInfo
getPathParameters(true)
.
getPathParameters
in interface UriInfo
Path
,
PathParam
public MultivaluedMap<String,String> getPathParameters(boolean decode)
UriInfo
getPathParameters
in interface UriInfo
decode
- controls whether sequences of escaped octets are decoded
(true
) or not (false
).
Path
,
PathParam
public List<PathSegment> getPathSegments()
UriInfo
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)
.
getPathSegments
in interface UriInfo
PathSegment
. The matrix parameter
map of each path segment is also unmodifiable.PathSegment
,
Matrix URIspublic List<PathSegment> getPathSegments(boolean decode)
UriInfo
PathSegment
. This method is useful when the path needs to be parsed,
particularly when matrix parameters may be present in the path.
getPathSegments
in interface UriInfo
decode
- controls whether sequences of escaped octets in path segments
and matrix parameter values are decoded (true
) or not (false
).
PathSegment
. The matrix parameter
map of each path segment is also unmodifiable.PathSegment
,
Matrix URIspublic MultivaluedMap<String,String> getQueryParameters()
UriInfo
getQueryParameters(true)
.
getQueryParameters
in interface UriInfo
public MultivaluedMap<String,String> getQueryParameters(boolean decode)
UriInfo
getQueryParameters
in interface UriInfo
decode
- controls whether sequences of escaped octets in parameter
names and values are decoded (true
) or not (false
).
public void invalidateUriComponentViews()
This method needs to be called if request URI information changes.
public URI getRequestUri()
UriInfo
getRequestUri
in interface UriInfo
public UriBuilder getRequestUriBuilder()
UriInfo
getRequestUriBuilder
in interface UriInfo
public Throwable getMappedThrowable()
ExtendedUriInfo
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.
getMappedThrowable
in interface ExtendedUriInfo
public List<UriTemplate> getMatchedTemplates()
ExtendedUriInfo
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.
getMatchedTemplates
in interface ExtendedUriInfo
public List<PathSegment> getPathSegments(String name)
ExtendedUriInfo
getPathSegments(true)
.
getPathSegments
in interface ExtendedUriInfo
name
- the template variable name
public List<PathSegment> getPathSegments(String name, boolean decode)
ExtendedUriInfo
getPathSegments
in interface ExtendedUriInfo
name
- the template variable namedecode
- controls whether sequences of escaped octets are decoded
(true) or not (false).
public Method getResourceMethod()
ResourceInfo
null
if this information is not available.
getResourceMethod
in interface ResourceInfo
ResourceInfo.getResourceClass()
public Class<?> getResourceClass()
ResourceInfo
null
if this information is not available.
getResourceClass
in interface ResourceInfo
ResourceInfo.getResourceMethod()
public List<RuntimeResource> getMatchedRuntimeResources()
ExtendedUriInfo
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"] |
getMatchedRuntimeResources
in interface ExtendedUriInfo
public ResourceMethod getMatchedResourceMethod()
ExtendedUriInfo
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.
getMatchedResourceMethod
in interface ExtendedUriInfo
public List<ResourceMethod> getMatchedResourceLocators()
ExtendedUriInfo
The resource locator is
a resource method
which is annotated by the @Path
and returns a sub resource.
getMatchedResourceLocators
in interface ExtendedUriInfo
public List<Resource> getLocatorSubResources()
ExtendedUriInfo
getLocatorSubResources
in interface ExtendedUriInfo
public Resource getMatchedModelResource()
ExtendedUriInfo
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).
getMatchedModelResource
in interface ExtendedUriInfo
public URI resolve(URI uri)
UriInfo
resolve
in interface UriInfo
uri
- URI to resolve against the base URI of the application.
public URI relativize(URI uri)
UriInfo
Relativize a URI with respect to the current request URI. Relativization works as follows:
UriInfo.resolve(java.net.URI)
.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.
relativize
in interface UriInfo
uri
- URI to relativize against the request URI.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |