Package 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:
  `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

`AbstractQueuedSynchronizer.ConditionObject`

## Constructor Summary

Constructors
Constructor
Description
`LazyReference(ReferenceBundle bundle)`

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
`T`
`get()`
`abstract T`
`initValue()`
`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 Details

### LazyReference

public LazyReference(ReferenceBundle bundle)

## Method Details

### get

public T get()

### clear

public void clear()

### initValue

public abstract T initValue()

### toString

public String toString()

Overrides:
  `toString` in class `AbstractQueuedSynchronizer`