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
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description protected static classStatementDecoratorInterceptor.ResultSetProxyprotected classStatementDecoratorInterceptor.StatementProxy<T extends java.sql.Statement>Class to measure query execute time.
 - 
Field SummaryFields Modifier and Type Field Description protected static java.lang.StringEXECUTE_QUERYprotected static java.lang.StringGET_GENERATED_KEYSprotected static java.lang.StringGET_RESULTSETprotected static java.lang.String[]RESULTSET_TYPESprotected static java.lang.reflect.Constructor<?>resultSetConstructorthe constructor to create the resultSet proxies- 
Fields inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptorconstructors, CREATE_STATEMENT, CREATE_STATEMENT_IDX, EXECUTE, EXECUTE_BATCH, 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.JdbcInterceptorCLOSE_VAL, EQUALS_VAL, GETCONNECTION_VAL, HASHCODE_VAL, ISCLOSED_VAL, ISVALID_VAL, ISWRAPPERFOR_VAL, properties, TOSTRING_VAL, UNWRAP_VAL
 
- 
 - 
Constructor SummaryConstructors Constructor Description StatementDecoratorInterceptor()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcloseInvoked()Method invoked when the operationConnection.close()is invoked.protected java.lang.ObjectcreateDecorator(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)Creates a proxy for a Statement.java.lang.ObjectcreateStatement(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 timesprotected java.lang.reflect.Constructor<?>getResultSetConstructor()protected booleanisExecuteQuery(java.lang.reflect.Method method)protected booleanisExecuteQuery(java.lang.String methodName)protected booleanisResultSet(java.lang.reflect.Method method, boolean process)- 
Methods inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptorgetConstructor, invoke, isExecute, isStatement, process, reset
 - 
Methods inherited from class org.apache.tomcat.jdbc.pool.JdbcInterceptorcompare, compare, disconnected, getNext, getProperties, isUseEquals, poolClosed, poolStarted, setNext, setProperties, setUseEquals
 
- 
 
- 
- 
- 
Field Detail- 
EXECUTE_QUERYprotected static final java.lang.String EXECUTE_QUERY - See Also:
- Constant Field Values
 
 - 
GET_GENERATED_KEYSprotected static final java.lang.String GET_GENERATED_KEYS - See Also:
- Constant Field Values
 
 - 
GET_RESULTSETprotected static final java.lang.String GET_RESULTSET - See Also:
- Constant Field Values
 
 - 
RESULTSET_TYPESprotected static final java.lang.String[] RESULTSET_TYPES 
 - 
resultSetConstructorprotected static volatile java.lang.reflect.Constructor<?> resultSetConstructor the constructor to create the resultSet proxies
 
- 
 - 
Method Detail- 
closeInvokedpublic void closeInvoked() Description copied from class:AbstractCreateStatementInterceptorMethod invoked when the operationConnection.close()is invoked.- Specified by:
- closeInvokedin class- AbstractCreateStatementInterceptor
 
 - 
getResultSetConstructorprotected java.lang.reflect.Constructor<?> getResultSetConstructor() throws java.lang.NoSuchMethodException- Throws:
- java.lang.NoSuchMethodException
 
 - 
createStatementpublic 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:
- createStatementin 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
- time- Elapsed time
- Returns:
- a Statementobject
 
 - 
createDecoratorprotected 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.InvocationTargetExceptionCreates 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:
- java.lang.InstantiationException- Couldn't instantiate object
- java.lang.IllegalAccessException- Inaccessible constructor
- java.lang.reflect.InvocationTargetException- Exception thrown from constructor
 
 - 
isExecuteQueryprotected boolean isExecuteQuery(java.lang.String methodName) 
 - 
isExecuteQueryprotected boolean isExecuteQuery(java.lang.reflect.Method method) 
 - 
isResultSetprotected boolean isResultSet(java.lang.reflect.Method method, boolean process)
 
- 
 
-