org.codehaus.groovy.util
Class LazyReference<T>

java.lang.Object
  extended by java.util.concurrent.locks.AbstractOwnableSynchronizer
      extended by java.util.concurrent.locks.AbstractQueuedSynchronizer
          extended by org.codehaus.groovy.util.LockableObject
              extended by org.codehaus.groovy.util.LazyReference<T>
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
ClassInfo.LazyCachedClassRef, ClassInfo.LazyClassLoaderRef

public abstract class LazyReference<T>
extends LockableObject

Soft reference with lazy initialization under lock

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.concurrent.locks.AbstractQueuedSynchronizer
java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject
 
Field Summary
private  ReferenceBundle bundle
           
private static ManagedReference INIT
           
private static ManagedReference NULL_REFERENCE
           
private  ManagedReference<T> reference
           
 
Fields inherited from class org.codehaus.groovy.util.LockableObject
owner
 
Constructor Summary
LazyReference(ReferenceBundle bundle)
           
 
Method Summary
 void clear()
           
 T get()
           
private  T getLocked(boolean force)
           
abstract  T initValue()
           
 java.lang.String toString()
           
 
Methods inherited from class org.codehaus.groovy.util.LockableObject
isHeldExclusively, lock, tryAcquire, tryRelease, unlock
 
Methods inherited from class java.util.concurrent.locks.AbstractQueuedSynchronizer
acquire, acquireInterruptibly, acquireShared, acquireSharedInterruptibly, compareAndSetState, getExclusiveQueuedThreads, getFirstQueuedThread, getQueuedThreads, getQueueLength, getSharedQueuedThreads, getState, getWaitingThreads, getWaitQueueLength, hasContended, hasQueuedThreads, hasWaiters, isQueued, owns, release, releaseShared, setState, tryAcquireNanos, tryAcquireShared, tryAcquireSharedNanos, tryReleaseShared
 
Methods inherited from class java.util.concurrent.locks.AbstractOwnableSynchronizer
getExclusiveOwnerThread, setExclusiveOwnerThread
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INIT

private static final ManagedReference INIT

NULL_REFERENCE

private static final ManagedReference NULL_REFERENCE

reference

private ManagedReference<T> reference

bundle

private final ReferenceBundle bundle
Constructor Detail

LazyReference

public LazyReference(ReferenceBundle bundle)
Method Detail

get

public T get()

getLocked

private T getLocked(boolean force)

clear

public void clear()

initValue

public abstract T initValue()

toString

public java.lang.String toString()
Overrides:
toString in class java.util.concurrent.locks.AbstractQueuedSynchronizer


Copyright © ${year} The Codehaus. All Rights Reserved.