package com.co.lane.util;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
/**
* <ul>
* <li>系统上下文配置文件(web.xml)</li>
* <li>系统配置文件载入(hrms.xml)</li>
* <li>各个页面的配置文件(e.g:EmpUpdateItem.xml)</li>
* </ul>
*/
public class ConfigUtilHelper {
/**
* 配置文件容器,来一个放一个
* key 配置文件名
*/
private static Map<String, ConfigUtil> mapConfig = new HashMap<String, ConfigUtil>();
/**
* private constructor
*/
private ConfigUtilHelper() {}
/**
* 载入配置文件
* Config_Page:WEB-INF/classes/config/
*
* @param configFileName
*/
public static ConfigUtil load(String configFileName) {
String fileName = StringUtil.getFileName(configFileName);
if(mapConfig.containsKey(fileName)){
return mapConfig.get(fileName);
}
ConfigUtil hrmsConfig = loadPro(configFileName);
mapConfig.put(fileName, hrmsConfig);
return hrmsConfig;
}
/**
* 卸载配置文件
*
* @param configFileName
*/
public static void unLoad(String configFileName) {
String fileName = StringUtil.getFileName(configFileName);
if(mapConfig.containsKey(fileName)){
mapConfig.remove(fileName);
}
}
/**
* 加载配置文件
*
* @param configFileName 文件名称
* @return HrmsConfig
*/
private static ConfigUtil loadPro(String configFileName) {
ConfigUtil hrmsConfig = new ConfigUtil();
String filePath = configFileName;
File file = new File(filePath);
SAXReader saxReader = new SAXReader();
try {
org.dom4j.Document doc = saxReader.read(file);
hrmsConfig.setDoc(doc);
} catch (DocumentException e) {
// logger.error("system config file load failed!(" + configFileName + ")");
// logger.error(e.getMessage());
e.printStackTrace();
}
return hrmsConfig;
}
// ========================= TEST ==========================================
// public static void main(String[] args){
// String coifigFilePath = "E:/Loudy/VssPro/40JaveEnv/PosPrint/RF/3.xml";
// ConfigUtil configUtil = ConfigUtilHelper.load(coifigFilePath);
// java.util.List<com.co.lane.print.ConfigDataItem> items = configUtil.getListByXPath(com.co.lane.print.ConfigDataItem.class, "/PrintMode/General/Item");
// for(com.co.lane.print.ConfigDataItem item : items){
// System.out.println(item.getID());
// System.out.println(item.getTitle());
// System.out.println(item.getField());
// System.out.println(item.getType());
// System.out.println(item.getRow());
// System.out.println(item.getWidth());
// System.out.println(item.getColumn());
// System.out.println(item.getAlignment());
// }
// }
}