Package org.apache.tomcat.jdbc.pool

## Class DisposableConnectionFacade

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

- All Implemented Interfaces:
    `java.lang.reflect.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 org.apache.tomcat.jdbc.pool.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)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(java.lang.Object obj)` |
    `int` | `hashCode()` |
    `java.lang.Object` | `invoke​(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.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 org.apache.tomcat.jdbc.pool.JdbcInterceptor

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

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### DisposableConnectionFacade

          protected DisposableConnectionFacade​(JdbcInterceptor interceptor)

  - ### Method Detail

    - #### 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 `java.lang.Object`

    - #### equals

          public boolean equals​(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### invoke

          public java.lang.Object invoke​(java.lang.Object proxy,
                                         java.lang.reflect.Method method,
                                         java.lang.Object[] args)
                                  throws java.lang.Throwable

      Description copied from class: `JdbcInterceptor`
      Gets invoked each time an operation on `Connection` is invoked.
      Specified by:
        `invoke` in interface `java.lang.reflect.InvocationHandler`
      Overrides:
        `invoke` in class `JdbcInterceptor`
      Throws:
        `java.lang.Throwable`