blob: 19d5a64c25078ec545acf0bdd71ff92263e0d63a [file] [log] [blame]
package org.eclipse.persistence.internal.identitymaps;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
public class QueueableWeakCacheKey extends WeakCacheKey {
// This the reference queue from the owning map that
// the weak references will be registered to.
// makes for easy cleanup
protected ReferenceQueue referenceQueue;
public QueueableWeakCacheKey(Object primaryKey, Object object, Object writeLockValue, long readTime, ReferenceQueue refQueue, boolean isIsolated) {
super(primaryKey, object, writeLockValue, readTime, isIsolated);
this.referenceQueue = refQueue;
}
public void setObject(Object object) {
this.reference = new CacheKeyReference(object, referenceQueue, this);
}
/**
* Avoid acquiring locks for unit of work.
*/
public void acquire() {
return;
}
/**
* Avoid acquiring locks for unit of work.
*/
public void acquire(boolean forMerge) {
return;
}
/**
* Avoid acquiring locks for unit of work.
*/
public boolean acquireNoWait() {
return true;
}
/**
* Avoid acquiring locks for unit of work.
*/
public boolean acquireNoWait(boolean forMerge) {
return true;
}
/**
* Avoid acquiring locks for unit of work.
*/
public void acquireDeferredLock() {
return;
}
/**
* Avoid acquiring locks for unit of work.
*/
public void checkReadLock() {
return;
}
/**
* Avoid acquiring locks for unit of work.
*/
public void acquireReadLock() {
return;
}
/**
* Avoid acquiring locks for unit of work.
*/
public boolean acquireReadLockNoWait() {
return true;
}
/**
* Avoid acquiring locks for unit of work.
*/
public boolean isAcquired() {
return false;
}
/**
* Avoid acquiring locks for unit of work.
*/
public void release() {
return;
}
/**
* Avoid acquiring locks for unit of work.
*/
public void releaseDeferredLock() {
return;
}
/**
* Avoid acquiring locks for unit of work.
*/
public void releaseReadLock() {
return;
}
static class CacheKeyReference extends WeakReference{
protected QueueableWeakCacheKey owner;
public CacheKeyReference(Object object, ReferenceQueue referenceQueue, QueueableWeakCacheKey owner){
super(object, referenceQueue);
this.owner = owner;
}
public QueueableWeakCacheKey getOwner(){
return owner;
}
}
}