package com.taobao.tddl.config;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor;
/**
* 获取{@linkplain ConfigDataHandler}处理工厂,单例
*
* @author whisper
* @author <a href="zylicfc@gmail.com">junyu</a>
* @author <a href="jianghang.loujh@taobao.com">jianghang</a>
* @version 1.0
* @since 1.6
* @date 2011-1-11上午11:22:29
*/
public interface ConfigDataHandlerFactory {
/**
* 对某一个dataId进行监听
*
* @param dataId 数据在配置中心注册的id
* @return 返回配置数据处理器实例
*/
ConfigDataHandler getConfigDataHandler(String dataId);
/**
* 对某一个dataId进行监听,使用者提供回调监听器
*
* @param dataId 数据在p诶值中心注册的id
* @param configDataListener 数据回调监听器
* @return 返回配置数据处理器实例
*/
ConfigDataHandler getConfigDataHandler(String dataId, ConfigDataListener configDataListener);
/**
* 对某一个dataId进行监听,使用者提供回调监听器列表, 并且提供执行线程池和内部一些配置(可能被handler忽视)
*
* @param dataId 数据在配置中心注册的id
* @param configDataListenerList 数据回调监听器列表
* @param executor 数据接收处理线程池
* @param config TDDL内部对handler提供的一些配置
* @return 返回配置数据处理器实例
*/
ConfigDataHandler getConfigDataHandler(String dataId, List<ConfigDataListener> configDataListenerList,
Executor executor, Map<String, Object> config);
}