org.codehaus.groovy.util

## Class LazyReference<T>

- java.lang.Object
- - java.util.concurrent.locks.AbstractOwnableSynchronizer
  - - java.util.concurrent.locks.AbstractQueuedSynchronizer
    - - org.codehaus.groovy.util.LockableObject
      - - org.codehaus.groovy.util.LazyReference<T>

- All Implemented Interfaces:
    java.io.Serializable

      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`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LazyReference(ReferenceBundle bundle)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `clear()`
    `T` | `get()`
    `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, hasQueuedPredecessors, 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`

- - ### Constructor Detail

    - #### LazyReference

          public LazyReference(ReferenceBundle bundle)

  - ### Method Detail

    - #### get

          public T get()

    - #### clear

          public void clear()

    - #### initValue

          public abstract T initValue()

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.util.concurrent.locks.AbstractQueuedSynchronizer`