package org.theonefx.wcframework.mvc; import org.theonefx.wcframework.core.BeanDefinitionRegistry; import org.theonefx.wcframework.core.XmlParseContext; import org.theonefx.wcframework.core.XmlParser; import org.theonefx.wcframework.core.XmlParserDelegate; import org.theonefx.wcframework.utils.StringUtils; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class MVCXmlParser implements XmlParser { private final String MVC_CONFIG = "mvc-config"; private final String MVC_CONFIG_EXTENSION = "extension"; private final String MVC_CONFIG_IGNORE = "ignore"; private final String MVC_CONFIG_ENCODING = "default-encoding"; private final String MVC_CONFIG_BASE = "base"; private final String MVC_CONFIG_OBJECT_FACTORY = "object-factory"; @Override public void parse(XmlParserDelegate delegate, Element root, BeanDefinitionRegistry registry, XmlParseContext context) { if (MVC_CONFIG.equals(root.getNodeName())) { NodeList nodelist = root.getChildNodes(); for (int i = 0; i < nodelist.getLength(); i++) { Node node = nodelist.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; if (MVC_CONFIG_EXTENSION.equals(element.getNodeName())) { MVCConfig.extention = element.getTextContent().trim(); } else if (MVC_CONFIG_IGNORE.equals(element.getNodeName())) { MVCConfig.ignorePatten = element.getTextContent().trim(); } else if (MVC_CONFIG_ENCODING.equals(element.getNodeName())) { MVCConfig.defaultEncoding = StringUtils.isBlank(element.getTextContent()) ? null : element.getTextContent().trim(); } else if (MVC_CONFIG_OBJECT_FACTORY.equals(element.getNodeName())) { MVCConfig.objectFactory = StringUtils.isBlank(element.getTextContent()) ? WebApplicationContext.WCF_OBJECT_FACTORY : element .getTextContent().trim(); } else if (MVC_CONFIG_BASE.equals(element.getNodeName())) { String base = element.getTextContent(); if (StringUtils.isNotBlank(base)) { if (!base.endsWith("/")) { base = base + "/"; } MVCConfig.base = base; } } } } } } }