Class Resource
- All Implemented Interfaces:
 ResourceModelComponent,Routed
 Resource component model represents a collection of methods
 grouped under the same parent request path template. Resource class is also
 the main entry point to the programmatic resource modeling API that provides ability
 to programmatically extend the existing JAX-RS annotated resource classes or build
 new resource models that may be utilized by Jersey runtime.
 
For example:
 @Path("hello")
 public class HelloResource {
      @GET
      @Produces("text/plain")
      public String sayHello() {
          return "Hello!";
      }
 }
 ...
 // Register the annotated resource.
 ResourceConfig resourceConfig = new ResourceConfig(HelloResource.class);
 // Add new "hello2" resource using the annotated resource class
 // and overriding the resource path.
 Resource.Builder resourceBuilder =
         Resource.builder(HelloResource.class, new LinkedList<ResourceModelIssue>())
         .path("hello2");
 // Add a new (virtual) sub-resource method to the "hello2" resource.
 resourceBuilder.addChildResource("world").addMethod("GET")
         .produces("text/plain")
         .handledBy(new Inflector<Request, String>() {
                 @Override
                 public String apply(Request request) {
                     return "Hello World!";
                 }
         });
 // Register the new programmatic resource in the application's configuration.
 resourceConfig.registerResources(resourceBuilder.build());
 
 The following table illustrates the supported requests and provided responses
 for the application configured in the example above.
 | Request | Response | Method invoked | 
|---|---|---|
"GET /hello" | "Hello!" | HelloResource.sayHello() | 
 
"GET /hello2" | "Hello!" | HelloResource.sayHello() | 
 
"GET /hello2/world" | "Hello World!" | Inflector.apply() | 
 
- Author:
 - Marek Potociar, Miroslav Fuksa
 
- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classResource model component builder. - 
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(ResourceModelVisitor visitor) A component should call the visitor back with an appropriate visitor interface method to give it a chance to process.static Resource.Builderbuilder()Get a new unbound resource model builder.static Resource.BuilderCreate a resource model builder initialized by introspecting an annotated JAX-RS resource class.static Resource.BuilderCreate a resource model builder initialized by introspecting an annotated JAX-RS resource class.static Resource.BuilderGet a new resource model builder for a resource bound to a given path.static Resource.BuilderCreates aresource builderinstance from the list ofresourcewhich can be merged into a single resource.static Resource.BuilderGet a new resource model builder initialized from a given resource model.static ResourceCreate a resource model initialized by introspecting an annotated JAX-RS resource class.static ResourceCreate a resource model initialized by introspecting an annotated JAX-RS resource class.Provides resource methods and resource locator are available on the resource.Returns the list of child resources available on this resource.List<? extends ResourceModelComponent>Should return all existing resource model sub-components.Get the method handler classes for the resource methods registered on the resource.Get the method handler (singleton) instances for the resource methods registered on the resource.getName()Get the resource name.getNames()Return a list of resource names.Get the parent resource for this resource model ornullin case this resource is a top-level resource and does not have a parent.getPath()Get the path direct assigned to the component.static PathGet the resource class@Pathannotation.Get the path pattern that can be used for matching the remaining request URI against this component represented by this model.Provides a resource locator available on the resource.Provides a non-null list of resource methods available on the resource.static booleanisAcceptable(Class<?> c) Check if the class is acceptable as a JAX-RS provider or resource.booleanGet the flag indicating whether the resource is extended.toString() 
- 
Method Details
- 
builder
Get a new unbound resource model builder.- Returns:
 - new unbound resource model builder.
 - See Also:
 
 - 
builder
Get a new resource model builder for a resource bound to a given path.- Parameters:
 path- resource path.- Returns:
 - new resource model builder.
 - See Also:
 
 - 
builder
Creates aresource builderinstance from the list ofresourcewhich can be merged into a single resource. It must be possible to merge theresourcesinto a single valid resource. For example all resources must have the samepath, they cannot have ambiguous methods on the same path, etc.- Parameters:
 resources- Resources with the same path.- Returns:
 - Resource builder initialized from merged resources.
 
 - 
builder
Create a resource model builder initialized by introspecting an annotated JAX-RS resource class.- Parameters:
 resourceClass- resource class to be modelled.- Returns:
 - resource model builder initialized by the class or 
nullif the class does not represent a resource. 
 - 
