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()); // } // } }