public class AbstractDelegatingAdvancedCache<K,V> extends AbstractDelegatingCache<K,V> implements AdvancedCache<K,V>
AbstractDelegatingCache, but for AdvancedCache.AbstractDelegatingCache| Modifier and Type | Class and Description |
|---|---|
static interface |
AbstractDelegatingAdvancedCache.AdvancedCacheWrapper<K,V> |
| Modifier and Type | Field and Description |
|---|---|
protected AdvancedCache<K,V> |
cache |
| Constructor and Description |
|---|
AbstractDelegatingAdvancedCache(AdvancedCache<K,V> cache) |
AbstractDelegatingAdvancedCache(AdvancedCache<K,V> cache,
AbstractDelegatingAdvancedCache.AdvancedCacheWrapper<K,V> wrapper) |
| Modifier and Type | Method and Description |
|---|---|
void |
addInterceptor(CommandInterceptor i,
int position)
Adds a custom interceptor to the interceptor chain, at specified position, where the first interceptor in the
chain is at position 0 and the last one at NUM_INTERCEPTORS - 1.
|
boolean |
addInterceptorAfter(CommandInterceptor i,
Class<? extends CommandInterceptor> afterInterceptor)
Adds a custom interceptor to the interceptor chain, after an instance of the specified interceptor type.
|
boolean |
addInterceptorBefore(CommandInterceptor i,
Class<? extends CommandInterceptor> beforeInterceptor)
Adds a custom interceptor to the interceptor chain, before an instance of the specified interceptor type.
|
void |
applyDelta(K deltaAwareValueKey,
Delta delta,
Object... locksToAcquire)
Applies the given Delta to the DeltaAware object stored under deltaAwareValueKey if and only if all
locksToAcquire locks are successfully obtained
|
CacheSet<CacheEntry<K,V>> |
cacheEntrySet()
Identical to
Cache.entrySet() but is typed to return CacheEntries instead of Entries. |
EntryIterable<K,V> |
filterEntries(KeyValueFilter<? super K,? super V> filter)
Retrieve the entry iterable that can be used to iterate over the contents of this cache.
|
AdvancedCache<K,V> |
getAdvancedCache() |
Map<K,V> |
getAll(Set<?> keys)
Gets a collection of entries, returning them as
Map of the values
associated with the set of keys requested. |
Map<K,CacheEntry<K,V>> |
getAllCacheEntries(Set<?> keys)
Gets a collection of entries from the
AdvancedCache, returning them as
Map of the cache entries associated with the set of keys requested. |
AuthorizationManager |
getAuthorizationManager()
Retrieves the
AuthorizationManager if the cache has security enabled. |
AvailabilityMode |
getAvailability()
Returns the cache's availability.
|
BatchContainer |
getBatchContainer()
Returns the component in charge of batching cache operations.
|
CacheEntry<K,V> |
getCacheEntry(Object key)
Retrieves a CacheEntry corresponding to a specific key.
|
ClassLoader |
getClassLoader()
Returns the cache loader associated associated with this cache.
|
ComponentRegistry |
getComponentRegistry() |
DataContainer<K,V> |
getDataContainer()
Returns the container where data is stored in the cache.
|
DistributionManager |
getDistributionManager()
Retrieves a reference to the
DistributionManager if the cache is configured
to use Distribution. |
EvictionManager |
getEvictionManager() |
ExpirationManager<K,V> |
getExpirationManager() |
Map<K,V> |
getGroup(String groupName)
It fetches all the keys which belong to the group.
|
List<CommandInterceptor> |
getInterceptorChain()
Retrieves the current Interceptor chain.
|
InvocationContextContainer |
getInvocationContextContainer()
Returns the component in charge of managing the interactions between the
cache operations and the context information associated with them.
|
LockManager |
getLockManager()
Returns the component that deals with all aspects of acquiring and
releasing locks for cache entries.
|
RpcManager |
getRpcManager()
Returns the component in charge of communication with other caches in
the cluster.
|
Stats |
getStats()
Returns a
Stats object that allows several statistics associated
with this cache at runtime. |
TransactionManager |
getTransactionManager()
Returns the transaction manager configured for this cache.
|
XAResource |
getXAResource()
Returns the
XAResource associated with this cache which can be
used to do transactional recovery. |
boolean |
lock(Collection<? extends K> keys)
Locks collections of keys eagerly across cache nodes in a cluster.
|
boolean |
lock(K... key)
Locks a given key or keys eagerly across cache nodes in a cluster.
|
V |
put(K key,
V value,
Metadata metadata)
An overloaded form of
#put(K, V), which takes in an instance of
Metadata which can be used to provide metadata information for
the entry being stored, such as lifespan, version of value...etc. |
void |
putAll(Map<? extends K,? extends V> map,
Metadata metadata)
An overloaded form of
Map.putAll(Map), which takes in an instance of
Metadata which can be used to provide metadata information for
the entries being stored, such as lifespan, version of value...etc. |
NotifyingFuture<V> |
putAsync(K key,
V value,
Metadata metadata)
Asynchronous version of
AdvancedCache.put(Object, Object, Metadata) which stores
metadata alongside the value. |
protected void |
putForExternalRead(K key,
V value,
EnumSet<Flag> flags,
ClassLoader classLoader) |
void |
putForExternalRead(K key,
V value,
Metadata metadata)
An overloaded form of
#putForExternalRead(K, V), which takes in an
instance of Metadata which can be used to provide metadata
information for the entry being stored, such as lifespan, version
of value...etc. |
protected void |
putForExternalRead(K key,
V value,
Metadata metadata,
EnumSet<Flag> flags,
ClassLoader classLoader) |
V |
putIfAbsent(K key,
V value,
Metadata metadata)
An overloaded form of
#putIfAbsent(K, V), which takes in an
instance of Metadata which can be used to provide metadata
information for the entry being stored, such as lifespan, version
of value...etc. |
void |
removeExpired(K key,
V value,
Long lifespan)
Attempts to remove the entry if it is expired.
|
void |
removeGroup(String groupName)
It removes all the key which belongs to a group.
|
void |
removeInterceptor(Class<? extends CommandInterceptor> interceptorType)
Removes the interceptor of specified type.
|
void |
removeInterceptor(int position)
Removes the interceptor at a specified position, where the first interceptor in the chain is at position 0 and the
last one at getInterceptorChain().size() - 1.
|
V |
replace(K key,
V value,
Metadata metadata)
An overloaded form of
#replace(K, V), which takes in an
instance of Metadata which can be used to provide metadata
information for the entry being stored, such as lifespan, version
of value...etc. |
boolean |
replace(K key,
V oldValue,
V value,
Metadata metadata)
An overloaded form of
#replace(K, V, V), which takes in an
instance of Metadata which can be used to provide metadata
information for the entry being stored, such as lifespan, version
of value...etc. |
void |
setAvailability(AvailabilityMode availabilityMode)
Manually change the availability of the cache.
|
AdvancedCache<K,V> |
with(ClassLoader classLoader)
Using this operation, users can call any
AdvancedCache operation
with a given ClassLoader. |
AdvancedCache<K,V> |
withFlags(Flag... flags)
A method that adds flags to any API call.
|
addListener, addListener, addListener, clear, clearAsync, containsKey, containsValue, endBatch, entrySet, evict, get, getAsync, getCacheConfiguration, getCacheManager, getDelegate, getListeners, getName, getStatus, getVersion, isEmpty, keySet, put, put, put, putAll, putAll, putAll, putAllAsync, putAllAsync, putAllAsync, putAsync, putAsync, putAsync, putForExternalRead, putForExternalRead, putForExternalRead, putIfAbsent, putIfAbsent, putIfAbsent, putIfAbsentAsync, putIfAbsentAsync, putIfAbsentAsync, remove, remove, removeAsync, removeAsync, removeListener, replace, replace, replace, replace, replace, replace, replaceAsync, replaceAsync, replaceAsync, replaceAsync, replaceAsync, replaceAsync, set, size, start, startBatch, stop, toString, valuesclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitclear, entrySet, evict, getCacheConfiguration, getCacheManager, getStatus, keySet, putForExternalRead, putForExternalRead, putForExternalRead, size, valuesgetName, getVersion, put, put, put, putAll, putAll, putIfAbsent, putIfAbsent, remove, replace, replace, replace, replaceclearAsync, getAsync, putAllAsync, putAllAsync, putAllAsync, putAsync, putAsync, putAsync, putIfAbsentAsync, putIfAbsentAsync, putIfAbsentAsync, removeAsync, removeAsync, replaceAsync, replaceAsync, replaceAsync, replaceAsync, replaceAsync, replaceAsynccompute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAllcontainsKey, containsValue, equals, get, hashCode, isEmpty, putAllendBatch, startBatchaddListener, addListeneraddListener, getListeners, removeListenerprotected final AdvancedCache<K,V> cache
public AbstractDelegatingAdvancedCache(AdvancedCache<K,V> cache)
public AbstractDelegatingAdvancedCache(AdvancedCache<K,V> cache, AbstractDelegatingAdvancedCache.AdvancedCacheWrapper<K,V> wrapper)
public void addInterceptor(CommandInterceptor i, int position)
AdvancedCacheaddInterceptor in interface AdvancedCache<K,V>i - the interceptor to addposition - the position to add the interceptorpublic boolean addInterceptorAfter(CommandInterceptor i, Class<? extends CommandInterceptor> afterInterceptor)
AdvancedCacheaddInterceptorAfter in interface AdvancedCache<K,V>i - interceptor to addafterInterceptor - interceptor type after which to place custom interceptorpublic boolean addInterceptorBefore(CommandInterceptor i, Class<? extends CommandInterceptor> beforeInterceptor)
AdvancedCacheaddInterceptorBefore in interface AdvancedCache<K,V>i - interceptor to addbeforeInterceptor - interceptor type before which to place custom interceptorpublic void removeInterceptor(int position)
AdvancedCacheremoveInterceptor in interface AdvancedCache<K,V>position - the position at which to remove an interceptorpublic void removeInterceptor(Class<? extends CommandInterceptor> interceptorType)
AdvancedCacheremoveInterceptor in interface AdvancedCache<K,V>interceptorType - type of interceptor to removepublic AdvancedCache<K,V> getAdvancedCache()
getAdvancedCache in interface Cache<K,V>getAdvancedCache in class AbstractDelegatingCache<K,V>public List<CommandInterceptor> getInterceptorChain()
AdvancedCachegetInterceptorChain in interface AdvancedCache<K,V>List of CommandInterceptors
configured for this cachepublic EvictionManager getEvictionManager()
getEvictionManager in interface AdvancedCache<K,V>public ExpirationManager<K,V> getExpirationManager()
getExpirationManager in interface AdvancedCache<K,V>public ComponentRegistry getComponentRegistry()
getComponentRegistry in interface AdvancedCache<K,V>public DistributionManager getDistributionManager()
AdvancedCacheDistributionManager if the cache is configured
to use Distribution. Otherwise, returns a null.getDistributionManager in interface AdvancedCache<K,V>public AuthorizationManager getAuthorizationManager()
AdvancedCacheAuthorizationManager if the cache has security enabled. Otherwise returns nullgetAuthorizationManager in interface AdvancedCache<K,V>public RpcManager getRpcManager()
AdvancedCacheClusteringConfiguration.cacheMode()
is CacheMode.LOCAL, this
method will return null.getRpcManager in interface AdvancedCache<K,V>public BatchContainer getBatchContainer()
AdvancedCachegetBatchContainer in interface AdvancedCache<K,V>public InvocationContextContainer getInvocationContextContainer()
AdvancedCachegetInvocationContextContainer in interface AdvancedCache<K,V>public DataContainer<K,V> getDataContainer()
AdvancedCachegetDataContainer in interface AdvancedCache<K,V>public TransactionManager getTransactionManager()
AdvancedCachegetTransactionManager in interface AdvancedCache<K,V>public LockManager getLockManager()
AdvancedCachegetLockManager in interface AdvancedCache<K,V>public XAResource getXAResource()
AdvancedCacheXAResource associated with this cache which can be
used to do transactional recovery.getXAResource in interface AdvancedCache<K,V>XAResourcepublic AvailabilityMode getAvailability()
AdvancedCacheAvailabilityMode.AVAILABLE. In
clustered mode, the PartitionHandlingManager is queried to obtain the availability mode.getAvailability in interface AdvancedCache<K,V>public void setAvailability(AvailabilityMode availabilityMode)
AdvancedCachePartitionHandlingConfiguration.enabled().setAvailability in interface AdvancedCache<K,V>public AdvancedCache<K,V> withFlags(Flag... flags)
AdvancedCachecache.withFlags(Flag.FORCE_WRITE_LOCK).get(key);will invoke a cache.get() with a write lock forced. Note that for the flag to take effect, the cache operation must be invoked on the instance returned by this method. As an alternative to setting this on every invocation, users could also consider using the
DecoratedCache wrapper, as this allows for more readable
code. E.g.:
Cache forceWriteLockCache = new DecoratedCache(cache, Flag.FORCE_WRITE_LOCK);
forceWriteLockCache.get(key1);
forceWriteLockCache.get(key2);
forceWriteLockCache.get(key3);
withFlags in interface AdvancedCache<K,V>flags - a set of flags to apply. See the Flag documentation.AdvancedCache instance on which a real operation is to be invoked, if the flags are
to be applied.public boolean lock(K... key)
AdvancedCacheKeys can be locked eagerly in the context of a transaction only.
lock in interface AdvancedCache<K,V>key - the keys to lockFlag.FAIL_SILENTLY.public boolean lock(Collection<? extends K> keys)
AdvancedCacheCollections of keys can be locked eagerly in the context of a transaction only.
lock in interface AdvancedCache<K,V>keys - collection of keys to lockFlag.FAIL_SILENTLY.public void applyDelta(K deltaAwareValueKey, Delta delta, Object... locksToAcquire)
AdvancedCacheapplyDelta in interface AdvancedCache<K,V>deltaAwareValueKey - the key for DeltaAware objectdelta - the delta to be applied to DeltaAware objectlocksToAcquire - keys to be locked in DeltaAware scopepublic Stats getStats()
AdvancedCacheStats object that allows several statistics associated
with this cache at runtime.getStats in interface AdvancedCache<K,V>Stats objectpublic ClassLoader getClassLoader()
AdvancedCacheDecoratedCache wrapper.getClassLoader in interface AdvancedCache<K,V>public AdvancedCache<K,V> with(ClassLoader classLoader)
AdvancedCacheAdvancedCache operation
with a given ClassLoader. This means that any ClassLoader happening
as a result of the cache operation will be done using the ClassLoader
given. For example:
When users store POJO instances in caches configured with StoreAsBinaryConfiguration,
these instances are transformed into byte arrays. When these entries are
read from the cache, a lazy unmarshalling process happens where these byte
arrays are transformed back into POJO instances. Using AdvancedCache.with(ClassLoader)
when reading that enables users to provide the class loader that should
be used when trying to locate the classes that are constructed as a result
of the unmarshalling process.
cache.with(classLoader).get(key);
Note that for the flag to take effect, the cache operation must be invoked on the instance
returned by this method.
As an alternative to setting this on every
invocation, users could also consider using the DecoratedCache wrapper, as this allows for more readable
code. E.g.:
Cache classLoaderSpecificCache = new DecoratedCache(cache, classLoader);
classLoaderSpecificCache.get(key1);
classLoaderSpecificCache.get(key2);
classLoaderSpecificCache.get(key3);
with in interface AdvancedCache<K,V>AdvancedCache instance upon which operations can be called
with a particular ClassLoader.public Map<K,V> getAll(Set<?> keys)
AdvancedCacheMap of the values
associated with the set of keys requested.
If the cache is configured read-through, and a get for a key would
return null because an entry is missing from the cache, the Cache's
CacheLoader is called in an attempt to load the entry. If an
entry cannot be loaded for a given key, the returned Map will contain null for
value of the key.
Unlike other bulk methods if this invoked in an existing transaction all entries will be stored in the current transactional context
The returned Map will be a copy and updates to the map will not be reflected
in the Cache and vice versa. The keys and values themselves however may not be
copies depending on if storeAsBinary is enabled and the value was retrieved from
the local node.
getAll in interface AdvancedCache<K,V>keys - The keys whose associated values are to be returned.public CacheEntry<K,V> getCacheEntry(Object key)
AdvancedCachegetCacheEntry in interface AdvancedCache<K,V>key - the key whose associated cache entry is to be returnednull if this map contains no mapping for the keypublic Map<K,CacheEntry<K,V>> getAllCacheEntries(Set<?> keys)
AdvancedCacheAdvancedCache, returning them as
Map of the cache entries associated with the set of keys requested.
If the cache is configured read-through, and a get for a key would
return null because an entry is missing from the cache, the Cache's
CacheLoader is called in an attempt to load the entry. If an
entry cannot be loaded for a given key, the returned Map will contain null for
value of the key.
Unlike other bulk methods if this invoked in an existing transaction all entries will be stored in the current transactional context
The returned Map will be a copy and updates to the map will not be reflected
in the Cache and vice versa. The keys and values themselves however may not be
copies depending on if storeAsBinary is enabled and the value was retrieved from
the local node.
getAllCacheEntries in interface AdvancedCache<K,V>keys - The keys whose associated values are to be returned.public EntryIterable<K,V> filterEntries(KeyValueFilter<? super K,? super V> filter)
AdvancedCacheIterable.iterator() will cause a new request chain to retrieve all of the values in
the cache, including any configured loaders. This iterator is performed in memory sensitive way and thus works
for distributed caches unlike Cache.entrySet().
Whenever possible a user should provide a converter through
EntryIterable.converter(org.infinispan.filter.Converter) to reduce value
payloads or create projection views.
This iterator does not participate in any ongoing transaction that may be present. This is because
IsolationLevel.REPEATABLE_READ transactions have to keep track of all
the entries they have read (which in this case would include the entries that did not match the filter).
Keeping all the values on a single node would negate the benefits of using a filter and/or converter, and in many
cases it would cause OutOfMemoryErrors. If it is desired to remove entries the
BasicCache.remove(Object) method or another similar method may be used which would
participate in the transaction
The iterable should always be closed after finished with it, using the standard try/finally or try with resource idioms to ensure that any current resources are freed if an exception prevents full iteration of iterator. Note this will prevent any ongoing iterators that were created from it from progressing further.
filterEntries in interface AdvancedCache<K,V>filter - The filter to use. Note this is required and for distributed caches must be serializable. Callbacks
to the filter will never provide a key or value that will be null.public Map<K,V> getGroup(String groupName)
AdvancedCachemap returned is immutable and represents the group at the time of the invocation. If you want to add
or remove keys from a group use BasicCache.put(Object, Object) and BasicCache.remove(Object). To remove all the keys
in the group use AdvancedCache.removeGroup(String).
To improve performance you may use the flag Flag.SKIP_CACHE_LOAD to avoid
fetching the key/value from persistence. However, you will get an inconsistent snapshot of the group.getGroup in interface AdvancedCache<K,V>groupName - the group name.Map with the key/value pairs.public void removeGroup(String groupName)
AdvancedCacheremoveGroup in interface AdvancedCache<K,V>groupName - the group name.public V put(K key, V value, Metadata metadata)
AdvancedCache#put(K, V), which takes in an instance of
Metadata which can be used to provide metadata information for
the entry being stored, such as lifespan, version of value...etc.put in interface AdvancedCache<K,V>key - key to usevalue - value to storemetadata - information to store alongside the valuepublic V replace(K key, V value, Metadata metadata)
AdvancedCache#replace(K, V), which takes in an
instance of Metadata which can be used to provide metadata
information for the entry being stored, such as lifespan, version
of value...etc. The Metadata is only stored if the call is
successful.replace in interface AdvancedCache<K,V>key - key with which the specified value is associatedvalue - value to be associated with the specified keymetadata - information to store alongside the new valuepublic boolean replace(K key, V oldValue, V value, Metadata metadata)
AdvancedCache#replace(K, V, V), which takes in an
instance of Metadata which can be used to provide metadata
information for the entry being stored, such as lifespan, version
of value...etc. The Metadata is only stored if the call is
successful.replace in interface AdvancedCache<K,V>key - key with which the specified value is associatedoldValue - value expected to be associated with the specified keyvalue - value to be associated with the specified keymetadata - information to store alongside the new valuepublic V putIfAbsent(K key, V value, Metadata metadata)
AdvancedCache#putIfAbsent(K, V), which takes in an
instance of Metadata which can be used to provide metadata
information for the entry being stored, such as lifespan, version
of value...etc. The Metadata is only stored if the call is
successful.putIfAbsent in interface AdvancedCache<K,V>key - key with which the specified value is to be associatedvalue - value to be associated with the specified keymetadata - information to store alongside the new valuepublic NotifyingFuture<V> putAsync(K key, V value, Metadata metadata)
AdvancedCacheAdvancedCache.put(Object, Object, Metadata) which stores
metadata alongside the value. This method does not block on remote calls,
even if your cache mode is synchronous. Has no benefit over
AdvancedCache.put(Object, Object, Metadata) if used in LOCAL mode.
putAsync in interface AdvancedCache<K,V>key - key to usevalue - value to storemetadata - information to store alongside the new valuepublic void putForExternalRead(K key, V value, Metadata metadata)
AdvancedCache#putForExternalRead(K, V), which takes in an
instance of Metadata which can be used to provide metadata
information for the entry being stored, such as lifespan, version
of value...etc. The Metadata is only stored if the call is
successful.putForExternalRead in interface AdvancedCache<K,V>key - key with which the specified value is to be associatedvalue - value to be associated with the specified keymetadata - information to store alongside the new valuepublic void putAll(Map<? extends K,? extends V> map, Metadata metadata)
AdvancedCacheMap.putAll(Map), which takes in an instance of
Metadata which can be used to provide metadata information for
the entries being stored, such as lifespan, version of value...etc.putAll in interface AdvancedCache<K,V>map - the values to storemetadata - information to store alongside the value(s)public CacheSet<CacheEntry<K,V>> cacheEntrySet()
AdvancedCacheCache.entrySet() but is typed to return CacheEntries instead of Entries. Please see
the other method for a description of its behaviors.
This method is needed since nested generics do not support covariance
cacheEntrySet in interface AdvancedCache<K,V>Cache.entrySet()public void removeExpired(K key, V value, Long lifespan)
AdvancedCacheExpirationManager.
This command will only remove the value if the value and lifespan also match if provided.
NOTE: This method may be removed at any point including in a minor release and is not supported for external usage.
removeExpired in interface AdvancedCache<K,V>key - the key that is expiringvalue - the value that mapped to the given. Null means it will match any valuelifespan - the lifespan that should match. If null is provided it will match any lifespan valueprotected final void putForExternalRead(K key, V value, EnumSet<Flag> flags, ClassLoader classLoader)
Copyright © 2024 JBoss, a division of Red Hat. All rights reserved.