package rocks.inspectit.agent.java.sensor.method.jdbc;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import rocks.inspectit.agent.java.core.IPlatformManager;
import rocks.inspectit.agent.java.hooking.IHook;
import rocks.inspectit.agent.java.sensor.method.AbstractMethodSensor;
import rocks.inspectit.agent.java.sensor.method.IMethodSensor;
import rocks.inspectit.agent.java.util.Timer;
/**
* The SQL timer sensor which initializes and returns the {@link StatementHook} class.
*
* @author Christian Herzog
*
*/
public class StatementSensor extends AbstractMethodSensor implements IMethodSensor {
/**
* The timer used for accurate measuring.
*/
@Autowired
private Timer timer;
/**
* The Platform manager.
*/
@Autowired
private IPlatformManager platformManager;
/**
* The used statement hook.
*/
private StatementHook statementHook = null;
/**
* The default constructor which needs 2 parameter for initialization. Caches the calls to
* getConnection().
*/
@Autowired
private StatementReflectionCache statementReflectionCache;
/**
* Storage for connection meta data.
*/
@Autowired
private ConnectionMetaDataStorage connectionMetaDataStorage;
/**
* Returns the method hook.
*
* @return The method hook.
*/
@Override
public IHook getHook() {
return statementHook;
}
/**
* {@inheritDoc}
*/
@Override
protected void initHook(Map<String, Object> parameters) {
statementHook = new StatementHook(timer, platformManager, connectionMetaDataStorage, statementReflectionCache, parameters);
}
}