## org.firebirdsql.pool
Class PooledPreparedStatementHandler

    java.lang.Object
      org.firebirdsql.pool.PooledPreparedStatementHandler

All Implemented Interfaces:
  InvocationHandler

    public class PooledPreparedStatementHandler

extends Object
implements InvocationHandler

Wrapper for prepared statements. This invocation handler notifies statement manager about closing prepared statement.

Author:
  Roman Rokytskyy

Method Summary
`protected void` `checkCorrectness(Method method)` Check if method call is correct.
`static Method` `findMethod(Class clazz, String name, Class[] params)`
`protected void` `handleForceClose()`
`protected boolean` `handleIsCached()`
`protected void` `handleStatementClose(String statement, Object proxy)` Handle `Statement.close()` call.
`Object` `invoke(Object proxy, Method method, Object[] args)` Invoke method on a specified proxy.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### findMethod

    public static Method findMethod(Class clazz,
                                    String name,
                                    Class[] params)

### handleStatementClose

    protected void handleStatementClose(String statement,
                                        Object proxy)
                                 throws SQLException

  Handle `Statement.close()` call.

  Parameters:
    `statement` - SQL statement corresponding to the wrapped prepared statement.
    `proxy` - dynamic proxy wrapping prepared statement.
  Throws:
    `SQLException` - if something went wrong.

### handleForceClose

    protected void handleForceClose()
                             throws SQLException

  Throws:
    `SQLException`

### handleIsCached

    protected boolean handleIsCached()
                              throws SQLException

  Throws:
    `SQLException`

### invoke

    public Object invoke(Object proxy,
                         Method method,
                         Object[] args)
                  throws Throwable

  Invoke method on a specified proxy. Here we check if `method` is a method `Statement.close()`. If yes, we notify owner that this prepared statement was closed.

  Specified by:
    `invoke` in interface `InvocationHandler`
  Parameters:
    `proxy` - proxy on which method is invoked.
    `method` - instance of `Method` describing method being invoked.
    `args` - array with arguments.
  Returns:
    result of method invokation.
  Throws:
    `Throwable` - if invoked method threw an exception.

### checkCorrectness

    protected void checkCorrectness(Method method)
                             throws SQLException

  Check if method call is correct. If method was declared in `PreparedStatement` class and there is no connection proxy associated with this statement (i.e. statement in in pool), exception is thrown (this situation usually happens if somebody tries to call method on prepared statement after it has been closed).

  Parameters:
    `method` - method to check.
  Throws:
    `SQLException` - if statement has incorrect statement.

Copyright © 2001-2010. All Rights Reserved.