public interface IdentityMap
extends java.lang.Cloneable
Purpose: Provides the interface for IdentityMap interaction.
Responsibilities: Provides access to all of the public interface for the EclipseLink IdentityMaps. This interface can be used if implementing custom identity maps that are radically different than the stock IdentityMaps otherwise simply extending the appropriate IdentityMap implementation is the best approach.
CacheKey
Modifier and Type | Method and Description |
---|---|
CacheKey |
acquireDeferredLock(java.lang.Object primaryKey,
boolean isCacheCheckComplete)
Acquire a deferred lock on the object.
|
CacheKey |
acquireLock(java.lang.Object primaryKey,
boolean forMerge,
boolean isCacheCheckComplete)
Acquire an active lock on the object.
|
CacheKey |
acquireLockNoWait(java.lang.Object primaryKey,
boolean forMerge)
Acquire an active lock on the object, if not already locked.
|
CacheKey |
acquireLockWithWait(java.lang.Object primaryKey,
boolean forMerge,
int wait)
Acquire an active lock on the object, if not already locked.
|
CacheKey |
acquireReadLockOnCacheKey(java.lang.Object primaryKey)
Acquire a read lock on the object.
|
CacheKey |
acquireReadLockOnCacheKeyNoWait(java.lang.Object primaryKey)
Acquire a read lock on the object, if not already locked.
|
java.lang.Object |
clone()
Clone the map and all of the CacheKeys.
|
void |
collectLocks(java.util.HashMap threadList)
Add all locked CacheKeys to the map grouped by thread.
|
boolean |
containsKey(java.lang.Object primaryKey)
Return true if an CacheKey with the primary key is in the map.
|
java.util.Enumeration |
elements()
Allow for the cache to be iterated on.
|
java.lang.Object |
get(java.lang.Object primaryKey)
Return the object cached in the identity map or null if it could not be found.
|
java.util.Map<java.lang.Object,CacheKey> |
getAllCacheKeysFromIdentityMapWithEntityPK(java.lang.Object[] pkList,
ClassDescriptor descriptor,
AbstractSession session)
ADVANCED:
Using a list of Entity PK this method will attempt to bulk load the entire list from the cache.
|
java.util.Map<java.lang.Object,java.lang.Object> |
getAllFromIdentityMapWithEntityPK(java.lang.Object[] pkList,
ClassDescriptor descriptor,
AbstractSession session)
ADVANCED:
Using a list of Entity PK this method will attempt to bulk load the entire list from the cache.
|
CacheKey |
getCacheKey(java.lang.Object primaryKey,
boolean forMerge)
Get the cache key (with object) for the primary key.
|
CacheKey |
getCacheKeyForLock(java.lang.Object primaryKey)
Get the cache key (with object) for the primary key in order to acquire a lock.
|
ClassDescriptor |
getDescriptor()
Return the descriptor that this is the map for.
|
java.lang.Class |
getDescriptorClass()
Return the class that this is the map for.
|
int |
getMaxSize() |
int |
getSize()
Return the number of CacheKeys in the IdentityMap.
|
int |
getSize(java.lang.Class myClass,
boolean recurse)
Return the number of actual objects of type myClass in the IdentityMap.
|
java.lang.Object |
getWrapper(java.lang.Object primaryKey)
Get the wrapper object from the cache key associated with the given primary key,
this is used for EJB2.
|
java.lang.Object |
getWriteLockValue(java.lang.Object primaryKey)
Get the write lock value from the cache key associated to the primarykey.
|
java.util.Enumeration |
keys()
Allow for the CacheKeys to be iterated on.
|
java.util.Enumeration |
keys(boolean checkReadLocks)
Allow for the CacheKeys to be iterated on.
|
void |
lazyRelationshipLoaded(java.lang.Object rootEntity,
ValueHolderInterface valueHolder,
ForeignReferenceMapping mapping)
Notify the cache that a lazy relationship has been triggered in the object
and the cache may need to be updated
|
CacheKey |
put(java.lang.Object primaryKey,
java.lang.Object object,
java.lang.Object writeLockValue,
long readTime)
Store the object in the cache at its primary key.
|
void |
release()
This method may be called during initialize all identity maps.
|
java.lang.Object |
remove(CacheKey cacheKey)
Remove the CacheKey from the map.
|
java.lang.Object |
remove(java.lang.Object primaryKey,
java.lang.Object object)
Remove the CacheKey with the primaryKey from the map.
|
void |
setDescriptor(ClassDescriptor descriptor)
Set the descriptor that this is the map for.
|
void |
setWrapper(java.lang.Object primaryKey,
java.lang.Object wrapper)
Update the wrapper object in the CacheKey associated with the given primaryKey,
this is used for EJB2.
|
void |
setWriteLockValue(java.lang.Object primaryKey,
java.lang.Object writeLockValue)
Update the write lock value of the CacheKey associated with the given primaryKey.
|
java.lang.String |
toString() |
void |
updateMaxSize(int maxSize)
This method will be used to update the max cache size, any objects exceeding the max cache size will
be remove from the cache.
|
CacheKey acquireDeferredLock(java.lang.Object primaryKey, boolean isCacheCheckComplete)
CacheKey acquireLock(java.lang.Object primaryKey, boolean forMerge, boolean isCacheCheckComplete)
CacheKey acquireLockNoWait(java.lang.Object primaryKey, boolean forMerge)
CacheKey acquireLockWithWait(java.lang.Object primaryKey, boolean forMerge, int wait)
CacheKey acquireReadLockOnCacheKey(java.lang.Object primaryKey)
CacheKey acquireReadLockOnCacheKeyNoWait(java.lang.Object primaryKey)
java.lang.Object clone()
void collectLocks(java.util.HashMap threadList)
boolean containsKey(java.lang.Object primaryKey)
primaryKey
- is the primary key for the object to search for.java.util.Enumeration elements()
java.lang.Object get(java.lang.Object primaryKey)
java.util.Map<java.lang.Object,java.lang.Object> getAllFromIdentityMapWithEntityPK(java.lang.Object[] pkList, ClassDescriptor descriptor, AbstractSession session)
pkList
- List of Entity PKs to extract from the cacheClassDescriptor
- Descriptor type to be retrieved.QueryException
java.util.Map<java.lang.Object,CacheKey> getAllCacheKeysFromIdentityMapWithEntityPK(java.lang.Object[] pkList, ClassDescriptor descriptor, AbstractSession session)
pkList
- List of Entity PKs to extract from the cacheClassDescriptor
- Descriptor type to be retrieved.QueryException
CacheKey getCacheKey(java.lang.Object primaryKey, boolean forMerge)
CacheKey getCacheKeyForLock(java.lang.Object primaryKey)
java.lang.Class getDescriptorClass()
ClassDescriptor getDescriptor()
int getMaxSize()
int getSize()
int getSize(java.lang.Class myClass, boolean recurse)
java.lang.Object getWrapper(java.lang.Object primaryKey)
java.lang.Object getWriteLockValue(java.lang.Object primaryKey)
java.util.Enumeration keys()
java.util.Enumeration keys(boolean checkReadLocks)
checkReadLocks
- - true if readLocks should be checked, false otherwise.void lazyRelationshipLoaded(java.lang.Object rootEntity, ValueHolderInterface valueHolder, ForeignReferenceMapping mapping)
CacheKey put(java.lang.Object primaryKey, java.lang.Object object, java.lang.Object writeLockValue, long readTime)
primaryKey
- is the primary key for the object.object
- is the domain object to cache.writeLockValue
- is the current write lock value of object, if null the version is ignored.void release()
java.lang.Object remove(java.lang.Object primaryKey, java.lang.Object object)
java.lang.Object remove(CacheKey cacheKey)
void updateMaxSize(int maxSize)
void setDescriptor(ClassDescriptor descriptor)
void setWrapper(java.lang.Object primaryKey, java.lang.Object wrapper)
void setWriteLockValue(java.lang.Object primaryKey, java.lang.Object writeLockValue)
java.lang.String toString()
toString
in class java.lang.Object
EclipseLink 2.6.3, "build v20160428-59c81c5" API Reference