KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jdon > controller > config > XmlModelParser


1 /**
2  * Copyright 2003-2006 the original author or authors. Licensed under the Apache
3  * License, Version 2.0 (the "License"); you may not use this file except in
4  * compliance with the License. You may obtain a copy of the License at
5  *
6  * http://www.apache.org/licenses/LICENSE-2.0
7  *
8  * Unless required by applicable law or agreed to in writing, software
9  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11  * License for the specific language governing permissions and limitations under
12  * the License.
13  */

14
15 package com.jdon.controller.config;
16
17 import java.beans.BeanInfo JavaDoc;
18 import java.beans.IntrospectionException JavaDoc;
19 import java.beans.Introspector JavaDoc;
20 import java.beans.PropertyDescriptor JavaDoc;
21 import java.util.Map JavaDoc;
22
23 import com.jdon.model.config.ModelMapping;
24 import com.jdon.model.handler.HandlerMetaDef;
25 import java.util.List JavaDoc;
26 import java.util.Iterator JavaDoc;
27 import com.jdon.util.Debug;
28 import org.jdom.Element;
29
30 public class XmlModelParser extends XmlParser {
31     private final static String JavaDoc module = XmlModelParser.class.getName();
32
33     public void parse(Element root, Map JavaDoc mps) throws Exception JavaDoc {
34         try {
35             List JavaDoc modelList = root.getChildren("models");
36             Iterator JavaDoc iter = modelList.iterator();
37             while (iter.hasNext()) {
38                 Element models = (Element) iter.next();
39                 Iterator JavaDoc 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 JavaDoc e) {
47             Debug.logError("[JdonFramework]parse models error: " + e, module);
48             throw new Exception JavaDoc(e);
49         }
50     }
51
52     private void parseModelConfig(Element model, Map JavaDoc mps) throws Exception JavaDoc {
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             //keyClassType in XmlHandlerClassFactory;
60

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 JavaDoc 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 JavaDoc e) {
84             Debug.logError("[JdonFramework]parse Model class:" + model.getAttributeValue("class") + " error: " + e, module);
85             throw new Exception JavaDoc(e);
86         }
87     }
88     
89     private void parseHandlerConfig(Element serviceE, HandlerMetaDef sm) throws Exception JavaDoc {
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 JavaDoc e) {
128             Debug.logError("[JdonFramework]parseHandlerConfig error: " + e, module);
129             throw new Exception JavaDoc(e);
130         }
131
132     }
133     
134     
135    
136 }
137
Popular Tags