1 14 15 package com.jdon.controller.config; 16 17 import java.beans.BeanInfo ; 18 import java.beans.IntrospectionException ; 19 import java.beans.Introspector ; 20 import java.beans.PropertyDescriptor ; 21 import java.util.Map ; 22 23 import com.jdon.model.config.ModelMapping; 24 import com.jdon.model.handler.HandlerMetaDef; 25 import java.util.List ; 26 import java.util.Iterator ; 27 import com.jdon.util.Debug; 28 import org.jdom.Element; 29 30 public class XmlModelParser extends XmlParser { 31 private final static String module = XmlModelParser.class.getName(); 32 33 public void parse(Element root, Map mps) throws Exception { 34 try { 35 List modelList = root.getChildren("models"); 36 Iterator iter = modelList.iterator(); 37 while (iter.hasNext()) { 38 Element models = (Element) iter.next(); 39 Iterator i = models.getChildren("model").iterator(); 40 while (i.hasNext()) { 41 Element model = (Element) i.next(); 42 parseModelConfig(model, mps); 43 } 44 45 } 46 } catch (Exception e) { 47 Debug.logError("[JdonFramework]parse models error: " + e, module); 48 throw new Exception (e); 49 } 50 } 51 52 private void parseModelConfig(Element model, Map mps) throws Exception { 53 try { 54 ModelMapping modelMapping = new ModelMapping(); 55 modelMapping.setKeyName(model.getAttributeValue("key")); 56 modelMapping.setClassName(model.getAttributeValue("class")); 57 Debug.logVerbose("[JdonFramework] read Config Model: " + modelMapping.getClassName(), module); 58 Debug.logVerbose("[JdonFramework] key: " + modelMapping.getKeyName(), module); 59 61 Element actionFormE = model.getChild("actionForm"); 62 modelMapping.setFormName(actionFormE.getAttributeValue("name")); 63 Debug.logVerbose("[JdonFramework] actionForm name: " + modelMapping.getFormName(), module); 64 65 Element handlerE = model.getChild("handler"); 66 if (handlerE != null) { 67 String classAttr = handlerE.getAttributeValue("class"); 68 if (classAttr != null) { 69 modelMapping.setHandler(classAttr); 70 Debug.logVerbose("[JdonFramework] handler class: " + modelMapping.getHandler(), module); 71 } 72 Debug.logVerbose("[JdonFramework] look up service in handler: ", module); 73 HandlerMetaDef sm = new HandlerMetaDef(); 74 Element serviceE = handlerE.getChild("service"); 75 if (serviceE != null) { 76 parseHandlerConfig(serviceE, sm); 77 modelMapping.setHandlerMetaDef(sm); 78 sm.setModelMapping(modelMapping); 79 } 80 81 } 82 mps.put(modelMapping.getFormName(), modelMapping); 83 } catch (Exception e) { 84 Debug.logError("[JdonFramework]parse Model class:" + model.getAttributeValue("class") + " error: " + e, module); 85 throw new Exception (e); 86 } 87 } 88 89 private void parseHandlerConfig(Element serviceE, HandlerMetaDef sm) throws Exception { 90 91 Debug.logVerbose("[JdonFramework] find a Service in handler: ", module); 92 try { 93 sm.setServiceRef(serviceE.getAttributeValue("ref")); 94 Debug.logVerbose("[JdonFramework] service ref: " + sm.getServiceRef(), module); 95 96 Element initMethod = serviceE.getChild("initMethod"); 97 if (initMethod != null) { 98 sm.setInitMethod(initMethod.getAttributeValue("name")); 99 Debug.logVerbose("[JdonFramework] initMethod name: " + sm.getInitMethod(), module); 100 } 101 102 Element getMethod = serviceE.getChild("getMethod"); 103 if (getMethod != null) { 104 sm.setFindtMethod(getMethod.getAttributeValue("name")); 105 Debug.logVerbose("[JdonFramework] getMethod name: " + sm.getFindMethod(), module); 106 } 107 108 Element createMethod = serviceE.getChild("createMethod"); 109 if (createMethod != null) { 110 sm.setCreateMethod(createMethod.getAttributeValue("name")); 111 Debug.logVerbose("[JdonFramework] createMethod name: " + sm.getCreateMethod(), module); 112 } 113 114 Element updateMethod = serviceE.getChild("updateMethod"); 115 if (updateMethod != null) { 116 sm.setUpdateMethod(updateMethod.getAttributeValue("name")); 117 Debug.logVerbose("[JdonFramework] updateMethod name: " + sm.getUpdateMethod(), module); 118 } 119 120 Element deleteMethod = serviceE.getChild("deleteMethod"); 121 if (deleteMethod != null) { 122 sm.setDeleteMethod(deleteMethod.getAttributeValue("name")); 123 Debug.logVerbose("[JdonFramework] deleteMethod name: " + sm.getDeleteMethod(), module); 124 } 125 126 127 } catch (Exception e) { 128 Debug.logError("[JdonFramework]parseHandlerConfig error: " + e, module); 129 throw new Exception (e); 130 } 131 132 } 133 134 135 136 } 137 | Popular Tags |