EclipseLink 2.2.0, build 'v20110202-r8913' API Reference

org.eclipse.persistence.sessions.interceptors
Class CacheKeyInterceptor

java.lang.Object
  extended by org.eclipse.persistence.internal.identitymaps.CacheKey
      extended by org.eclipse.persistence.sessions.interceptors.CacheKeyInterceptor
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class CacheKeyInterceptor
extends org.eclipse.persistence.internal.identitymaps.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:
Serialized Form
Author:
Gordon Yorke

Field Summary
protected  org.eclipse.persistence.internal.identitymaps.CacheKey wrappedKey
           
 
Fields inherited from class org.eclipse.persistence.internal.identitymaps.CacheKey
CACHE_KEY_INVALID, CHECK_INVALIDATION_POLICY, invalidationState, isIsolated, isWrapper, key, lastUpdatedQueryId, mapOwner, MAX_WAIT_TRIES, mutex, object, protectedForeignKeys, readTime, record, wrapper, writeLockValue
 
Constructor Summary
CacheKeyInterceptor(org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey)
           
 
Method Summary
 void acquire()
          Acquire the lock on the cache key object.
 void acquire(boolean forMerge)
          Acquire the lock on the cache key object.
 void acquireDeferredLock()
          Acquire the deferred lock.
 boolean acquireIfUnownedNoWait()
          Acquire the lock on the cache key object.
 boolean acquireNoWait()
          Acquire the lock on the cache key object.
 boolean acquireNoWait(boolean forMerge)
          Acquire the lock on the cache key object.
 void acquireReadLock()
          Acquire the read lock on the cache key object.
 boolean acquireReadLockNoWait()
          Acquire the read lock on the cache key object.
 void checkDeferredLock()
           
 void checkReadLock()
           
 java.lang.Object clone()
           
 boolean equals(org.eclipse.persistence.internal.identitymaps.CacheKey key)
           
 int getInvalidationState()
           
 java.lang.Object getKey()
           
 long getLastUpdatedQueryId()
           
 org.eclipse.persistence.internal.helper.ConcurrencyManager getMutex()
           
 java.lang.Object getObject()
           
 org.eclipse.persistence.internal.identitymaps.IdentityMap getOwningMap()
           
 long getReadTime()
          INTERNAL: Return the current value of the Read Time variable
 Record getRecord()
           
 org.eclipse.persistence.internal.identitymaps.CacheKey getWrappedCacheKey()
          If a Wrapper subclasses this CacheKey this method will be used to unwrap the cache key.
 java.lang.Object getWrapper()
           
 java.lang.Object getWriteLockValue()
           
 int hashCode()
           
 boolean isAcquired()
           
 void release()
          Release the lock on the cache key object.
 void releaseDeferredLock()
          Release the deferred lock
 void releaseReadLock()
          Release the read lock on the cache key object.
 java.lang.Object removeFromOwningMap()
          Removes this cacheKey from the owning map
 void setInvalidationState(int invalidationState)
           
 void setKey(java.util.Vector key)
           
 void setLastUpdatedQueryId(long id)
           
 void setMutex(org.eclipse.persistence.internal.helper.ConcurrencyManager mutex)
           
 void setObject(java.lang.Object object)
           
 void setOwningMap(org.eclipse.persistence.internal.identitymaps.AbstractIdentityMap map)
           
 void setReadTime(long readTime)
           
 void setRecord(Record newRecord)
           
 void setWrapper(java.lang.Object wrapper)
           
 void setWriteLockValue(java.lang.Object writeLockValue)
           
 java.lang.String toString()
           
 void updateAccess()
           
 
Methods inherited from class org.eclipse.persistence.internal.identitymaps.CacheKey
acquireWithWait, equals, getProtectedForeignKeys, isIsolated, isWrapper, setIsolated, setIsWrapper, setKey, setOwningMap, setProtectedForeignKeys, transitionToDeferredLock, waitForObject
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

wrappedKey

protected org.eclipse.persistence.internal.identitymaps.CacheKey wrappedKey
Constructor Detail

CacheKeyInterceptor

public CacheKeyInterceptor(org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey)
Method Detail

acquire

public void acquire()
Acquire the lock on the cache key object.

Overrides:
acquire in class org.eclipse.persistence.internal.identitymaps.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 org.eclipse.persistence.internal.identitymaps.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 org.eclipse.persistence.internal.identitymaps.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 org.eclipse.persistence.internal.identitymaps.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 org.eclipse.persistence.internal.identitymaps.CacheKey

acquireDeferredLock

public void acquireDeferredLock()
Acquire the deferred lock.

Overrides:
acquireDeferredLock in class org.eclipse.persistence.internal.identitymaps.CacheKey

checkReadLock

public void checkReadLock()
Overrides:
checkReadLock in class org.eclipse.persistence.internal.identitymaps.CacheKey

checkDeferredLock

public void checkDeferredLock()
Overrides:
checkDeferredLock in class org.eclipse.persistence.internal.identitymaps.CacheKey

acquireReadLock

public void acquireReadLock()
Acquire the read lock on the cache key object.

Overrides:
acquireReadLock in class org.eclipse.persistence.internal.identitymaps.CacheKey

acquireReadLockNoWait

public boolean acquireReadLockNoWait()
Acquire the read lock on the cache key object.

