# Class DisposableConnectionFacade

java.lang.Object
org.apache.tomcat.jdbc.pool.JdbcInterceptor
org.apache.tomcat.jdbc.pool.DisposableConnectionFacade

All Implemented Interfaces:
  `InvocationHandler`

public class DisposableConnectionFacade extends JdbcInterceptor
A DisposableConnectionFacade object is the top most interceptor that wraps an object of type `PooledConnection`. The DisposableConnectionFacade intercepts two methods:

- `Connection.close()` - returns the connection to the pool then breaks the link between cutoff and the next interceptor. May be called multiple times.
- `Object.toString()` - returns a custom string for this object

By default method comparisons is done on a String reference level, unless the `PoolConfiguration.setUseEquals(boolean)` has been called with a `true` argument.

- ## Field Summary

  ### Fields inherited from class JdbcInterceptor

  `CLOSE_VAL, EQUALS_VAL, GETCONNECTION_VAL, HASHCODE_VAL, ISCLOSED_VAL, ISVALID_VAL, ISWRAPPERFOR_VAL, properties, TOSTRING_VAL, UNWRAP_VAL`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `DisposableConnectionFacade(JdbcInterceptor interceptor)`
  Construct a DisposableConnectionFacade that wraps the given interceptor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  `int`
  `hashCode()`
  `Object`
  `invoke(Object proxy, Method method, Object[] args)`
  Gets invoked each time an operation on `Connection` is invoked.
  `void`
  `reset(ConnectionPool parent, PooledConnection con)`
  Gets called each time the connection is borrowed from the pool This means that if an interceptor holds a reference to the connection the interceptor can be reused for another connection.

  ### Methods inherited from class JdbcInterceptor

  `compare, compare, disconnected, getNext, getProperties, isUseEquals, poolClosed, poolStarted, setNext, setProperties, setUseEquals`

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DisposableConnectionFacade

    protected DisposableConnectionFacade(JdbcInterceptor interceptor)
    Construct a DisposableConnectionFacade that wraps the given interceptor.
    Parameters:
      `interceptor` - The next interceptor in the chain

- ## Method Details

  - ### reset

    public void reset(ConnectionPool parent, PooledConnection con)
    Description copied from class: `JdbcInterceptor`
    Gets called each time the connection is borrowed from the pool This means that if an interceptor holds a reference to the connection the interceptor can be reused for another connection.
    This method may be called with null as both arguments when we are closing down the connection.
    Specified by:
      `reset` in class `JdbcInterceptor`
    Parameters:
      `parent` - - the connection pool owning the connection
      `con` - - the pooled connection

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`

  - ### invoke

    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
    Description copied from class: `JdbcInterceptor`
    Gets invoked each time an operation on `Connection` is invoked.
    Specified by:
      `invoke` in interface `InvocationHandler`
    Overrides:
      `invoke` in class `JdbcInterceptor`
    Throws:
      `Throwable`