Marks the pooled object as abandoned.
Allocates the object.
Get the number of times this object has been borrowed. @return The number of times this object has been borrowed.
Deallocates the object and sets it {@link PooledObjectState#IDLE IDLE} if it is currently {@link PooledObjectState#ALLOCATED ALLOCATED}.
Obtains the underlying object that is wrapped by this instance of {@link PooledObject}.
Sets the state to {@link PooledObjectState#INVALID INVALID}
Marks the object as returning to the pool.
Returns the state of this object. @return state
Defines the wrapper that is used to track the additional information, such as state, for the pooled objects. <p> Implementations of this class are required to be thread-safe.
@param <T> the type of object in the pool