package com.alibaba.doris.dataserver.core;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import com.alibaba.doris.dataserver.ApplicationContext;
import com.alibaba.doris.dataserver.ModuleContext;
/**
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public class DefaultModuleContext implements ModuleContext {
public DefaultModuleContext(ApplicationContext appContext) {
this.appContext = appContext;
}
public ApplicationContext getApplicationContext() {
return appContext;
}
public Object getAttribute(String name) {
Object obj = context.get(name);
if (null == obj) {
// 当前容器找不到,则继续向application context容器去查找属性是否存在。
return appContext.getAttribute(name);
}
return obj;
}
public Enumeration<String> getAttributeNames() {
Set<String> keySet = context.keySet();
final Iterator<String> itr = keySet.iterator();
return new Enumeration<String>() {
public boolean hasMoreElements() {
return itr.hasNext();
}
public String nextElement() {
return itr.next();
}
};
}
public void removeAttribute(String name) {
context.remove(name);
}
public void setAttribute(String name, Object value) {
context.put(name, value);
}
private ApplicationContext appContext;
private Map<String, Object> context = new HashMap<String, Object>();
}