/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.component.recycle;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.Element;
import com.jinhe.tss.core.util.XMLDocUtil;
/**
* <p> RecycleConfig.java </p>
* <p>
* recycle配置信息管理类
* </p>
*/
public class RecycleConfig {
public static final String RECYCLE_CONFIG_FILE = "META-INF/recycleConfig.xml";
/** key:id --- value:RecycleResource 以ID为key值将resources存在Map中 */
Map<Object, RecycleResource> recycleResourcesMap = new LinkedHashMap<Object, RecycleResource>();
private RecycleConfig() {
}
private static RecycleConfig config;
/**
* 获取一个缓存池管理类实例。singleTon
* @return
*/
public static RecycleConfig getInstance(){
if(config == null){
config = new RecycleConfig();
config.init();
}
return config;
}
private void init() {
Document configDoc = XMLDocUtil.createDoc(RECYCLE_CONFIG_FILE);
List<Element> nodes = XMLDocUtil.selectNodes(configDoc, "recycle/resource");
for( Element resourceNode : nodes ){
RecycleResource recycleResource = new RecycleResource(resourceNode);
recycleResourcesMap.put(recycleResource.getId(), recycleResource);
recycleResourcesMap.put(recycleResource.getEntity(), recycleResource);
}
}
public Collection<RecycleResource> getRecycleResources() {
return new LinkedHashSet<RecycleResource>(recycleResourcesMap.values());
}
public static RecycleResource getRecycleSource(Object recycleResourceKey){
return RecycleConfig.getInstance().recycleResourcesMap.get(recycleResourceKey);
}
}