Apache Tomcat 7.0.37

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

java.lang.Object
  extended by org.apache.tomcat.jdbc.pool.JdbcInterceptor
      extended by org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
All Implemented Interfaces:
InvocationHandler
Direct Known Subclasses:
AbstractQueryReport, QueryTimeoutInterceptor, StatementDecoratorInterceptor, StatementFinalizer

public abstract class AbstractCreateStatementInterceptor
extends JdbcInterceptor

Abstraction interceptor. This component intercepts all calls to create some type of SQL statement. By extending this class, one can intercept queries and update statements by overriding the createStatement(Object, Method, Object[], Object, long) method.

Version:
1.0
Author:
Filip Hanik

Field Summary
protected static String CREATE_STATEMENT
           
protected static int CREATE_STATEMENT_IDX
           
protected static String EXECUTE
           
protected static String EXECUTE_BATCH
           
protected static String EXECUTE_QUERY
           
protected static String[] EXECUTE_TYPES
           
protected static String EXECUTE_UPDATE
           
protected static String PREPARE_CALL
           
protected static int PREPARE_CALL_IDX
           
protected static String PREPARE_STATEMENT
           
protected static int PREPARE_STATEMENT_IDX
           
protected static int STATEMENT_TYPE_COUNT
           
protected static String[] 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
AbstractCreateStatementInterceptor()
           
 
Method Summary
abstract  void closeInvoked()
          Method invoked when the operation Connection.close() is invoked.
abstract  Object createStatement(Object proxy, Method method, Object[] args, Object statement, long time)
          This method will be invoked after a successful statement creation.
 Object invoke(Object proxy, Method method, Object[] args)
          Gets invoked each time an operation on Connection is invoked.
protected  boolean isExecute(Method method, boolean process)
          Returns true if the method that is being invoked matches one of the execute types.
protected  boolean isStatement(Method method, boolean process)
          Returns true if the method that is being invoked matches one of the statement types.
protected  boolean process(String[] names, Method method, boolean process)
           
 void reset(ConnectionPool parent, PooledConnection con)
          no-op for this interceptor. no state is stored.
 
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

CREATE_STATEMENT

protected static final String CREATE_STATEMENT
See Also:
Constant Field Values

CREATE_STATEMENT_IDX

protected static final int CREATE_STATEMENT_IDX
See Also:
Constant Field Values

PREPARE_STATEMENT

protected static final String PREPARE_STATEMENT
See Also:
Constant Field Values

PREPARE_STATEMENT_IDX

protected static final int PREPARE_STATEMENT_IDX
See Also:
Constant Field Values

PREPARE_CALL

protected static final String PREPARE_CALL
See Also:
Constant Field Values

PREPARE_CALL_IDX

protected static final int PREPARE_CALL_IDX
See Also:
Constant Field Values

STATEMENT_TYPES

protected static final String[] STATEMENT_TYPES

STATEMENT_TYPE_COUNT

protected static final int STATEMENT_TYPE_COUNT

EXECUTE

protected static final String EXECUTE
See Also:
Constant Field Values

EXECUTE_QUERY

protected static final String EXECUTE_QUERY
See Also:
Constant Field Values

EXECUTE_UPDATE

protected static final String EXECUTE_UPDATE
See Also:
Constant Field Values

EXECUTE_BATCH

protected static final String EXECUTE_BATCH
See Also:
Constant Field Values

EXECUTE_TYPES

protected static final String[] EXECUTE_TYPES
Constructor Detail

AbstractCreateStatementInterceptor

public AbstractCreateStatementInterceptor()
Method Detail

invoke

public Object invoke(Object proxy,
                     Method method,
                     Object[] args)
              throws Throwable
Gets invoked each time an operation on Connection is invoked.

Specified by:
invoke in interface InvocationHandler
Overrides:
invoke in class JdbcInterceptor
Throws:
Throwable

createStatement

public abstract Object createStatement(Object proxy,
                                       Method method,
                                       Object[] args,
                                       Object statement,
                                       long time)
This method will be invoked after a successful statement creation. This method can choose to return a wrapper around the statement or return the statement itself. If this method returns a wrapper then it should return a wrapper object that implements one of the following interfaces. Statement, PreparedStatement or CallableStatement

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

closeInvoked

public abstract void closeInvoked()
Method invoked when the operation Connection.close() is invoked.


isStatement

protected boolean isStatement(Method method,
                              boolean process)
Returns true if the method that is being invoked matches one of the statement types.

Parameters:
method - the method being invoked on the proxy
process - boolean result used for recursion
Returns:
returns true if the method name matched

isExecute

protected boolean isExecute(Method method,
                            boolean process)
Returns true if the method that is being invoked matches one of the execute types.

Parameters:
method - the method being invoked on the proxy
process - boolean result used for recursion
Returns:
returns true if the method name matched

process

protected boolean process(String[] names,
                          Method method,
                          boolean process)

reset

public void reset(ConnectionPool parent,
                  PooledConnection con)
no-op for this interceptor. no state is stored.

Specified by:
reset in class JdbcInterceptor
Parameters:
parent - - the connection pool owning the connection
con - - the pooled connection

Apache Tomcat 7.0.37

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