package com.elab.core.spring.method;

import com.elab.core.spring.common.SqlInfoModel;

/**
 * 代理SQL执行器
 *
 * @author ： liukx
 * @time ： 2020/6/8 - 15:47
 */
public interface ProxyDataProcess {
    /**
     * 是否满足代理请求的条件
     *
     * @param arg
     * @return 如果不为null则会触发下面的proxyData方法, 为null不做处理
     */
    public Object isProxy(SqlInfoModel arg) throws Exception;

    /**
     * 执行代理查询数据的操作
     *
     * @param <T>
     * @param proxyData 允许代理的代理对象
     * @param obj       SQL关联请求参数
     * @return
     */
    public <T> Object proxyQueryData(Object proxyData, SqlInfoModel obj) throws Exception;

}
