package com.firefly.core.support.xml.parse; import com.firefly.core.support.exception.BeanDefinitionParsingException; import com.firefly.utils.dom.Dom; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Element; public class XmlNodeStateMachine { private static Logger log = LoggerFactory.getLogger("firefly-system"); public static Object stateProcessor(Element ele, Dom dom) { String elementName = ele.getNodeName() != null ? ele.getNodeName() : ele.getLocalName(); XmlNodeParser xmlNodeParser = XmlNodeParserFactory.getParser(elementName); if(xmlNodeParser == null) error("Unknown property sub-element: [" + ele.getNodeName() + "]"); Object ret = xmlNodeParser.parse(ele, dom); return ret; } private static void error(String msg) { log.error(msg); throw new BeanDefinitionParsingException(msg); } }