All Implemented Interfaces:
Serializable, Cloneable

public class CacheKeyInterceptor extends CacheKey
The CacheKeyInterceptor allows a Cache Interceptor implementation to wrap the EclipseLink CacheKey. The CacheKey is an object that wraps the object and maintains cached based information about the object like primary key, write lock value and locking. The EclipseLink runtime will access the CacheKey and directly when releasing locks.
See Also:
  • Field Details

    • wrappedKey

      protected CacheKey wrappedKey
  • Constructor Details

    • CacheKeyInterceptor

      public CacheKeyInterceptor(CacheKey cacheKey)
  • Method Details

    • acquire

      public void acquire()
      Acquire the lock on the cache key object.
      Overrides:
      acquire in class CacheKey
    • acquire

      public void acquire(boolean forMerge)
      Acquire the lock on the cache key object. For the merge process called with true from the merge process, if true then the refresh will not refresh the object
      Overrides:
      acquire in class CacheKey
    • acquireNoWait

      public boolean acquireNoWait()
      Acquire the lock on the cache key object. But only if the object has no lock on it Added for CR 2317
      Overrides:
      acquireNoWait in class CacheKey
    • acquireIfUnownedNoWait

      public boolean acquireIfUnownedNoWait()
      Acquire the lock on the cache key object. Only acquire a lock if the cache key's active thread is not set. Added for Bug 5840635
      Overrides:
      acquireIfUnownedNoWait in class CacheKey
    • acquireNoWait

      public boolean acquireNoWait(boolean forMerge)
      Acquire the lock on the cache key object. But only if the object has no lock on it Added for CR 2317 called with true from the merge process, if true then the refresh will not refresh the object
      Overrides:
      acquireNoWait in class CacheKey
    • acquireDeferredLock

      public void acquireDeferredLock()
      Acquire the deferred lock.
      Overrides:
      acquireDeferredLock in class CacheKey
    • checkReadLock

      public void checkReadLock()
      Description copied from class: CacheKey
      Check the read lock on the cache key object. This can be called to ensure the cache key has a valid built object. It does not hold a lock, so the object could be refreshed afterwards.
      Overrides:
      checkReadLock in class CacheKey
    • checkDeferredLock

      public void checkDeferredLock()
      Description copied from class: CacheKey
      Check the deferred lock on the cache key object. This can be called to ensure the cache key has a valid built object. It does not hold a lock, so the object could be refreshed afterwards.
      Overrides:
      checkDeferredLock in class CacheKey
    • acquireReadLock

      public void acquireReadLock()
      Acquire the read lock on the cache key object.
      Overrides:
      acquireReadLock in class CacheKey
    • acquireReadLockNoWait

      public boolean acquireReadLockNoWait()
      Acquire the read lock on the cache key object.
      Overrides:
      acquireReadLockNoWait in class CacheKey
    • getActiveThread

      public Thread getActiveThread()
      Return the active thread.
      Overrides:
      getActiveThread in class CacheKey
    • clone

      public Object clone()
      Description copied from class: CacheKey
      INTERNAL: Clones itself.
      Overrides:
      clone in class CacheKey
    • equals

      public boolean equals(CacheKey key)
      Description copied from class: CacheKey
      Determine if the receiver is equal to key. Use an index compare, because it is much faster than enumerations.
      Overrides:
      equals in class CacheKey
    • getLastUpdatedQueryId

      public long getLastUpdatedQueryId()
      Description copied from class: CacheKey
      INTERNAL: This method returns the system time in millis seconds at which this object was last refreshed CR #4365 CR #2698903 ... instead of using millis we will now use id's instead. Method renamed appropriately.
      Overrides:
      getLastUpdatedQueryId in class CacheKey
    • getKey

      public Object getKey()
      Overrides:
      getKey in class CacheKey
    • getObject

      public Object getObject()
      Overrides:
      getObject in class CacheKey
    • getOwningMap

      public IdentityMap getOwningMap()
      Overrides:
      getOwningMap in class CacheKey
    • getReadTime

      public long getReadTime()
      INTERNAL: Return the current value of the Read Time variable
      Overrides:
      getReadTime in class CacheKey
    • getRecord

      public DataRecord getRecord()
      Overrides:
      getRecord in class CacheKey
    • getWrappedCacheKey

      public CacheKey getWrappedCacheKey()
      If a Wrapper subclasses this CacheKey this method will be used to unwrap the cache key.
      Overrides:
      getWrappedCacheKey in class CacheKey
    • getWrapper

      public Object getWrapper()
      Overrides:
      getWrapper in class CacheKey
    • getWriteLockValue

      public Object getWriteLockValue()
      Overrides:
      getWriteLockValue in class CacheKey
    • hashCode

      public int hashCode()
      Description copied from class: CacheKey
      Overrides hashCode() in Object to use the primaryKey's hashCode for storage in data structures.
      Overrides:
      hashCode in class CacheKey
    • isAcquired

      public boolean isAcquired()
      Description copied from class: ConcurrencyManager
      Return if a thread has acquire this manager.
      Overrides:
      isAcquired in class ConcurrencyManager
    • getInvalidationState

      public int getInvalidationState()
      Description copied from class: CacheKey
      INTERNAL: Return the value of the invalidationState Variable The return value will be a constant CHECK_INVALIDATION_POLICY - The Invalidation policy is must be checked for this cache key's sate CACHE_KEY_INVALID - This cache key has been labeled invalid.
      Overrides:
      getInvalidationState in class CacheKey
    • release

      public void release()
      Release the lock on the cache key object.
      Overrides:
      release in class CacheKey
    • releaseDeferredLock

      public void releaseDeferredLock()
      Release the deferred lock
      Overrides:
      releaseDeferredLock in class CacheKey
    • releaseReadLock

      public void releaseReadLock()
      Release the read lock on the cache key object.
      Overrides:
      releaseReadLock in class CacheKey
    • removeFromOwningMap

      public Object removeFromOwningMap()
      Removes this cacheKey from the owning map
      Overrides:
      removeFromOwningMap in class CacheKey
    • setInvalidationState

      public void setInvalidationState(int invalidationState)
      Description copied from class: CacheKey
      INTERNAL: Set the value of the invalidationState Variable The possible values are from an enumeration of constants CHECK_INVALIDATION_POLICY - The invalidation policy is must be checked for this cache key's sate CACHE_KEY_INVALID - This cache key has been labelled invalid.
      Overrides:
      setInvalidationState in class CacheKey
    • setLastUpdatedQueryId

      public void setLastUpdatedQueryId(long id)
      Description copied from class: CacheKey
      INTERNAL: This method sets the system time in millis seconds at which this object was last refreshed CR #4365 CR #2698903 ... instead of using millis we will now use ids instead. Method renamed appropriately.
      Overrides:
      setLastUpdatedQueryId in class CacheKey
    • setKey

      public void setKey(Object key)
      Overrides:
      setKey in class CacheKey
    • setObject

      public void setObject(Object object)
      Overrides:
      setObject in class CacheKey
    • setOwningMap

      public void setOwningMap(AbstractIdentityMap map)
    • setReadTime

      public void setReadTime(long readTime)
      Description copied from class: CacheKey
      INTERNAL: Set the read time of this cache key
      Overrides:
      setReadTime in class CacheKey
    • setRecord

      public void setRecord(DataRecord newDataRecord)
      Overrides:
      setRecord in class CacheKey
    • setWrapper

      public void setWrapper(Object wrapper)
      Overrides:
      setWrapper in class CacheKey
    • setWriteLockValue

      public void setWriteLockValue(Object writeLockValue)
      Overrides:
      setWriteLockValue in class CacheKey
    • toString

      public String toString()
      Description copied from class: ConcurrencyManager
      Print the nested depth.
      Overrides:
      toString in class CacheKey
    • updateAccess

      public void updateAccess()
      Description copied from class: CacheKey
      Notifies that cache key that it has been accessed. Allows the LRU sub-cache to be maintained.
      Overrides:
      updateAccess in class CacheKey