Apache Tomcat 7.0.25

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

java.lang.Object
  extended by org.apache.tomcat.jdbc.pool.JdbcInterceptor
      extended by org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
          extended by 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, GETCONNECTION_VAL, ISCLOSED_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)
           
 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
Throws:
InstantiationException
IllegalAccessException
InvocationTargetException

isExecuteQuery

protected boolean isExecuteQuery(String methodName)

isExecuteQuery

protected boolean isExecuteQuery(Method method)

Apache Tomcat 7.0.25

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