net.ttddyy.dsproxy.proxy.InterceptorHolder Maven / Gradle / Ivy
package net.ttddyy.dsproxy.proxy;
import net.ttddyy.dsproxy.listener.ChainListener;
import net.ttddyy.dsproxy.listener.QueryExecutionListener;
import net.ttddyy.dsproxy.transform.ParameterTransformer;
import net.ttddyy.dsproxy.transform.QueryTransformer;
/**
* Container of interceptors.
*
* @author Tadaya Tsuyukubo
* @see QueryExecutionListener
* @see QueryTransformer
* @see ParameterTransformer
* @since 1.2
*/
public class InterceptorHolder {
private ChainListener chainListener = new ChainListener(); // empty default
private QueryTransformer queryTransformer = QueryTransformer.DEFAULT;
private ParameterTransformer parameterTransformer = ParameterTransformer.DEFAULT;
public InterceptorHolder() {
}
public InterceptorHolder(QueryExecutionListener listener, QueryTransformer queryTransformer) {
this.chainListener.addListener(listener);
this.queryTransformer = queryTransformer;
}
public InterceptorHolder(QueryExecutionListener listener, QueryTransformer queryTransformer, ParameterTransformer parameterTransformer) {
this.chainListener.addListener(listener);
this.queryTransformer = queryTransformer;
this.parameterTransformer = parameterTransformer;
}
public QueryExecutionListener getListener() {
return this.chainListener;
}
public void setListener(QueryExecutionListener listener) {
if (listener instanceof ChainListener) {
this.chainListener = (ChainListener) listener;
} else {
this.addListener(listener);
}
}
/**
* Add {@link QueryExecutionListener}
*
* @param listener a query execution listener
* @since 1.4
*/
public void addListener(QueryExecutionListener listener) {
this.chainListener.addListener(listener);
}
public QueryTransformer getQueryTransformer() {
return queryTransformer;
}
public void setQueryTransformer(QueryTransformer queryTransformer) {
this.queryTransformer = queryTransformer;
}
public ParameterTransformer getParameterTransformer() {
return parameterTransformer;
}
public void setParameterTransformer(ParameterTransformer parameterTransformer) {
this.parameterTransformer = parameterTransformer;
}
}