Author: bobtarling
Date: 2010-11-21 18:03:04-0800
New Revision: 18855

Modified:
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/MetaDataCache.java

Log:
Refactor getClasses to populateClassMaps

Modified: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/MetaDataCache.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/MetaDataCache.java?view=diff&pathrev=18855&r1=18854&r2=18855
==============================================================================
--- 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/MetaDataCache.java
       (original)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/MetaDataCache.java
       2010-11-21 18:03:04-0800
@@ -56,13 +56,10 @@
         for (int i = 0; i < nl.getLength(); ++i) {
             Node n = nl.item(i);
             if (n.getNodeName().equals("classes")) {
-               metaTypeByName = getClasses((Element) n);
-               
-               nameByMetaType = new HashMap<Class<?>, 
String>(metaTypeByName.size());
-               for (Map.Entry<String, Class<?>> s : metaTypeByName.entrySet()) 
{
-                   nameByMetaType.put(s.getValue(), s.getKey());
-               }
-               
+               final int size = n.getChildNodes().getLength();
+               nameByMetaType = new HashMap<Class<?>, String>(size);
+               metaTypeByName = new HashMap<String, Class<?>>(size);
+               populateClassMaps((Element) n, nameByMetaType, metaTypeByName);
             } else if (n.getNodeName().equals("panels")) {
                cache = getPanels((Element) n);
             }
@@ -95,10 +92,10 @@
         return db.parse(inputSource);
     }
     
-    private HashMap<String, Class<?>> getClasses(Element classesNode) {
-        final HashMap<String, Class<?>> map =
-            new HashMap<String, Class<?>>(
-                   classesNode.getChildNodes().getLength());
+    private void populateClassMaps(
+           final Element classesNode,
+           final Map<Class<?>, String> nameByMetaType,
+           final Map<String, Class<?>> metaTypeByName) {
         final NodeList nl = classesNode.getElementsByTagName("class");
         for (int i = 0; i < nl.getLength(); ++i) {
             Node classNode = nl.item(i);
@@ -106,12 +103,13 @@
             try {
                 final String name = 
                    
classNode.getAttributes().getNamedItem("name").getNodeValue();
-                map.put(name, Class.forName(className));
+                Class<?> clazz = Class.forName(className);
+                metaTypeByName.put(name, clazz);
+               nameByMetaType.put(clazz, name);
             } catch (ClassNotFoundException e) {
                    LOG.error("Class not found " + className, e);
             }
         }
-        return map;
     }
     
     private Map<Class<?>, PanelData> getPanels(Element panelsNode) {

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2684161

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to