📄 configxmlreader.java
字号:
try { Map subMap = loadRequestMap(null, newFile.toURL()); map.putAll(subMap); } catch (MalformedURLException mue) { mue.printStackTrace(); } } String includeURL = includeElement.getAttribute(INCLUDE_URL); if ((includeURL != null) && (includeURL.length() > 0)) { try { Map subMap = loadRequestMap(null, new URL(includeURL)); map.putAll(subMap); } catch (MalformedURLException mue) { mue.printStackTrace(); } } } List viewMapElementList = UtilXml.childElementList(root, VIEW_MAPPING); Iterator viewMapElementIter = viewMapElementList.iterator(); while (viewMapElementIter.hasNext()) { Element viewMapElement = (Element) viewMapElementIter.next(); // Create a URI-MAP for each element found. FastMap uriMap = FastMap.newInstance(); // Get the view info. String name = viewMapElement.getAttribute(VIEW_NAME); String page = viewMapElement.getAttribute(VIEW_PAGE); if (page == null || page.length() == 0) { page = name; } uriMap.put(VIEW_NAME, name); uriMap.put(VIEW_PAGE, page); uriMap.put(VIEW_TYPE, viewMapElement.getAttribute(VIEW_TYPE)); uriMap.put(VIEW_INFO, viewMapElement.getAttribute(VIEW_INFO)); uriMap.put(VIEW_CONTENT_TYPE, viewMapElement.getAttribute(VIEW_CONTENT_TYPE)); uriMap.put(VIEW_ENCODING, viewMapElement.getAttribute(VIEW_ENCODING)); // Check for a description. String description = UtilXml.childElementValue(viewMapElement, VIEW_DESCRIPTION); uriMap.put(VIEW_DESCRIPTION, UtilValidate.isNotEmpty(description) ? description : ""); if (name != null) map.put(name, uriMap); } /* Debugging */ if (Debug.verboseOn()) { Debug.logVerbose("-------- View Mappings --------", module); FastMap debugMap = map; Set debugSet = debugMap.keySet(); Iterator i = debugSet.iterator(); while (i.hasNext()) { Object o = i.next(); String request = (String) o; FastMap thisURI = (FastMap) debugMap.get(o); StringBuffer verboseMessageBuffer = verboseMessageBuffer = new StringBuffer(); Iterator debugIter = ((Set) thisURI.keySet()).iterator(); while (debugIter.hasNext()) { Object lo = debugIter.next(); String name = (String) lo; String value = (String) thisURI.get(lo); verboseMessageBuffer.append("[" + name + "=>" + value + "]"); } Debug.logVerbose(request + " :: " + verboseMessageBuffer.toString(), module); } Debug.logVerbose("------ End View Mappings ------", module); } /* End Debugging */ double totalSeconds = (System.currentTimeMillis() - startTime)/1000.0; if (Debug.infoOn()) Debug.logInfo("ViewMap Created: (" + map.size() + ") records in " + totalSeconds + "s", module); return map; } /** Gets a FastMap of site configuration variables. */ public static Map getConfigMap(URL xml) { ControllerConfig controllerConfig = getControllerConfig(xml); return controllerConfig != null ? controllerConfig.configMap : null; } /** Gets a FastMap of site configuration variables. */ public static Map loadConfigMap(Element root, URL xml) { long startTime = System.currentTimeMillis(); FastMap map = FastMap.newInstance(); if (root == null) { root = loadDocument(xml); } if (root != null) { // default error page String errorpage = UtilXml.childElementValue(root, DEFAULT_ERROR_PAGE); if (UtilValidate.isNotEmpty(errorpage)) map.put(DEFAULT_ERROR_PAGE, errorpage); // site owner String owner = UtilXml.childElementValue(root, SITE_OWNER); if (UtilValidate.isNotEmpty(owner)) map.put(SITE_OWNER, owner); // security class String securityClass = UtilXml.childElementValue(root, SECURITY_CLASS); if (UtilValidate.isNotEmpty(securityClass)) map.put(SECURITY_CLASS, securityClass); // first visit event Element firstvisitElement = UtilXml.firstChildElement(root, FIRSTVISIT); if (firstvisitElement != null) { List eventList = FastList.newInstance(); List eventElementList = UtilXml.childElementList(firstvisitElement, EVENT); Iterator eventElementIter = eventElementList.iterator(); while (eventElementIter.hasNext()) { Element eventElement = (Element) eventElementIter.next(); FastMap eventMap = FastMap.newInstance(); eventMap.put(EVENT_TYPE, eventElement.getAttribute(EVENT_TYPE)); eventMap.put(EVENT_PATH, eventElement.getAttribute(EVENT_PATH)); eventMap.put(EVENT_METHOD, eventElement.getAttribute(EVENT_METHOD)); eventList.add(eventMap); } map.put(FIRSTVISIT, eventList); } // preprocessor events Element preprocessorElement = UtilXml.firstChildElement(root, PREPROCESSOR); if (preprocessorElement != null) { List eventList = FastList.newInstance(); List eventElementList = UtilXml.childElementList(preprocessorElement, EVENT); Iterator eventElementIter = eventElementList.iterator(); while (eventElementIter.hasNext()) { Element eventElement = (Element) eventElementIter.next(); FastMap eventMap = FastMap.newInstance(); eventMap.put(EVENT_TYPE, eventElement.getAttribute(EVENT_TYPE)); eventMap.put(EVENT_PATH, eventElement.getAttribute(EVENT_PATH)); eventMap.put(EVENT_METHOD, eventElement.getAttribute(EVENT_METHOD)); eventList.add(eventMap); } map.put(PREPROCESSOR, eventList); } // postprocessor events Element postprocessorElement = UtilXml.firstChildElement(root, POSTPROCESSOR); if (postprocessorElement != null) { List eventList = FastList.newInstance(); List eventElementList = UtilXml.childElementList(postprocessorElement, EVENT); Iterator eventElementIter = eventElementList.iterator(); while (eventElementIter.hasNext()) { Element eventElement = (Element) eventElementIter.next(); FastMap eventMap = FastMap.newInstance(); eventMap.put(EVENT_TYPE, eventElement.getAttribute(EVENT_TYPE)); eventMap.put(EVENT_PATH, eventElement.getAttribute(EVENT_PATH)); eventMap.put(EVENT_METHOD, eventElement.getAttribute(EVENT_METHOD)); eventList.add(eventMap); } map.put(POSTPROCESSOR, eventList); } // after-login events Element afterLoginElement = UtilXml.firstChildElement(root, "after-login"); if (afterLoginElement != null) { List eventList = FastList.newInstance(); List eventElementList = UtilXml.childElementList(afterLoginElement, EVENT); Iterator eventElementIter = eventElementList.iterator(); while (eventElementIter.hasNext()) { Element eventElement = (Element) eventElementIter.next(); FastMap eventMap = FastMap.newInstance(); eventMap.put(EVENT_TYPE, eventElement.getAttribute(EVENT_TYPE)); eventMap.put(EVENT_PATH, eventElement.getAttribute(EVENT_PATH)); eventMap.put(EVENT_METHOD, eventElement.getAttribute(EVENT_METHOD)); eventList.add(eventMap); } map.put("after-login", eventList); } // before-logout events Element beforeLogoutElement = UtilXml.firstChildElement(root, "before-logout"); if (beforeLogoutElement != null) { List eventList = FastList.newInstance(); List eventElementList = UtilXml.childElementList(beforeLogoutElement, EVENT); Iterator eventElementIter = eventElementList.iterator(); while (eventElementIter.hasNext()) { Element eventElement = (Element) eventElementIter.next(); FastMap eventMap = FastMap.newInstance(); eventMap.put(EVENT_TYPE, eventElement.getAttribute(EVENT_TYPE)); eventMap.put(EVENT_PATH, eventElement.getAttribute(EVENT_PATH)); eventMap.put(EVENT_METHOD, eventElement.getAttribute(EVENT_METHOD)); eventList.add(eventMap); } map.put("before-logout", eventList); } } /* Debugging */ /* Debug.logVerbose("-------- Config Mappings --------", module); FastMap debugMap = map; Set debugSet = debugMap.keySet(); Iterator i = debugSet.iterator(); while (i.hasNext()) { Object o = i.next(); String request = (String) o; FastMap thisURI = (FastMap) debugMap.get(o); Debug.logVerbose(request, module); Iterator debugIter = ((Set) thisURI.keySet()).iterator(); while (debugIter.hasNext()) { Object lo = debugIter.next(); String name = (String) lo; String value = (String) thisURI.get(lo); if (Debug.verboseOn()) Debug.logVerbose("\t" + name + " -> " + value, module); } } Debug.logVerbose("------ End Config Mappings ------", module); */ /* End Debugging */ double totalSeconds = (System.currentTimeMillis() - startTime)/1000.0; if (Debug.infoOn()) Debug.logInfo("ConfigMap Created: (" + map.size() + ") records in " + totalSeconds + "s", module); return map; } /** Gets a FastMap of handler mappings. */ public static Map getHandlerMap(URL xml) { ControllerConfig controllerConfig = getControllerConfig(xml); return controllerConfig != null ? controllerConfig.handlerMap : null; } public static Map loadHandlerMap(Element root, URL xml) { long startTime = System.currentTimeMillis(); FastMap map = FastMap.newInstance(); if (root == null) { root = loadDocument(xml); } if (root != null) { Map rMap = FastMap.newInstance(); Map vMap = FastMap.newInstance(); List handlerElementList = UtilXml.childElementList(root, HANDLER); Iterator handlerElementIter = handlerElementList.iterator(); while (handlerElementIter.hasNext()) { Element handlerElement = (Element) handlerElementIter.next(); String hName = checkEmpty(handlerElement.getAttribute(HANDLER_NAME)); String hClass = checkEmpty(handlerElement.getAttribute(HANDLER_CLASS)); String hType = checkEmpty(handlerElement.getAttribute(HANDLER_TYPE)); if (hType.equals("view")) { vMap.put(hName, hClass); } else { rMap.put(hName, hClass); } } map.put("view", vMap); map.put("event", rMap); } /* Debugging */ if (Debug.verboseOn()) { Debug.logVerbose("-------- Handler Mappings --------", module); Map debugMap = (Map) map.get("event"); if (debugMap != null && debugMap.size() > 0) { Debug.logVerbose("-------------- EVENT -------------", module); Set debugSet = debugMap.keySet(); Iterator i = debugSet.iterator(); while (i.hasNext()) { Object o = i.next(); String handlerName = (String) o; String className = (String) debugMap.get(o); Debug.logVerbose("[EH] : " + handlerName + " => " + className, module); } } debugMap = (Map) map.get("view"); if (debugMap != null && debugMap.size() > 0) { Debug.logVerbose("-------------- VIEW --------------", module); Set debugSet = debugMap.keySet(); Iterator i = debugSet.iterator(); while (i.hasNext()) { Object o = i.next(); String handlerName = (String) o; String className = (String) debugMap.get(o); Debug.logVerbose("[VH] : " + handlerName + " => " + className, module); } } Debug.logVerbose("------ End Handler Mappings ------", module); } double totalSeconds = (System.currentTimeMillis() - startTime)/1000.0; if (Debug.infoOn()) Debug.logInfo("HandlerMap Created: (" + map.size() + ") records in " + totalSeconds + "s", module); return map; } private static String checkEmpty(String string) { if (string != null && string.length() > 0) return string; else return ""; } public static void main(String args[]) throws Exception { /** Debugging */ if (args[0] == null) { System.out.println("Please give a path to the config file you wish to test."); return; } System.out.println("----------------------------------"); System.out.println("Request Mappings:"); System.out.println("----------------------------------"); Map debugMap = getRequestMap(new URL(args[0])); Set debugSet = debugMap.keySet(); Iterator i = debugSet.iterator(); while (i.hasNext()) { Object o = i.next(); String request = (String) o; FastMap thisURI = (FastMap) debugMap.get(o); System.out.println(request); Iterator list = ((java.util.Set) thisURI.keySet()).iterator(); while (list.hasNext()) { Object lo = list.next(); String name = (String) lo; String value = (String) thisURI.get(lo); System.out.println("\t" + name + " -> " + value); } } System.out.println("----------------------------------"); System.out.println("End Request Mappings."); System.out.println("----------------------------------"); /** End Debugging */ }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -