Class CacheKeyInterceptor

  • 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.
    Author:
    Gordon Yorke
    See Also:
    Serialized Form
    • Field Detail

      • wrappedKey

        protected CacheKey wrappedKey
    • Constructor Detail

      • CacheKeyInterceptor

        public CacheKeyInterceptor​(CacheKey cacheKey)
    • Method Detail

      • 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
      • 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
      • getReadTime

        public long getReadTime()
        INTERNAL: Return the current value of the Read Time variable
        Overrides:
        getReadTime 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
        Returns:
      • 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
      • 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
      • releaseReadLock

        public void releaseReadLock()
        Release the read lock on the cache key object.
        Overrides:
        releaseReadLock 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
      • 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
      • 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