Class TombstoneAccessDelegate

java.lang.Object
org.infinispan.hibernate.cache.commons.access.TombstoneAccessDelegate
All Implemented Interfaces:
AccessDelegate

public class TombstoneAccessDelegate extends Object implements AccessDelegate
Author:
Radim Vansa <rvansa@redhat.com>
  • Field Details

    • log

      protected static final InfinispanMessageLogger log
    • region

      protected final InfinispanDataRegion region
    • cache

      protected final org.infinispan.AdvancedCache cache
    • writeMap

      protected final org.infinispan.functional.FunctionalMap.ReadWriteMap<Object,Object> writeMap
    • asyncWriteMap

      protected final org.infinispan.functional.FunctionalMap.ReadWriteMap<Object,Object> asyncWriteMap
  • Constructor Details

  • Method Details

    • get

      public Object get(Object session, Object key, long txTimestamp) throws org.hibernate.cache.CacheException
      Specified by:
      get in interface AccessDelegate
      Throws:
      org.hibernate.cache.CacheException
    • putFromLoad

      public boolean putFromLoad(Object session, Object key, Object value, long txTimestamp, Object version)
      Description copied from interface: AccessDelegate
      Attempt to cache an object, after loading from the database.
      Specified by:
      putFromLoad in interface AccessDelegate
      Parameters:
      session - Current session
      key - The item key
      value - The item
      txTimestamp - a timestamp prior to the transaction start time
      version - 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
      Description copied from interface: AccessDelegate
      Attempt to cache an object, after loading from the database, explicitly specifying the minimalPut behavior.
      Specified by:
      putFromLoad in interface AccessDelegate
      Parameters:
      session - Current session.
      key - The item key
      value - The item
      txTimestamp - a timestamp prior to the transaction start time
      version - the item version number
      minimalPutOverride - Explicit minimalPut flag
      Returns:
      true if the object was successfully cached
      Throws:
      org.hibernate.cache.CacheException - Propogated from underlying Region
    • insert

      public boolean insert(Object session, Object key, Object value, Object version) throws org.hibernate.cache.CacheException
      Description copied from interface: AccessDelegate
      Called after an item has been inserted (before the transaction completes), instead of calling evict().
      Specified by:
      insert in interface AccessDelegate
      Parameters:
      session - Current session
      key - The item key
      value - The item
      version - The item's version value
      Returns:
      Were the contents of the cache actual changed by this operation?
      Throws:
      org.hibernate.cache.CacheException - if the insert fails
    • update

      public boolean update(Object session, Object key, Object value, Object currentVersion, Object previousVersion) throws org.hibernate.cache.CacheException
      Description copied from interface: AccessDelegate
      Called after an item has been updated (before the transaction completes), instead of calling evict().
      Specified by:
      update in interface AccessDelegate
      Parameters:
      session - Current session
      key - The item key
      value - The item
      currentVersion - The item's current version value
      previousVersion - The item's previous version value
      Returns:
      Whether the contents of the cache actual changed by this operation
      Throws:
      org.hibernate.cache.CacheException - if the update fails
    • remove

      public void remove(Object session, Object key) throws org.hibernate.cache.CacheException
      Description copied from interface: AccessDelegate
      Called after an item has become stale (before the transaction completes).
      Specified by:
      remove in interface AccessDelegate
      Parameters:
      session - Current session
      key - The key of the item to remove
      Throws:
      org.hibernate.cache.CacheException - if removing the cached item fails
    • write

      protected void write(Object session, Object key, Object value)
    • lockAll

      public void lockAll() throws org.hibernate.cache.CacheException
      Description copied from interface: AccessDelegate
      Called just before the delegate will have all entries removed. Any work to prevent concurrent modifications while this occurs should happen here
      Specified by:
      lockAll in interface AccessDelegate
      Throws:
      org.hibernate.cache.CacheException - if locking had an issue
    • unlockAll

      public void unlockAll() throws org.hibernate.cache.CacheException
      Description copied from interface: AccessDelegate
      Called just after the delegate had all entries removed via AccessDelegate.removeAll(). Any work required to allow for new modifications to happen should be done here
      Specified by:
      unlockAll in interface AccessDelegate
      Throws:
      org.hibernate.cache.CacheException - if unlocking had an issue
    • removeAll

      public void removeAll() throws org.hibernate.cache.CacheException
      Description copied from interface: AccessDelegate
      Called to evict data from the entire region
      Specified by:
      removeAll in interface AccessDelegate
      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: AccessDelegate
      Forcibly evict an item from the cache immediately without regard for transaction isolation.
      Specified by:
      evict in interface AccessDelegate
      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.CacheException
      Description copied from interface: AccessDelegate
      Forcibly evict all items from the cache immediately without regard for transaction isolation.
      Specified by:
      evictAll in interface AccessDelegate
      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: AccessDelegate
      Called 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:
      unlockItem in interface AccessDelegate
      key - The item key
      Throws:
      org.hibernate.cache.CacheException - Propogated from underlying Region
    • afterInsert

      public boolean afterInsert(Object session, Object key, Object value, Object version)
      Description copied from interface: AccessDelegate
      Called after an item has been inserted (after the transaction completes), instead of calling release(). This method is used by "asynchronous" concurrency strategies.
      Specified by:
      afterInsert in interface AccessDelegate
      key - The item key
      value - The item
      version - The item's version value
      Returns:
      Were the contents of the cache actual changed by this operation?
    • afterUpdate

      public boolean afterUpdate(Object session, Object key, Object value, Object currentVersion, Object previousVersion, org.hibernate.cache.spi.access.SoftLock lock)
      Description copied from interface: AccessDelegate
      Called after an item has been updated (after the transaction completes), instead of calling release(). This method is used by "asynchronous" concurrency strategies.
      Specified by:
      afterUpdate in interface AccessDelegate
      key - The item key
      value - The item
      currentVersion - The item's current version value
      previousVersion - The item's previous version value
      lock - The lock previously obtained from #lockItem
      Returns:
      Were the contents of the cache actual changed by this operation?