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:
- java.lang.reflect.InvocationHandler
- Direct Known Subclasses:
- StatementCache
public class StatementDecoratorInterceptor
- extends AbstractCreateStatementInterceptor
Implementation of JdbcInterceptor that proxies resultSets and statements.
- Author:
- Guillermo Fernandes
Field Summary |
protected static java.lang.reflect.Constructor<?>[] |
constructors
the constructors that are used to create statement proxies |
protected static java.lang.reflect.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 |
Method Summary |
void |
closeInvoked()
Method invoked when the operation Connection.close() is invoked. |
protected java.lang.Object |
createDecorator(java.lang.Object proxy,
java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object statement,
java.lang.reflect.Constructor<?> constructor,
java.lang.String sql)
|
java.lang.Object |
createStatement(java.lang.Object proxy,
java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object statement,
long time)
Creates a statement interceptor to monitor query response times |
protected java.lang.reflect.Constructor<?> |
getConstructor(int idx,
java.lang.Class<?> clazz)
Creates a constructor for a proxy class, if one doesn't already exist |
protected java.lang.reflect.Constructor<?> |
getResultSetConstructor()
|
protected boolean |
isExecuteQuery(java.lang.reflect.Method method)
|
protected boolean |
isExecuteQuery(java.lang.String methodName)
|
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 |
constructors
protected static final java.lang.reflect.Constructor<?>[] constructors
- the constructors that are used to create statement proxies
resultSetConstructor
protected static java.lang.reflect.Constructor<?> resultSetConstructor
- the constructor to create the resultSet proxies
StatementDecoratorInterceptor
public StatementDecoratorInterceptor()
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 java.lang.reflect.Constructor<?> getConstructor(int idx,
java.lang.Class<?> clazz)
throws java.lang.NoSuchMethodException
- Creates a constructor for a proxy class, if one doesn't already exist
- Parameters:
idx
- - the index of the constructorclazz
- - the interface that the proxy will implement
- Returns:
- - returns a constructor used to create new instances
- Throws:
java.lang.NoSuchMethodException
getResultSetConstructor
protected java.lang.reflect.Constructor<?> getResultSetConstructor()
throws java.lang.NoSuchMethodException
- Throws:
java.lang.NoSuchMethodException
createStatement
public java.lang.Object createStatement(java.lang.Object proxy,
java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object statement,
long time)
- Creates a statement interceptor to monitor query response times
- Specified by:
createStatement
in class AbstractCreateStatementInterceptor
- Parameters:
proxy
- the actual proxy objectmethod
- the method that was called. It will be one of the methods defined in AbstractCreateStatementInterceptor.STATEMENT_TYPES
args
- the arguments to the methodstatement
- the statement that the underlying connection created
- Returns:
- a
Statement
object
createDecorator
protected java.lang.Object createDecorator(java.lang.Object proxy,
java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object statement,
java.lang.reflect.Constructor<?> constructor,
java.lang.String sql)
throws java.lang.InstantiationException,
java.lang.IllegalAccessException,
java.lang.reflect.InvocationTargetException
- Throws:
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
isExecuteQuery
protected boolean isExecuteQuery(java.lang.String methodName)
isExecuteQuery
protected boolean isExecuteQuery(java.lang.reflect.Method method)
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.