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