public final class SimpleResourceHolder extends Object
Supports one resource per key without overwriting, that is, a resource needs to be removed before a new one can be set for the same key.
Resource management code should check for thread-bound resources via has(Object)
.
This helper isn't designed for transaction synchronization cases.
Use TransactionSynchronizationManager
and ResourceHolder
instead.
Modifier and Type | Method and Description |
---|---|
static void |
bind(Object key,
Object value)
Bind the given resource for the given key to the current thread.
|
static void |
clear()
Clear resources for the current thread.
|
static Object |
get(Object key)
Retrieve a resource for the given key that is bound to the current thread.
|
static Map<Object,Object> |
getResources()
Return all resources that are bound to the current thread.
|
static boolean |
has(Object key)
Check if there is a resource for the given key bound to the current thread.
|
static Object |
unbind(Object key)
Unbind a resource for the given key from the current thread.
|
static Object |
unbindIfPossible(Object key)
Unbind a resource for the given key from the current thread.
|
public static Map<Object,Object> getResources()
Mainly for debugging purposes. Resource managers should always invoke
hasResource
for a specific resource key that they are interested in.
has(java.lang.Object)
public static boolean has(Object key)
key
- the key to check (usually the resource factory)@Nullable public static Object get(Object key)
key
- the key to check (usually the resource factory)null
if nonepublic static void bind(Object key, Object value)
key
- the key to bind the value to (usually the resource factory)value
- the value to bind (usually the active resource object)IllegalStateException
- if there is already a value bound to the threadpublic static Object unbind(Object key) throws IllegalStateException
key
- the key to unbind (usually the resource factory)IllegalStateException
- if there is no value bound to the thread@Nullable public static Object unbindIfPossible(Object key)
key
- the key to unbind (usually the resource factory)null
if none boundpublic static void clear()