1 15 16 package com.jdon.controller.config; 17 18 import java.io.InputStream ; 19 import java.util.LinkedHashMap ; 20 import java.util.Map ; 21 22 import org.jdom.Document; 23 import org.jdom.Element; 24 import org.jdom.JDOMException; 25 import org.jdom.input.SAXBuilder; 26 27 import com.jdon.util.Debug; 28 import com.jdon.util.FileLocator; 29 30 38 public abstract class XmlParser { 39 private final static String module = XmlParser.class.getName(); 40 41 private FileLocator fileLocator = new FileLocator(); 42 43 public Map load(String configFileName) { 44 Map mps = new LinkedHashMap (); 45 try { 46 if (configFileName == null) 47 return mps; 48 49 Document doc = buildDocument(configFileName); 50 if (doc == null) 51 return mps; 52 53 Element root = doc.getRootElement(); 54 parse(root, mps); 59 60 Debug.logVerbose("[JdonFramework]<!-- config load finished -->", module); 61 } catch (Exception ex) { 62 Debug.logError("[JdonFramework]configure FileName: " + configFileName + " parsed error: " + ex, module); 63 } 64 return mps; 65 } 66 67 private Document buildDocument(String configFileName) { 68 Debug.logVerbose("[JdonFramework] locate configure file :" + configFileName, module); 69 Document doc = null; 70 try { 71 InputStream xmlStream = fileLocator.getConfPathXmlStream(configFileName); 72 if (xmlStream == null){ 73 Debug.logVerbose("[JdonFramework]can't locate file:" + configFileName, module); 74 return null; 75 }else{ 76 Debug.logVerbose("[JdonFramework] configure file found :" + xmlStream, module); 77 } 78 79 SAXBuilder builder = new SAXBuilder(); 80 builder.setEntityResolver(new DTDEntityResolver()); 81 doc = builder.build(xmlStream); 82 Debug.logVerbose("[JdonFramework] got mapping file ", module); 83 } catch (JDOMException e) { 84 Debug.logError("[JdonFramework] JDOMException error: " + e, module); 85 } 86 return doc; 87 } 88 89 public abstract void parse(Element root, Map results) throws Exception ; 90 91 92 93 } 94 | Popular Tags |