public class CacheImpl<K,V> extends CacheSupport<K,V> implements AdvancedCache<K,V>
| Modifier and Type | Field and Description |
|---|---|
protected BatchContainer |
batchContainer |
protected CommandsFactory |
commandsFactory |
protected ComponentRegistry |
componentRegistry |
protected Configuration |
config |
protected InvocationContextContainer |
icc |
protected InterceptorChain |
invoker |
protected StreamingMarshaller |
marshaller |
protected CacheNotifier |
notifier |
static String |
OBJECT_NAME |
protected RpcManager |
rpcManager |
protected TransactionManager |
transactionManager |
defaultLifespan, defaultMaxIdleTime| 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 |
addListener(Object listener)
Adds a listener to the component.
|
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
|
void |
clear() |
NotifyingFuture<Void> |
clearAsync()
Asynchronous version of
Map.clear(). |
void |
compact()
Method that releases object references of cached objects held in the cache by serializing them to byte buffers.
|
boolean |
containsKey(Object key) |
boolean |
containsValue(Object value) |
void |
endBatch(boolean successful)
Completes a batch if one has been started using
Cache.startBatch(). |
Set<Map.Entry<K,V>> |
entrySet()
Returns a set view of the mappings contained in this cache.
|
void |
evict(K key)
Evicts an entry from the memory of the cache.
|
V |
get(Object key) |
AdvancedCache<K,V> |
getAdvancedCache() |
NotifyingFuture<V> |
getAsync(K key)
Asynchronous version of
Map.get(Object) that allows user code to
retrieve the value associated with a key at a later stage, hence allowing
multiple parallel get requests to be sent. |
BatchContainer |
getBatchContainer()
Returns the component in charge of batching cache operations.
|
Configuration |
getCacheConfiguration() |
EmbeddedCacheManager |
getCacheManager()
Retrieves the cache manager responsible for creating this cache instance.
|
String |
getCacheName()
Returns the cache name.
|
String |
getCacheStatus()
Returns String representation of ComponentStatus enumeration in order to avoid class not found exceptions in JMX
tools that don't have access to infinispan classes.
|
ClassLoader |
getClassLoader()
Returns the cache loader associated associated with this cache.
|
ComponentRegistry |
getComponentRegistry() |
Configuration |
getConfiguration()
Deprecated.
|
String |
getConfigurationAsXmlString()
Returns the cache configuration as XML string.
|
DataContainer |
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() |
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.
|
Set<Object> |
getListeners() |
LockManager |
getLockManager()
Returns the component that deals with all aspects of acquiring and
releasing locks for cache entries.
|
String |
getName()
Retrieves the name of the cache
|
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. |
ComponentStatus |
getStatus() |
TransactionManager |
getTransactionManager()
Returns the transaction manager configured for this cache.
|
String |
getVersion()
Retrieves the version of Infinispan
|
XAResource |
getXAResource()
Returns the
XAResource associated with this cache which can be
used to do transactional recovery. |
void |
injectDependencies(EvictionManager evictionManager,
InvocationContextContainer icc,
CommandsFactory commandsFactory,
InterceptorChain interceptorChain,
Configuration configuration,
CacheNotifier notifier,
ComponentRegistry componentRegistry,
TransactionManager transactionManager,
BatchContainer batchContainer,
RpcManager rpcManager,
DataContainer dataContainer,
StreamingMarshaller marshaller,
ResponseGenerator responseGenerator,
DistributionManager distributionManager,
EmbeddedCacheManager cacheManager,
StateTransferManager stateTransferManager,
ExecutorService asyncExecutor,
TransactionTable txTable,
RecoveryManager recoveryManager,
TransactionCoordinator txCoordinator,
LockManager lockManager) |
boolean |
isEmpty() |
Set<K> |
keySet()
Returns a set view of the keys contained in this cache.
|
boolean |
lock(Collection<? extends K> keys)
Locks collections of keys eagerly across cache nodes in a cluster.
|
boolean |
lock(K... keys)
Locks a given key or keys eagerly across cache nodes in a cluster.
|
V |
put(K key,
V value,
long lifespan,
TimeUnit lifespanUnit,
long maxIdleTime,
TimeUnit idleTimeUnit)
An overloaded form of
Map.put(Object, Object), which takes in lifespan parameters. |
void |
putAll(Map<? extends K,? extends V> map,
long lifespan,
TimeUnit lifespanUnit,
long maxIdleTime,
TimeUnit idleTimeUnit)
An overloaded form of
Map.putAll(Map), which takes in lifespan parameters. |
NotifyingFuture<Void> |
putAllAsync(Map<? extends K,? extends V> data,
long lifespan,
TimeUnit lifespanUnit,
long maxIdle,
TimeUnit maxIdleUnit)
Asynchronous version of
BasicCache.putAll(Map, long, TimeUnit, long, TimeUnit). |
NotifyingFuture<V> |
putAsync(K key,
V value,
long lifespan,
TimeUnit lifespanUnit,
long maxIdle,
TimeUnit maxIdleUnit)
Asynchronous version of
BasicCache.put(Object, Object, long, TimeUnit, long, TimeUnit). |
void |
putForExternalRead(K key,
V value)
Under special operating behavior, associates the value with the specified key.
|
V |
putIfAbsent(K key,
V value,
long lifespan,
TimeUnit lifespanUnit,
long maxIdleTime,
TimeUnit idleTimeUnit)
An overloaded form of
ConcurrentMap.putIfAbsent(Object, Object), which takes in lifespan parameters. |
NotifyingFuture<V> |
putIfAbsentAsync(K key,
V value,
long lifespan,
TimeUnit lifespanUnit,
long maxIdle,
TimeUnit maxIdleUnit)
Asynchronous version of
BasicCache.putIfAbsent(Object, Object, long, TimeUnit, long, TimeUnit). |
V |
remove(Object key) |
boolean |
remove(Object key,
Object value) |
NotifyingFuture<V> |
removeAsync(Object key)
Asynchronous version of
Map.remove(Object). |
NotifyingFuture<Boolean> |
removeAsync(Object key,
Object value)
Asynchronous version of
ConcurrentMap.remove(Object, Object). |
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.
|
void |
removeListener(Object listener)
Removes a listener from the component.
|
V |
replace(K key,
V value,
long lifespan,
TimeUnit lifespanUnit,
long maxIdleTime,
TimeUnit idleTimeUnit)
An overloaded form of
ConcurrentMap.replace(Object, Object), which takes in lifespan parameters. |
boolean |
replace(K key,
V oldValue,
V value,
long lifespan,
TimeUnit lifespanUnit,
long maxIdleTime,
TimeUnit idleTimeUnit)
An overloaded form of
ConcurrentMap.replace(Object, Object, Object), which takes in lifespan parameters. |
NotifyingFuture<V> |
replaceAsync(K key,
V value,
long lifespan,
TimeUnit lifespanUnit,
long maxIdle,
TimeUnit maxIdleUnit)
Asynchronous version of
BasicCache.replace(Object, Object, long, TimeUnit, long, TimeUnit). |
NotifyingFuture<Boolean> |
replaceAsync(K key,
V oldValue,
V newValue,
long lifespan,
TimeUnit lifespanUnit,
long maxIdle,
TimeUnit maxIdleUnit)
Asynchronous version of
BasicCache.replace(Object, Object, Object, long, TimeUnit, long, TimeUnit). |
protected void |
set(K key,
V value)
This is intentionally a non-public method meant as an integration point for bytecode manipulation.
|
int |
size() |
void |
start() |
boolean |
startBatch()
Starts a batch.
|
void |
stop() |
String |
toString() |
Collection<V> |
values()
Returns a collection view of the values contained in this 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.
|
put, put, putAll, putAll, putAllAsync, putAllAsync, putAsync, putAsync, putIfAbsent, putIfAbsent, putIfAbsentAsync, putIfAbsentAsync, replace, replace, replace, replace, replaceAsync, replaceAsync, replaceAsync, replaceAsyncclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitput, putAll, putAllAsync, putAllAsync, putAsync, putAsync, putIfAbsent, putIfAbsentAsync, putIfAbsentAsync, replace, replace, replaceAsync, replaceAsync, replaceAsync, replaceAsyncputIfAbsent, replace, replacepublic static final String OBJECT_NAME
protected InvocationContextContainer icc
protected CommandsFactory commandsFactory
protected InterceptorChain invoker
protected Configuration config
protected CacheNotifier notifier
protected BatchContainer batchContainer
protected ComponentRegistry componentRegistry
protected TransactionManager transactionManager
protected RpcManager rpcManager
protected StreamingMarshaller marshaller
public CacheImpl(String name)
public void injectDependencies(EvictionManager evictionManager, InvocationContextContainer icc, CommandsFactory commandsFactory, InterceptorChain interceptorChain, Configuration configuration, CacheNotifier notifier, ComponentRegistry componentRegistry, TransactionManager transactionManager, BatchContainer batchContainer, RpcManager rpcManager, DataContainer dataContainer, StreamingMarshaller marshaller, ResponseGenerator responseGenerator, DistributionManager distributionManager, EmbeddedCacheManager cacheManager, StateTransferManager stateTransferManager, ExecutorService asyncExecutor, TransactionTable txTable, RecoveryManager recoveryManager, TransactionCoordinator txCoordinator, LockManager lockManager)
public final boolean remove(Object key, Object value)
remove in interface ConcurrentMap<K,V>public final boolean containsKey(Object key)
containsKey in interface Map<K,V>public final boolean containsValue(Object value)
containsValue in interface Map<K,V>public Set<K> keySet()
Cachepublic Collection<V> values()
Cachepublic Set<Map.Entry<K,V>> entrySet()
CacheMap.Entry. When this method is called on a cache configured with distribution mode, the set returned only
contains the mappings locally available in the cache instance. To avoid memory issues, there will be not attempt
to bring mappings from other nodes.
This method should only be used for debugging purposes such as to verify that the cache contains all the mappings
entered. Any other use involving execution of this method on a production system is not recommended.
public final void putForExternalRead(K key, V value)
CacheConcurrentMap.putIfAbsent(Object, Object))
putForExternalRead in interface Cache<K,V>key - key with which the specified value is to be associated.value - value to be associated with the specified key.public final void evict(K key)
CacheMap.remove(Object) to remove an
entry from the entire cache system.
This method is designed to evict an entry from memory to free up memory used by the application. This method uses
a 0 lock acquisition timeout so it does not block in attempting to acquire locks. It behaves as a no-op if the
lock on the entry cannot be acquired immediately.
Important: this method should not be called from within a transaction scope.@Deprecated public Configuration getConfiguration()
getConfiguration in interface Cache<K,V>public Configuration getCacheConfiguration()
getCacheConfiguration in interface Cache<K,V>public void addListener(Object listener)
ListenableListener and
further to that, contain methods annotated appropriately, otherwise the listener will not be registered.
See the Listener annotation for more information.
addListener in interface Listenablelistener - must not be null.public void removeListener(Object listener)
ListenableremoveListener in interface Listenablelistener - listener to remove. Must not be null.public Set<Object> getListeners()
getListeners in interface Listenablepublic boolean lock(K... keys)
AdvancedCacheKeys can be locked eagerly in the context of a transaction only.
lock in interface AdvancedCache<K,V>keys - 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 List<CommandInterceptor> getInterceptorChain()
AdvancedCachegetInterceptorChain in interface AdvancedCache<K,V>List of CommandInterceptors
configured for this cachepublic 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 EvictionManager getEvictionManager()
getEvictionManager 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 ComponentStatus getStatus()
public String getCacheStatus()
public boolean startBatch()
CachestartBatch in interface Cache<K,V>public void endBatch(boolean successful)
CacheCache.startBatch(). If no batch has been started, this is a
no-op.
public String getName()
BasicCachegetName in interface BasicCache<K,V>public String getCacheName()
public String getConfigurationAsXmlString()
public String getVersion()
BasicCachegetVersion in interface BasicCache<K,V>public BatchContainer getBatchContainer()
AdvancedCachegetBatchContainer in interface AdvancedCache<K,V>public InvocationContextContainer getInvocationContextContainer()
AdvancedCachegetInvocationContextContainer in interface AdvancedCache<K,V>public DataContainer 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 EmbeddedCacheManager getCacheManager()
CachegetCacheManager in interface Cache<K,V>public Stats getStats()
AdvancedCacheStats object that allows several statistics associated
with this cache at runtime.getStats in interface AdvancedCache<K,V>Stats objectpublic XAResource getXAResource()
AdvancedCacheXAResource associated with this cache which can be
used to do transactional recovery.getXAResource in interface AdvancedCache<K,V>XAResourcepublic final V put(K key, V value, long lifespan, TimeUnit lifespanUnit, long maxIdleTime, TimeUnit idleTimeUnit)
BasicCacheMap.put(Object, Object), which takes in lifespan parameters.put in interface BasicCache<K,V>key - key to usevalue - value to storelifespan - lifespan of the entry. Negative values are interpreted as unlimited lifespan.lifespanUnit - time unit for lifespanmaxIdleTime - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredidleTimeUnit - time unit for max idle timepublic final V putIfAbsent(K key, V value, long lifespan, TimeUnit lifespanUnit, long maxIdleTime, TimeUnit idleTimeUnit)
BasicCacheConcurrentMap.putIfAbsent(Object, Object), which takes in lifespan parameters.putIfAbsent in interface BasicCache<K,V>key - key to usevalue - value to storelifespan - lifespan of the entry. Negative values are interpreted as unlimited lifespan.lifespanUnit - time unit for lifespanmaxIdleTime - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredidleTimeUnit - time unit for max idle timepublic final void putAll(Map<? extends K,? extends V> map, long lifespan, TimeUnit lifespanUnit, long maxIdleTime, TimeUnit idleTimeUnit)
BasicCacheMap.putAll(Map), which takes in lifespan parameters. Note that the lifespan is applied
to all mappings in the map passed in.putAll in interface BasicCache<K,V>map - map containing mappings to enterlifespan - lifespan of the entry. Negative values are interpreted as unlimited lifespan.lifespanUnit - time unit for lifespanmaxIdleTime - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredidleTimeUnit - time unit for max idle timepublic final V replace(K key, V value, long lifespan, TimeUnit lifespanUnit, long maxIdleTime, TimeUnit idleTimeUnit)
BasicCacheConcurrentMap.replace(Object, Object), which takes in lifespan parameters.replace in interface BasicCache<K,V>key - key to usevalue - value to storelifespan - lifespan of the entry. Negative values are interpreted as unlimited lifespan.lifespanUnit - time unit for lifespanmaxIdleTime - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredidleTimeUnit - time unit for max idle timepublic final boolean replace(K key, V oldValue, V value, long lifespan, TimeUnit lifespanUnit, long maxIdleTime, TimeUnit idleTimeUnit)
BasicCacheConcurrentMap.replace(Object, Object, Object), which takes in lifespan parameters.replace in interface BasicCache<K,V>key - key to useoldValue - value to replacevalue - value to storelifespan - lifespan of the entry. Negative values are interpreted as unlimited lifespan.lifespanUnit - time unit for lifespanmaxIdleTime - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredidleTimeUnit - time unit for max idle timepublic final NotifyingFuture<V> putAsync(K key, V value, long lifespan, TimeUnit lifespanUnit, long maxIdle, TimeUnit maxIdleUnit)
BasicCacheBasicCache.put(Object, Object, long, TimeUnit, long, TimeUnit). This method does not block
on remote calls, even if your cache mode is synchronous. Has no benefit over BasicCache.put(Object, Object, long,
TimeUnit, long, TimeUnit) if used in LOCAL mode.putAsync in interface BasicCache<K,V>key - key to usevalue - value to storelifespan - lifespan of entrylifespanUnit - time unit for lifespanmaxIdle - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredmaxIdleUnit - time unit for max idle timepublic final NotifyingFuture<Void> putAllAsync(Map<? extends K,? extends V> data, long lifespan, TimeUnit lifespanUnit, long maxIdle, TimeUnit maxIdleUnit)
BasicCacheBasicCache.putAll(Map, long, TimeUnit, long, TimeUnit). This method does not block on
remote calls, even if your cache mode is synchronous. Has no benefit over BasicCache.putAll(Map, long, TimeUnit,
long, TimeUnit) if used in LOCAL mode.putAllAsync in interface BasicCache<K,V>data - to storelifespan - lifespan of entrylifespanUnit - time unit for lifespanmaxIdle - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredmaxIdleUnit - time unit for max idle timepublic final NotifyingFuture<Void> clearAsync()
BasicCacheMap.clear(). This method does not block on remote calls, even if your cache mode is
synchronous. Has no benefit over Map.clear() if used in LOCAL mode.clearAsync in interface BasicCache<K,V>public final NotifyingFuture<V> putIfAbsentAsync(K key, V value, long lifespan, TimeUnit lifespanUnit, long maxIdle, TimeUnit maxIdleUnit)
BasicCacheBasicCache.putIfAbsent(Object, Object, long, TimeUnit, long, TimeUnit). This method does
not block on remote calls, even if your cache mode is synchronous. Has no benefit over BasicCache.putIfAbsent(Object, Object, long, TimeUnit, long, TimeUnit) if used in LOCAL mode.putIfAbsentAsync in interface BasicCache<K,V>key - key to usevalue - value to storelifespan - lifespan of entrylifespanUnit - time unit for lifespanmaxIdle - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredmaxIdleUnit - time unit for max idle timepublic final NotifyingFuture<V> removeAsync(Object key)
BasicCacheMap.remove(Object). This method does not block on remote calls, even if your cache
mode is synchronous. Has no benefit over Map.remove(Object) if used in LOCAL mode.removeAsync in interface BasicCache<K,V>key - key to removepublic final NotifyingFuture<Boolean> removeAsync(Object key, Object value)
BasicCacheConcurrentMap.remove(Object, Object). This method does not block on remote calls, even if your
cache mode is synchronous. Has no benefit over ConcurrentMap.remove(Object, Object) if used in LOCAL mode.removeAsync in interface BasicCache<K,V>key - key to removevalue - value to match onpublic final NotifyingFuture<V> replaceAsync(K key, V value, long lifespan, TimeUnit lifespanUnit, long maxIdle, TimeUnit maxIdleUnit)
BasicCacheBasicCache.replace(Object, Object, long, TimeUnit, long, TimeUnit). This method does not
block on remote calls, even if your cache mode is synchronous. Has no benefit over BasicCache.replace(Object,
Object, long, TimeUnit, long, TimeUnit) if used in LOCAL mode.replaceAsync in interface BasicCache<K,V>key - key to removevalue - value to storelifespan - lifespan of entrylifespanUnit - time unit for lifespanmaxIdle - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredmaxIdleUnit - time unit for max idle timepublic final NotifyingFuture<Boolean> replaceAsync(K key, V oldValue, V newValue, long lifespan, TimeUnit lifespanUnit, long maxIdle, TimeUnit maxIdleUnit)
BasicCacheBasicCache.replace(Object, Object, Object, long, TimeUnit, long, TimeUnit). This method
does not block on remote calls, even if your cache mode is synchronous. Has no benefit over BasicCache.replace(Object, Object, Object, long, TimeUnit, long, TimeUnit) if used in LOCAL mode.replaceAsync in interface BasicCache<K,V>key - key to removeoldValue - value to overwritenewValue - value to storelifespan - lifespan of entrylifespanUnit - time unit for lifespanmaxIdle - the maximum amount of time this key is allowed to be idle for before it is considered as
expiredmaxIdleUnit - time unit for max idle timepublic NotifyingFuture<V> getAsync(K key)
BasicCacheMap.get(Object) that allows user code to
retrieve the value associated with a key at a later stage, hence allowing
multiple parallel get requests to be sent. Normally, when this method
detects that the value is likely to be retrieved from from a remote
entity, it will span a different thread in order to allow the
asynchronous get call to return immediately. If the call will definitely
resolve locally, for example when the cache is configured with LOCAL mode
and no cache loaders are configured, the get asynchronous call will act
sequentially and will have no different to Map.get(Object).getAsync in interface BasicCache<K,V>key - key to retrieveMap.get(Object)public AdvancedCache<K,V> getAdvancedCache()
getAdvancedCache in interface Cache<K,V>public void compact()
Cachepublic RpcManager getRpcManager()
AdvancedCacheConfiguration.CacheMode
is Configuration.CacheMode.LOCAL, this
method will return null.getRpcManager 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 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 Configuration.storeAsBinary,
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.protected void set(K key, V value)
CacheSupportset in class CacheSupport<K,V>Copyright © 2012 JBoss by Red Hat. All Rights Reserved.