1 15 16 package com.jdon.model.factory; 17 18 import java.util.HashMap ; 19 import java.util.Iterator ; 20 import java.util.Map ; 21 22 import com.jdon.container.config.app.AppConfigureCollection; 23 import com.jdon.container.pico.Startable; 24 import com.jdon.model.config.ConfigureReader; 25 import com.jdon.model.config.ModelMapping; 26 import com.jdon.util.Debug; 27 28 38 public final class ModelHandlerClassBuilder implements Startable { 39 public final static String module = ModelHandlerClassBuilder.class.getName(); 40 41 private ModelHandlerClassFactory modelHandlerClassFactory; 42 43 private Map configLoadedList = new HashMap (); 44 45 48 private Map mps = new HashMap (); 49 50 53 private Map modelClasses = new HashMap (); 54 55 58 private Map handlerClasses = new HashMap (); 59 60 public ModelHandlerClassBuilder(AppConfigureCollection appConfigureFiles, 61 ModelHandlerClassFactory handlerClassFactory) { 62 this.modelHandlerClassFactory = handlerClassFactory; 63 Iterator iter = appConfigureFiles.getConfigList().iterator(); 64 while (iter.hasNext()) { 65 String configFile = (String ) iter.next(); 66 if (!configLoadedList.containsKey(configFile)) { 67 ConfigureReader configureReader = new ConfigureReader( 68 configFile); 69 Debug.logVerbose("[JdonFramework]init configFile = " 70 + configFile, module); 71 configLoadedList.put(configFile, configureReader); 72 } 73 } 74 } 75 76 82 public void start() { 83 try { 84 Iterator iter = configLoadedList.keySet().iterator(); 85 while (iter.hasNext()) { 86 String configFile = (String ) iter.next(); 87 Debug.logVerbose("[JdonFramework] start configFile = " + configFile, module); 88 ConfigureReader configureLoader = (ConfigureReader) configLoadedList.get(configFile); 89 Map modelMappings = configureLoader.load(); 90 mps.putAll(modelMappings); 91 92 Iterator mpsIter = modelMappings.keySet().iterator(); 93 while (mpsIter.hasNext()) { 94 String formName = (String ) mpsIter.next(); 95 build(formName); 96 } 97 } 98 configLoadedList.clear(); 99 } catch (Exception ex) { 100 Debug.logError("[JdonFramework] !!!!!!!framework started error: " 101 + ex, module); 102 } 103 } 104 105 private void build(String formName){ 106 Debug.logVerbose("[JdonFramework] start build model for formName = " + formName, module); 107 ModelMapping modelMapping = (ModelMapping) mps.get(formName); 108 try { 109 110 111 Class modelClass = modelHandlerClassFactory.createModel(modelMapping); 112 modelClasses.put(formName, modelClass); 113 114 Class keyClassType = modelHandlerClassFactory.createModelKeyClassType(modelMapping, modelClass); 115 modelMapping.setKeyClassType(keyClassType); 116 117 handlerClasses.put(formName, modelHandlerClassFactory.createHandler(modelMapping)); 118 } catch (Exception e) { 119 Debug.logError("[JdonFramework] build error: " + e, module); 120 } 121 } 122 123 126 public void stop() { 127 mps.clear(); 128 configLoadedList.clear(); 129 modelClasses.clear(); 130 handlerClasses.clear(); 131 } 132 133 public ModelMapping getModelMapping(String formName) { 134 return (ModelMapping) mps.get(formName); 135 } 136 137 140 public Class getHandlerClasses(String formName) { 141 return (Class )handlerClasses.get(formName); 142 } 143 144 147 public Class getModelClasses(String formName) { 148 return (Class )modelClasses.get(formName); 149 } 150 151 152 153 } 154 | Popular Tags |