builder
Create a resource model builder initialized by introspecting an annotated JAX-RS resource class.- Parameters:
 resourceClass- resource class to be modelled.disableValidation- if set totrue, then any model validation checks will be disabled.- Returns:
 - resource model builder initialized by the class or 
nullif the class does not represent a resource. 
 - 
from
Create a resource model initialized by introspecting an annotated JAX-RS resource class.- Parameters:
 resourceClass- resource class to be modelled.- Returns:
 - resource model initialized by the class or 
nullif the class does not represent a resource. 
 - 
from
Create a resource model initialized by introspecting an annotated JAX-RS resource class.- Parameters:
 resourceClass- resource class to be modelled.disableValidation- if set totrue, then any model validation checks will be disabled.- Returns:
 - resource model initialized by the class or 
nullif the class does not represent a resource. 
 - 
isAcceptable
Check if the class is acceptable as a JAX-RS provider or resource. Method returnsfalseif the class is either- abstract
 - interface
 - annotation
 - primitive
 - local class
 - non-static member class
 
- Parameters:
 c- class to be checked.- Returns:
 trueif the class is an acceptable JAX-RS provider or resource,falseotherwise.
 - 
getPath
Get the resource class@Pathannotation. May returnnullin case there is no@Pathannotation on the resource.- Parameters:
 resourceClass- resource class.- Returns:
 @Pathannotation instance if present on the resource class (i.e. the class is a root resource class), ornullotherwise.
 - 
builder
Get a new resource model builder initialized from a given resource model.- Parameters:
 resource- resource model initializing the resource builder.- Returns:
 - new resource model builder.
 
 - 
getPath
Description copied from interface:RoutedGet the path direct assigned to the component. - 
getPathPattern
Description copied from interface:RoutedGet the path pattern that can be used for matching the remaining request URI against this component represented by this model.- Specified by:
 getPathPatternin interfaceRouted- Returns:
 - component path pattern.
 
 - 
getParent
Get the parent resource for this resource model ornullin case this resource is a top-level resource and does not have a parent.- Returns:
 - parent resource or 
nullif the resource does not have a parent. - Since:
 - 2.1
 
 - 
getName
Get the resource name. If the resource was constructed from a JAX-RS annotated resource class, the resource name will be set to thefully-qualified nameof the resource class.- Returns:
 - reference JAX-RS resource handler class.
 
 - 
getNames
Return a list of resource names.- Returns:
 - a list of resource names.
 
 - 
getResourceMethods
Provides a non-null list of resource methods available on the resource.- Returns:
 - non-null abstract resource method list.
 
 - 
getResourceLocator
Provides a resource locator available on the resource.- Returns:
 - Resource locator if it is present, null otherwise.
 
 - 
getAllMethods
Provides resource methods and resource locator are available on the resource. The list is ordered so that resource methods are positioned first before resource locator.- Returns:
 - List of resource methods and resource locator.
 
 - 
getChildResources
Returns the list of child resources available on this resource.- Returns:
 - Non-null list of child resources (may be empty).
 
 - 
getHandlerClasses
Get the method handler classes for the resource methods registered on the resource.- Returns:
 - resource method handler classes.
 
 - 
getHandlerInstances
Get the method handler (singleton) instances for the resource methods registered on the resource.- Returns:
 - resource method handler instances.
 
 - 
accept
Description copied from interface:ResourceModelComponentA component should call the visitor back with an appropriate visitor interface method to give it a chance to process.- Specified by:
 acceptin interfaceResourceModelComponent- Parameters:
 visitor- resource model visitor.
 - 
isExtended
public boolean isExtended()Get the flag indicating whether the resource is extended. I.e. it is not part of the resource set that forms the REST API explicitly defined by the application developer (resource classes and instances returned from theApplicationsubclass getters).Extended resource model components are helper components that are not part of the explicitly defined REST API of a JAX-RS application, instead they are generated by Jersey runtime. For example, extended resource model components include
OPTIONSresource methodsautomatically generated by Jerseyresource model processorsorapplication.wadlresource API that exposes the application WADL descriptor.- Returns:
 trueif the resource is part of the application's extended REST API,falseotherwise.- Since:
 - 2.5.1
 - See Also:
 
 - 
toString
 - 
getComponents
Description copied from interface:ResourceModelComponentShould return all existing resource model sub-components.- Specified by:
 getComponentsin interfaceResourceModelComponent- Returns:
 - list of all sub-components
 
 
 -