package com.taobao.tddl.config.impl;
import java.util.List;
import java.util.Map;
import com.google.common.collect.Lists;
import com.taobao.tddl.common.model.lifecycle.AbstractLifecycle;
import com.taobao.tddl.common.utils.extension.ExtensionLoader;
import com.taobao.tddl.config.ConfigDataHandler;
import com.taobao.tddl.config.ConfigDataListener;
/**
* 基于unit的{@linkplain ConfigDataHandler}的delagate实现
*
* @author jianghang 2013-10-28 下午7:00:35
* @since 5.0.0
*/
public abstract class UnitConfigDataHandler extends AbstractLifecycle implements ConfigDataHandler {
protected String unitName;
protected String appName;
protected String dataId;
protected Map<String, Object> config;
protected List<ConfigDataListener> listeners = Lists.newArrayList();
protected String initialData;
protected UnitConfigDataHandler loadHandlerExtension() {
UnitConfigDataHandler unitHandler = ExtensionLoader.load(UnitConfigDataHandler.class);
unitHandler.setAppName(appName);
unitHandler.setUnitName(unitName);
unitHandler.setDataId(dataId);
unitHandler.setInitialData(initialData);
unitHandler.setConfig(config);
unitHandler.setListeners(listeners);
return unitHandler;
}
public String getUnitName() {
return unitName;
}
public void setUnitName(String unitName) {
this.unitName = unitName;
}
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getDataId() {
return dataId;
}
public void setDataId(String dataId) {
this.dataId = dataId;
}
public List<ConfigDataListener> getListeners() {
return listeners;
}
public void setListeners(List<ConfigDataListener> listeners) {
this.listeners = listeners;
}
public void addListener(ConfigDataListener listener) {
this.listeners.add(listener);
}
public Map<String, Object> getConfig() {
return config;
}
public void setConfig(Map<String, Object> props) {
this.config = props;
}
public String getInitialData() {
return initialData;
}
public void setInitialData(String initialData) {
this.initialData = initialData;
}
}