Class InvalidationCacheAccessDelegate
- java.lang.Object
-
- org.infinispan.hibernate.cache.commons.access.InvalidationCacheAccessDelegate
-
- All Implemented Interfaces:
AccessDelegate
- Direct Known Subclasses:
NonTxInvalidationCacheAccessDelegate,TxInvalidationCacheAccessDelegate
public abstract class InvalidationCacheAccessDelegate extends Object implements AccessDelegate
- Since:
- 3.5
- Author:
- Brian Stansberry, Galder ZamarreƱo
-
-
Field Summary
Fields Modifier and Type Field Description protected org.infinispan.AdvancedCachecacheprotected static InfinispanMessageLoggerlogprotected PutFromLoadValidatorputValidatorprotected InfinispanDataRegionregionprotected org.infinispan.AdvancedCache<Object,Object>writeCache
-
Constructor Summary
Constructors Modifier Constructor Description protectedInvalidationCacheAccessDelegate(InfinispanDataRegion region, PutFromLoadValidator validator)Create a new transactional access delegate instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidevict(Object key)Forcibly evict an item from the cache immediately without regard for transaction isolation.voidevictAll()Forcibly evict all items from the cache immediately without regard for transaction isolation.Objectget(Object session, Object key, long txTimestamp)Attempt to retrieve an object from the cache.voidlockAll()Called just before the delegate will have all entries removed.booleanputFromLoad(Object session, Object key, Object value, long txTimestamp, Object version)Attempt to cache an object, after loading from the database.booleanputFromLoad(Object session, Object key, Object value, long txTimestamp, Object version, boolean minimalPutOverride)Attempt to cache an object, after loading from the database, explicitly specifying the minimalPut behavior.voidremove(Object session, Object key)Called after an item has become stale (before the transaction completes).voidremoveAll()Called to evict data from the entire regionvoidunlockAll()Called just after the delegate had all entries removed viaAccessDelegate.removeAll().voidunlockItem(Object session, Object key)Called when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.infinispan.hibernate.cache.commons.access.AccessDelegate
afterInsert, afterUpdate, insert, update
-
-
-
-
Field Detail
-
log
protected static final InfinispanMessageLogger log
-
cache
protected final org.infinispan.AdvancedCache cache
-
region
protected final InfinispanDataRegion region
-
putValidator
protected final PutFromLoadValidator putValidator
-
-
Constructor Detail
-
InvalidationCacheAccessDelegate
protected InvalidationCacheAccessDelegate(InfinispanDataRegion region, PutFromLoadValidator validator)
Create a new transactional access delegate instance.- Parameters:
region- to control access tovalidator- put from load validator
-
-
Method Detail
-
get
public Object get(Object session, Object key, long txTimestamp) throws org.hibernate.cache.CacheException
Attempt to retrieve an object from the cache.- Specified by:
getin interfaceAccessDelegate- Parameters:
session-key- The key of the item to be retrievedtxTimestamp- a timestamp prior to the transaction start time- Returns:
- the cached object or null
- Throws:
org.hibernate.cache.CacheException- if the cache retrieval failed
-
putFromLoad
public boolean putFromLoad(Object session, Object key, Object value, long txTimestamp, Object version)
Description copied from interface:AccessDelegateAttempt to cache an object, after loading from the database.- Specified by:
putFromLoadin interfaceAccessDelegate- Parameters:
session- Current sessionkey- The item keyvalue- The itemtxTimestamp- a timestamp prior to the transaction start timeversion- the item version number- Returns:
- true if the object was successfully cached
-
putFromLoad
public boolean putFromLoad(Object session, Object key, Object value, long txTimestamp, Object version, boolean minimalPutOverride) throws org.hibernate.cache.CacheException
Attempt to cache an object, after loading from the database, explicitly specifying the minimalPut behavior.- Specified by:
putFromLoadin interfaceAccessDelegate- Parameters:
session- Current sessionkey- The item keyvalue- The itemtxTimestamp- a timestamp prior to the transaction start timeversion- the item version numberminimalPutOverride- Explicit minimalPut flag- Returns:
- true if the object was successfully cached
- Throws:
org.hibernate.cache.CacheException- if storing the object failed
-
remove
public void remove(Object session, Object key) throws org.hibernate.cache.CacheException
Description copied from interface:AccessDelegateCalled after an item has become stale (before the transaction completes).- Specified by:
removein interfaceAccessDelegate- Parameters:
session- Current sessionkey- The key of the item to remove- Throws:
org.hibernate.cache.CacheException- if removing the cached item fails
-
lockAll
public void lockAll() throws org.hibernate.cache.CacheExceptionDescription copied from interface:AccessDelegateCalled just before the delegate will have all entries removed. Any work to prevent concurrent modifications while this occurs should happen here- Specified by:
lockAllin interfaceAccessDelegate- Throws:
org.hibernate.cache.CacheException- if locking had an issue
-
unlockAll
public void unlockAll() throws org.hibernate.cache.CacheExceptionDescription copied from interface:AccessDelegateCalled just after the delegate had all entries removed viaAccessDelegate.removeAll(). Any work required to allow for new modifications to happen should be done here- Specified by:
unlockAllin interfaceAccessDelegate- Throws:
org.hibernate.cache.CacheException- if unlocking had an issue
-
removeAll
public void removeAll() throws org.hibernate.cache.CacheExceptionDescription copied from interface:AccessDelegateCalled to evict data from the entire region- Specified by:
removeAllin interfaceAccessDelegate- Throws:
org.hibernate.cache.CacheException- if eviction the region fails
-
evict
public void evict(Object key) throws org.hibernate.cache.CacheException
Description copied from interface:AccessDelegateForcibly evict an item from the cache immediately without regard for transaction isolation.- Specified by:
evictin interfaceAccessDelegate- Parameters:
key- The key of the item to remove- Throws:
org.hibernate.cache.CacheException- if evicting the item fails
-
evictAll
public void evictAll() throws org.hibernate.cache.CacheExceptionDescription copied from interface:AccessDelegateForcibly evict all items from the cache immediately without regard for transaction isolation.- Specified by:
evictAllin interfaceAccessDelegate- Throws:
org.hibernate.cache.CacheException- if evicting items fails
-
unlockItem
public void unlockItem(Object session, Object key) throws org.hibernate.cache.CacheException
Description copied from interface:AccessDelegateCalled when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion. This method is used by "asynchronous" concurrency strategies.- Specified by:
unlockItemin interfaceAccessDelegatekey- The item key- Throws:
org.hibernate.cache.CacheException- Propogated from underlyingRegion
-
-