Apache Tomcat 7.0.42

## org.apache.tomcat.jdbc.pool.interceptor
Class StatementDecoratorInterceptor

    java.lang.Object
      org.apache.tomcat.jdbc.pool.JdbcInterceptor
          org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
              org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor

All Implemented Interfaces:
  InvocationHandler

Direct Known Subclasses:
  StatementCache

    public class StatementDecoratorInterceptor

extends AbstractCreateStatementInterceptor

Implementation of JdbcInterceptor that proxies resultSets and statements.

Author:
  Guillermo Fernandes

Nested Class Summary
`protected class` `StatementDecoratorInterceptor.ResultSetProxy`
`protected class` `StatementDecoratorInterceptor.StatementProxy<T extends Statement>` Class to measure query execute time

Field Summary
`protected static Constructor<?>[]` `constructors` the constructors that are used to create statement proxies
`protected static Constructor<?>` `resultSetConstructor` the constructor to create the resultSet proxies

Fields inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
`CREATE_STATEMENT, CREATE_STATEMENT_IDX, EXECUTE, EXECUTE_BATCH, EXECUTE_QUERY, EXECUTE_TYPES, EXECUTE_UPDATE, PREPARE_CALL, PREPARE_CALL_IDX, PREPARE_STATEMENT, PREPARE_STATEMENT_IDX, STATEMENT_TYPE_COUNT, STATEMENT_TYPES`

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
`StatementDecoratorInterceptor()`

Method Summary
`void` `closeInvoked()` Method invoked when the operation `Connection.close()` is invoked.
`protected Object` `createDecorator(Object proxy, Method method, Object[] args, Object statement, Constructor<?> constructor, String sql)` Creates a proxy for a Statement.
`Object` `createStatement(Object proxy, Method method, Object[] args, Object statement, long time)` Creates a statement interceptor to monitor query response times
`protected Constructor<?>` `getConstructor(int idx, Class<?> clazz)` Creates a constructor for a proxy class, if one doesn't already exist
`protected Constructor<?>` `getResultSetConstructor()`
`protected boolean` `isExecuteQuery(Method method)`
`protected boolean` `isExecuteQuery(String methodName)`

Methods inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
`invoke, isExecute, isStatement, process, reset`

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, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### constructors

    protected static final Constructor<?>[] constructors

  the constructors that are used to create statement proxies

### resultSetConstructor

    protected static Constructor<?> resultSetConstructor

  the constructor to create the resultSet proxies

Constructor Detail

### StatementDecoratorInterceptor

    public StatementDecoratorInterceptor()

Method Detail

### closeInvoked

    public void closeInvoked()

  Description copied from class: `AbstractCreateStatementInterceptor`
  Method invoked when the operation `Connection.close()` is invoked.

  Specified by:
    `closeInvoked` in class `AbstractCreateStatementInterceptor`

### getConstructor

    protected Constructor<?> getConstructor(int idx,
                                            Class<?> clazz)
                                     throws NoSuchMethodException

  Creates a constructor for a proxy class, if one doesn't already exist

  Parameters:
    `idx` - - the index of the constructor
    `clazz` - - the interface that the proxy will implement
  Returns:
    - returns a constructor used to create new instances
  Throws:
    `NoSuchMethodException`

### getResultSetConstructor

    protected Constructor<?> getResultSetConstructor()
                                              throws NoSuchMethodException

  Throws:
    `NoSuchMethodException`

### createStatement

    public Object createStatement(Object proxy,
                                  Method method,
                                  Object[] args,
                                  Object statement,
                                  long time)

  Creates a statement interceptor to monitor query response times

  Specified by:
    `createStatement` in class `AbstractCreateStatementInterceptor`
  Parameters:
    `proxy` - the actual proxy object
    `method` - the method that was called. It will be one of the methods defined in `AbstractCreateStatementInterceptor.STATEMENT_TYPES`
    `args` - the arguments to the method
    `statement` - the statement that the underlying connection created
  Returns:
    a `Statement` object

### createDecorator

    protected Object createDecorator(Object proxy,
                                     Method method,
                                     Object[] args,
                                     Object statement,
                                     Constructor<?> constructor,
                                     String sql)
                              throws InstantiationException,
                                     IllegalAccessException,
                                     InvocationTargetException

  Creates a proxy for a Statement.

  Parameters:
    `proxy` - The proxy object on which the method that triggered the creation of the statement was called.
    `method` - The method that was called on the proxy
    `args` - The arguments passed as part of the method call to the proxy
    `statement` - The statement object that is to be proxied
    `constructor` - The constructor for the desired proxy
    `sql` - The sql of of the statement
  Returns:
    A new proxy for the Statement
  Throws:
    `InstantiationException`
    `IllegalAccessException`
    `InvocationTargetException`

### isExecuteQuery

    protected boolean isExecuteQuery(String methodName)

### isExecuteQuery

    protected boolean isExecuteQuery(Method method)

Apache Tomcat 7.0.42

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.