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:
    `java.lang.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
    Constructor | Description
    --- | ---
    `PooledSoftReference​(java.lang.ref.SoftReference<T> reference)` | Creates a new PooledSoftReference wrapping the provided reference.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `T` | `getObject()` | Gets the object that the wrapped SoftReference refers to.
    `java.lang.ref.SoftReference<T>` | `getReference()` | Gets the SoftReference wrapped by this object.
    `void` | `setReference​(java.lang.ref.SoftReference<T> reference)` | Sets the wrapped reference.
    `java.lang.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​(java.lang.ref.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 java.lang.ref.SoftReference<T> getReference()

      Gets the SoftReference wrapped by this object.
      Returns:
        underlying SoftReference

    - #### setReference

          public void setReference​(java.lang.ref.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 java.lang.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>`