com.mtgi.analytics.sql
Class BehaviorTrackingDataSource.StatementHandler

java.lang.Object
  extended by com.mtgi.analytics.sql.BehaviorTrackingDataSource.HandlerStub
      extended by com.mtgi.analytics.sql.BehaviorTrackingDataSource.StatementHandler
All Implemented Interfaces:
InvocationHandler
Direct Known Subclasses:
BehaviorTrackingDataSource.DynamicStatementHandler, BehaviorTrackingDataSource.PreparedStatementHandler
Enclosing class:
BehaviorTrackingDataSource

protected abstract class BehaviorTrackingDataSource.StatementHandler
extends BehaviorTrackingDataSource.HandlerStub

Base invocation handler for instrumenting Statement objects with behavior tracking events.


Field Summary
 
Fields inherited from class com.mtgi.analytics.sql.BehaviorTrackingDataSource.HandlerStub
target
 
Constructor Summary
BehaviorTrackingDataSource.StatementHandler(BehaviorTrackingDataSource.ConnectionHandler parent, Object target)
           
 
Method Summary
protected abstract  void addBatch(EventDataElement batchData, Object[] args)
          notification that a statement has been added to the current batch.
protected abstract  void addExecuteParameters(BehaviorEvent event, Object[] args)
          notification that a non-batch statement has been executed.
protected  void addOperationData(String op, Object[] args)
          Hook for subclasses to extract any data from a Statement method call that is not an execution.
protected  BehaviorEvent createEvent(String name)
          Create, but do not start, a new behavior tracking event for the given execute method name.
 Object invoke(Object proxy, Method method, Object[] args)
          Intercept an event call on the underlying statement object.
 
Methods inherited from class com.mtgi.analytics.sql.BehaviorTrackingDataSource.HandlerStub
invokeIdentity, invokeTarget
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BehaviorTrackingDataSource.StatementHandler

public BehaviorTrackingDataSource.StatementHandler(BehaviorTrackingDataSource.ConnectionHandler parent,
                                                   Object target)
Method Detail

addBatch

protected abstract void addBatch(EventDataElement batchData,
                                 Object[] args)
notification that a statement has been added to the current batch. Subclasses must implement this method to add any useful parameter info to batchData.


addExecuteParameters

protected abstract void addExecuteParameters(BehaviorEvent event,
                                             Object[] args)
notification that a non-batch statement has been executed. Subclasses must implement this method to add any useful parameter data to event.


invoke

public final Object invoke(Object proxy,
                           Method method,
                           Object[] args)
                    throws Throwable
Intercept an event call on the underlying statement object. If the method represents a statement execution, a behavior tracking event will be recorded, including any event data gathered from preceding calls to addBatch(EventDataElement, Object[]), addExecuteParameters(BehaviorEvent, Object[]), and addOperationData(String, Object[]).

Throws:
Throwable

addOperationData

protected void addOperationData(String op,
                                Object[] args)
Hook for subclasses to extract any data from a Statement method call that is not an execution. E.g. prepared statements receive parameter data from various setXX() calls. Default behavior does nothing.


createEvent

protected BehaviorEvent createEvent(String name)
Create, but do not start, a new behavior tracking event for the given execute method name. Simply calls BehaviorTrackingManager.createEvent(String, String).