Package org.apache.tomcat.dbcp.pool2.impl

## Class PooledSoftReference<T>

- java.lang.Object
- - org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject<T>
  - - org.apache.tomcat.dbcp.pool2.impl.PooledSoftReference<T>

Type Parameters:
  `T` - the type of the underlying object that the wrapped SoftReference refers to.

All Implemented Interfaces:
  `Comparable<PooledObject<T>>`, `PooledObject<T>`

    public class PooledSoftReference<T>
    extends DefaultPooledObject<T>

Extension of `DefaultPooledObject` to wrap pooled soft references.

This class is intended to be thread-safe.

Since:
  2.0

### Constructor Summary

Constructors
`PooledSoftReference​(SoftReference<T> reference)` Creates a new PooledSoftReference wrapping the provided reference.

### Method Summary

All Methods Instance Methods Concrete Methods
`T` `getObject()` Gets the object that the wrapped SoftReference refers to.
`SoftReference<T>` `getReference()` Gets the SoftReference wrapped by this object.
`void` `setReference​(SoftReference<T> reference)` Sets the wrapped reference.
`String` `toString()` Gets a String form of the wrapper for debug purposes.

### Methods inherited from class org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject

`allocate, compareTo, deallocate, endEvictionTest, getActiveTimeMillis, getBorrowedCount, getCreateInstant, getCreateTime, getIdleDuration, getIdleTime, getIdleTimeMillis, getLastBorrowInstant, getLastBorrowTime, getLastReturnInstant, getLastReturnTime, getLastUsedInstant, getLastUsedTime, getState, invalidate, markAbandoned, markReturning, printStackTrace, setLogAbandoned, setRequireFullStackTrace, startEvictionTest, use`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.apache.tomcat.dbcp.pool2.PooledObject

`equals, getActiveDuration, getActiveTime, getFullDuration, hashCode`

### Constructor Detail

#### PooledSoftReference

    public PooledSoftReference​(SoftReference<T> reference)

Creates a new PooledSoftReference wrapping the provided reference.

Parameters:
  `reference` - SoftReference to be managed by the pool

### Method Detail

#### getObject

    public T getObject()

Gets the object that the wrapped SoftReference refers to.

Note that if the reference has been cleared, this method will return null.

Specified by:
  `getObject` in interface `PooledObject<T>`
Overrides:
  `getObject` in class `DefaultPooledObject<T>`
Returns:
  Object referred to by the SoftReference

#### getReference

    public SoftReference<T> getReference()

Gets the SoftReference wrapped by this object.

Returns:
  underlying SoftReference

#### setReference

    public void setReference​(SoftReference<T> reference)

Sets the wrapped reference.

This method exists to allow a new, non-registered reference to be held by the pool to track objects that have been checked out of the pool. The actual parameter should be a reference to the same object that `getObject()` returns before calling this method.

Parameters:
  `reference` - new reference

#### toString

    public String toString()

Gets a String form of the wrapper for debug purposes. The format is not fixed and may change at any time.

Specified by:
  `toString` in interface `PooledObject<T>`
Overrides:
  `toString` in class `DefaultPooledObject<T>`