org.glassfish.jersey.server.model
Class RuntimeResource

java.lang.Object
  extended by org.glassfish.jersey.server.model.RuntimeResource
All Implemented Interfaces:
ResourceModelComponent

public class RuntimeResource
extends Object
implements ResourceModelComponent

Runtime resource is a group of resources with the same path regular expression. Runtime resource is constructed from resources creating the resource model.

Runtime resource can have child runtime resources which are groups of child resources of all resources constructing this runtime resource.

The following example shows how Runtime resource structure is built from Resource model:

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

     @Path("{x}")
     @GET
     public String getX() {...}

     @Path("{y}")
     @POST
     public String postY(String entity) {...}
 }

 @Path("{bar}")
 public class TemplateResourceBar {
     @Path("{z}")
     @PUT
     public String putZ(String entity) {...}
 }
 
Will be represented by RuntimeResources:
line RuntimeResource regex Grouped Resources (paths) Parent RuntimeResource (line)
1 "/([^/]+?)" Resource("{foo}"), Resource("{bar}") no parent
2 "child" Child Resource("child") 1
3 "/([^/]+?)" Child Resource("{x}"), Child Resource("{y}"), Child Resource("{z}") 1

Author:
Miroslav Fuksa (miroslav.fuksa at oracle.com)

Field Summary
static Comparator<RuntimeResource> COMPARATOR
          Comparator of RuntimeResources based on rules respecting resource matching algorithm.
 
Method Summary
 void accept(ResourceModelVisitor visitor)
          A component should call the visitor back with an appropriate visitor interface method to give it a chance to process.
 List<RuntimeResource> getChildRuntimeResources()
          Get child runtime resources of this resource.
 List<? extends ResourceModelComponent> getComponents()
          Should return all existing resource model sub-components.
 Resource getFirstParentResource(Resource resource)
          Return parent resource of the resource which is grouped in this runtime resource.
 String getFullPathRegex()
          Get full regular expression of this runtime resource prefixed by regular expression of parent if present.
 RuntimeResource getParent()
          Get parent of this runtime resource.
 List<Resource> getParentResources()
          Return parent resources of resources from this runtime resource.
 PathPattern getPathPattern()
          Get path pattern for matching purposes.
 String getRegex()
          Get regular expression of path pattern of this runtime resource.
 ResourceMethod getResourceLocator()
          Return the resource locator of this resource.
 List<ResourceMethod> getResourceLocators()
          Get resource locators of all resources of this runtime resource.
 List<ResourceMethod> getResourceMethods()
          Get resource methods (excluding resource locators) of all resources of this runtime resource.
 List<Resource> getResources()
          Get resources creating this runtime resource.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMPARATOR

public static final Comparator<RuntimeResource> COMPARATOR
Comparator of RuntimeResources based on rules respecting resource matching algorithm.

Method Detail

getChildRuntimeResources

public List<RuntimeResource> getChildRuntimeResources()
Get child runtime resources of this resource.

Returns:
List of child runtime resource.

getRegex

public String getRegex()
Get regular expression of path pattern of this runtime resource.

Returns:
Matching regular expression.

getResourceMethods

public List<ResourceMethod> getResourceMethods()
Get resource methods (excluding resource locators) of all resources of this runtime resource.

Returns:
List of resource methods.

getResourceLocators

public List<ResourceMethod> getResourceLocators()
Get resource locators of all resources of this runtime resource.

Note that valid RuntimeResource should have only one resource locator. This method is used for validation purposes.

Returns:
List of resource locators.

getResourceLocator

public ResourceMethod getResourceLocator()
Return the resource locator of this resource.

Returns:
Resource locator of this runtime resource.

getParent

public RuntimeResource getParent()
Get parent of this runtime resource.

Returns:
Parent runtime resource if this runtime resource is a child resource, null otherwise.

getPathPattern

public PathPattern getPathPattern()
Get path pattern for matching purposes.

Returns:
Path pattern.

getFullPathRegex

public String getFullPathRegex()
Get full regular expression of this runtime resource prefixed by regular expression of parent if present.

Returns:
Full resource regular expression.

getParentResources

public List<Resource> getParentResources()
Return parent resources of resources from this runtime resource. The returned list is ordered so that the position of the parent resource in the returned list is the same as position of its child resource in list returned by getResources(). Simply said the order of lists returned from getParentResources() and getResources() from parent-child point of view is the same. If the resource has no parent then the element null is in the list.

Returns:
Parent resource list with resources if this runtime resource is child resource or null elements if this runtime resource is the parent resource.

getFirstParentResource

public Resource getFirstParentResource(Resource resource)
Return parent resource of the resource which is grouped in this runtime resource. If a resource is present in getResources() more than one time the parent of this first resource will be returned.

Parameters:
resource - Resource whose parent should be returned.
Returns:
Parent resource or null if the resource has no parent.
Throws:
IllegalArgumentException - when resource is not in this RuntimeResource.

getResources

public List<Resource> getResources()
Get resources creating this runtime resource.

Returns:
List of resources with same path regular expression which this resource is based on.

accept

public void accept(ResourceModelVisitor visitor)
Description copied from interface: ResourceModelComponent
A component should call the visitor back with an appropriate visitor interface method to give it a chance to process.

Specified by:
accept in interface ResourceModelComponent
Parameters:
visitor - resource model visitor.

getComponents

public List<? extends ResourceModelComponent> getComponents()
Description copied from interface: ResourceModelComponent
Should return all existing resource model sub-components.

Specified by:
getComponents in interface ResourceModelComponent
Returns:
list of all sub-components


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