# Hierarchy For All Packages

Package Hierarchies:

- org.apache.commons.pool2,
- org.apache.commons.pool2.impl,
- org.apache.commons.pool2.proxy

## Class Hierarchy

- java.lang.Object
  - org.apache.commons.pool2.impl.AbandonedConfig
  - org.apache.commons.pool2.BaseObject
    - org.apache.commons.pool2.impl.BaseGenericObjectPool<T> (implements java.lang.AutoCloseable)
      - org.apache.commons.pool2.impl.GenericKeyedObjectPool<K,T> (implements org.apache.commons.pool2.impl.GenericKeyedObjectPoolMXBean<K>, org.apache.commons.pool2.KeyedObjectPool<K,V>, org.apache.commons.pool2.UsageTracking<T>)
      - org.apache.commons.pool2.impl.GenericObjectPool<T> (implements org.apache.commons.pool2.impl.GenericObjectPoolMXBean, org.apache.commons.pool2.ObjectPool<T>, org.apache.commons.pool2.UsageTracking<T>)
    - org.apache.commons.pool2.BaseKeyedPooledObjectFactory<K,V> (implements org.apache.commons.pool2.KeyedPooledObjectFactory<K,V>)
    - org.apache.commons.pool2.BaseObjectPool<T> (implements org.apache.commons.pool2.ObjectPool<T>)
      - org.apache.commons.pool2.impl.SoftReferenceObjectPool<T>
    - org.apache.commons.pool2.impl.BaseObjectPoolConfig<T> (implements java.lang.Cloneable)
      - org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig<T>
      - org.apache.commons.pool2.impl.GenericObjectPoolConfig<T>
    - org.apache.commons.pool2.BasePooledObjectFactory<T> (implements org.apache.commons.pool2.PooledObjectFactory<T>)
  - org.apache.commons.pool2.impl.CallStackUtils
  - org.apache.commons.pool2.proxy.CglibProxySource<T>
  - org.apache.commons.pool2.impl.DefaultEvictionPolicy<T> (implements org.apache.commons.pool2.impl.EvictionPolicy<T>)
  - org.apache.commons.pool2.impl.DefaultPooledObject<T> (implements org.apache.commons.pool2.PooledObject<T>)
    - org.apache.commons.pool2.impl.PooledSoftReference<T>
  - org.apache.commons.pool2.impl.DefaultPooledObjectInfo (implements org.apache.commons.pool2.impl.DefaultPooledObjectInfoMBean)
  - org.apache.commons.pool2.impl.EvictionConfig
  - org.apache.commons.pool2.proxy.JdkProxySource<T>
  - org.apache.commons.pool2.impl.NoOpCallStack (implements org.apache.commons.pool2.impl.CallStack)
  - org.apache.commons.pool2.PoolUtils
  - org.apache.commons.pool2.proxy.ProxiedKeyedObjectPool<K,V> (implements org.apache.commons.pool2.KeyedObjectPool<K,V>)
  - org.apache.commons.pool2.proxy.ProxiedObjectPool<T> (implements org.apache.commons.pool2.ObjectPool<T>)
  - org.apache.commons.pool2.impl.SecurityManagerCallStack (implements org.apache.commons.pool2.impl.CallStack)
  - org.apache.commons.pool2.impl.ThrowableCallStack (implements org.apache.commons.pool2.impl.CallStack)

## Interface Hierarchy

- java.lang.AutoCloseable
  - java.io.Closeable
    - org.apache.commons.pool2.KeyedObjectPool<K,V>
    - org.apache.commons.pool2.ObjectPool<T>
- org.apache.commons.pool2.impl.CallStack
- java.lang.Comparable<T>
  - org.apache.commons.pool2.PooledObject<T>
- org.apache.commons.pool2.impl.DefaultPooledObjectInfoMBean
- org.apache.commons.pool2.impl.EvictionPolicy<T>
- org.apache.commons.pool2.impl.GenericKeyedObjectPoolMXBean<K>
- org.apache.commons.pool2.impl.GenericObjectPoolMXBean
- org.apache.commons.pool2.KeyedPooledObjectFactory<K,V>
- org.apache.commons.pool2.PooledObjectFactory<T>
- org.apache.commons.pool2.SwallowedExceptionListener
- org.apache.commons.pool2.TrackedUse
- org.apache.commons.pool2.UsageTracking<T>

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - org.apache.commons.pool2.DestroyMode
    - org.apache.commons.pool2.PooledObjectState