# 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`