public interface ResourceRegistry extends ResourceResolver, Disposable
ResourceRegistry is a registry and owner of strongly typed and
 explicitly named resources.
 
 When a resource is registered with a ResourceRegistry, the
 ResourceRegistry assumes ownership of the said resource, up until
 at which point the ResourceRegistry is disposed.
 
 Important: Although a ResourceRegistry manages
 resources in a thread-safe manner, it is possible for a thread calling
 ResourceResolver.getResource(Class, String) to receive a null return
 value while another thread is registering a resource.
| Modifier and Type | Interface and Description | 
|---|---|
static interface  | 
ResourceRegistry.ResourceLifecycleObserver<R>
The  
ResourceRegistry.ResourceLifecycleObserver interface defines lifecycle handlers
 for resources registered with a ResourceRegistry. | 
| Modifier and Type | Field and Description | 
|---|---|
static String | 
DEFAULT_NAME
The name to use for the registration of a singleton and thus default resource. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
<R> String | 
registerResource(Class<R> clzResource,
                Builder<? extends R> bldrResource,
                RegistrationBehavior behavior,
                ResourceRegistry.ResourceLifecycleObserver<R> observer)
Registers a resource according to the specified  
RegistrationBehavior. | 
<R> String | 
registerResource(Class<R> clzResource,
                R resource)
Registers the resource for later retrieval with  
ResourceResolver.getResource(Class). | 
<R> String | 
registerResource(Class<R> clzResource,
                String sResourceName,
                Builder<? extends R> bldrResource,
                RegistrationBehavior behavior,
                ResourceRegistry.ResourceLifecycleObserver<R> observer)
Registers a resource according to the specified  
RegistrationBehavior. | 
<R> String | 
registerResource(Class<R> clzResource,
                String sResourceName,
                R resource)
Registers the resource with the specified name for later retrieval with
  
ResourceResolver.getResource(Class, String). | 
<R> void | 
unregisterResource(Class<R> clzResource,
                  String sResourceName)
Unregisters the resource that was previously registered of the specified class and name. 
 | 
getResource, getResourceclose, disposestatic final String DEFAULT_NAME
<R> String registerResource(Class<R> clzResource, R resource) throws IllegalArgumentException
ResourceResolver.getResource(Class).
 Notes:
registerResource(Class, String, Object)
  Disposable will be disposed when the
      ResourceRegistry is disposed.
 clzResource - the class of the resourceresource - the resourceIllegalArgumentException - if a resource of the same specified type
                                   is already registered<R> String registerResource(Class<R> clzResource, String sResourceName, R resource) throws IllegalArgumentException
ResourceResolver.getResource(Class, String).
 Notes:
Disposable will be disposed when the
      ResourceRegistry is disposed.
 clzResource - the class of the resourceresource - the resourcesResourceName - the proposed name of the resourceIllegalArgumentException - if a resource of the same specified type
                                   and name is already registered<R> String registerResource(Class<R> clzResource, Builder<? extends R> bldrResource, RegistrationBehavior behavior, ResourceRegistry.ResourceLifecycleObserver<R> observer) throws IllegalArgumentException
RegistrationBehavior.
 If successful the registered resource may later be retrieved using method
 ResourceResolver.getResource(Class).
 Notes:
registerResource(Class, String, Builder, RegistrationBehavior, ResourceLifecycleObserver)
  Disposable will be disposed when the
      ResourceRegistry is disposed.
 R - the type of the resourceclzResource - the class of the resourcebldrResource - the Builder to realize the resource
                       to register (if required the specified behavior
                       requires a resource)behavior - the RegistrationBehavior to useobserver - an optional ResourceRegistry.ResourceLifecycleObserver that
                       will be called when the resource is being released
                       from the ResourceRegistry (may be null)IllegalArgumentException - if a resource with the specified class
                                   is already registered with
                                   the ResourceRegistry and
                                   the behavior was RegistrationBehavior.FAIL<R> String registerResource(Class<R> clzResource, String sResourceName, Builder<? extends R> bldrResource, RegistrationBehavior behavior, ResourceRegistry.ResourceLifecycleObserver<R> observer) throws IllegalArgumentException
RegistrationBehavior.
 If successful the registered resource may later be retrieved using method
 ResourceResolver.getResource(Class, String).
 Notes:
Disposable will be disposed when the
      ResourceRegistry is disposed.
 R - the type of the resourceclzResource - the class of the resourcesResourceName - the proposed name of the resourcebldrResource - the Builder to realize the resource
                       to register (if required the specified behavior
                       requires a resource)behavior - the RegistrationBehavior to useobserver - an optional ResourceRegistry.ResourceLifecycleObserver that
                       will be called when the resource is being released
                       from the ResourceRegistry (may be null)IllegalArgumentException - if a resource with the specified class
                                   is already registered with
                                   the ResourceRegistry and
                                   the behavior was RegistrationBehavior.FAIL<R> void unregisterResource(Class<R> clzResource, String sResourceName)
 Note: Unregistering a resource does not cause it to be disposed, but it
 does call ResourceRegistry.ResourceLifecycleObserver.onRelease(Object) if an
 observer was provided at the time of registration.
R - the type of the resourceclzResource - the class of the resourcesResourceName - the name of the resource