Overrides:
acquireReadLockNoWait in class org.eclipse.persistence.internal.identitymaps.CacheKey

clone

public java.lang.Object clone()
Overrides:
clone in class org.eclipse.persistence.internal.identitymaps.CacheKey

equals

public boolean equals(org.eclipse.persistence.internal.identitymaps.CacheKey key)
Overrides:
equals in class org.eclipse.persistence.internal.identitymaps.CacheKey

getLastUpdatedQueryId

public long getLastUpdatedQueryId()
Overrides:
getLastUpdatedQueryId in class org.eclipse.persistence.internal.identitymaps.CacheKey

getKey

public java.lang.Object getKey()
Overrides:
getKey in class org.eclipse.persistence.internal.identitymaps.CacheKey

getMutex

public org.eclipse.persistence.internal.helper.ConcurrencyManager getMutex()
Overrides:
getMutex in class org.eclipse.persistence.internal.identitymaps.CacheKey

getObject

public java.lang.Object getObject()
Overrides:
getObject in class org.eclipse.persistence.internal.identitymaps.CacheKey

getOwningMap

public org.eclipse.persistence.internal.identitymaps.IdentityMap getOwningMap()
Overrides:
getOwningMap in class org.eclipse.persistence.internal.identitymaps.CacheKey

getReadTime

public long getReadTime()
INTERNAL: Return the current value of the Read Time variable

Overrides:
getReadTime in class org.eclipse.persistence.internal.identitymaps.CacheKey

getRecord

public Record getRecord()
Overrides:
getRecord in class org.eclipse.persistence.internal.identitymaps.CacheKey

getWrappedCacheKey

public org.eclipse.persistence.internal.identitymaps.CacheKey getWrappedCacheKey()
If a Wrapper subclasses this CacheKey this method will be used to unwrap the cache key.

Overrides:
getWrappedCacheKey in class org.eclipse.persistence.internal.identitymaps.CacheKey
Returns:

getWrapper

public java.lang.Object getWrapper()
Overrides:
getWrapper in class org.eclipse.persistence.internal.identitymaps.CacheKey

getWriteLockValue

public java.lang.Object getWriteLockValue()
Overrides:
getWriteLockValue in class org.eclipse.persistence.internal.identitymaps.CacheKey

hashCode

public int hashCode()
Overrides:
hashCode in class org.eclipse.persistence.internal.identitymaps.CacheKey

isAcquired

public boolean isAcquired()
Overrides:
isAcquired in class org.eclipse.persistence.internal.identitymaps.CacheKey

getInvalidationState

public int getInvalidationState()
Overrides:
getInvalidationState in class org.eclipse.persistence.internal.identitymaps.CacheKey

release

public void release()
Release the lock on the cache key object.

Overrides:
release in class org.eclipse.persistence.internal.identitymaps.CacheKey

releaseDeferredLock

public void releaseDeferredLock()
Release the deferred lock

Overrides:
releaseDeferredLock in class org.eclipse.persistence.internal.identitymaps.CacheKey

releaseReadLock

public void releaseReadLock()
Release the read lock on the cache key object.

Overrides:
releaseReadLock in class org.eclipse.persistence.internal.identitymaps.CacheKey

removeFromOwningMap

public java.lang.Object removeFromOwningMap()
Removes this cacheKey from the owning map

Overrides:
removeFromOwningMap in class org.eclipse.persistence.internal.identitymaps.CacheKey

setInvalidationState

public void setInvalidationState(int invalidationState)
Overrides:
setInvalidationState in class org.eclipse.persistence.internal.identitymaps.CacheKey

setLastUpdatedQueryId

public void setLastUpdatedQueryId(long id)
Overrides:
setLastUpdatedQueryId in class org.eclipse.persistence.internal.identitymaps.CacheKey

setKey

public void setKey(java.util.Vector key)

setMutex

public void setMutex(org.eclipse.persistence.internal.helper.ConcurrencyManager mutex)
Overrides:
setMutex in class org.eclipse.persistence.internal.identitymaps.CacheKey

setObject

public void setObject(java.lang.Object object)
Overrides:
setObject in class org.eclipse.persistence.internal.identitymaps.CacheKey

setOwningMap

public void setOwningMap(org.eclipse.persistence.internal.identitymaps.AbstractIdentityMap map)

setReadTime

public void setReadTime(long readTime)
Overrides:
setReadTime in class org.eclipse.persistence.internal.identitymaps.CacheKey

setRecord

public void setRecord(Record newRecord)
Overrides:
setRecord in class org.eclipse.persistence.internal.identitymaps.CacheKey

setWrapper

public void setWrapper(java.lang.Object wrapper)
Overrides:
setWrapper in class org.eclipse.persistence.internal.identitymaps.CacheKey

setWriteLockValue

public void setWriteLockValue(java.lang.Object writeLockValue)
Overrides:
setWriteLockValue in class org.eclipse.persistence.internal.identitymaps.CacheKey

toString

public java.lang.String toString()
Overrides:
toString in class org.eclipse.persistence.internal.identitymaps.CacheKey

updateAccess

public void updateAccess()
Overrides:
updateAccess in class org.eclipse.persistence.internal.identitymaps.CacheKey

EclipseLink 2.2.0, build 'v20110202-r8913' API Reference