All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy