svn commit: r19798 - branches/BRANCH_0_34_x/src/argouml-core-model-mdr: . src/org/argouml/model/mdr

[email protected] Mon, 12 Dec 2011 09:07:42 -0800 (PST)
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: linus
Date: 2011-12-12 09:07:41-0800
New Revision: 19798

Modified:
   branches/BRANCH_0_34_x/src/argouml-core-model-mdr/   (props changed)
   branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java

Log:
Merged the solution to issue 6389.

Merged from revision 19797.

Modified: branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java?view=diff&pathrev=19798&r1=19797&r2=19798
==============================================================================
--- branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java	(original)
+++ branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java	2011-12-12 09:07:41-0800
@@ -395,6 +395,13 @@
      */
     public Map<String, Object> getXMIUUIDToObjectMap() {
         if (resolver != null) {
+            // Give the resolver.getIdToObjectMap() entries 
+            // priority over entries with the same UUID from 
+            // resolver.getIdToObjectMaps() because entries
+            // in resolver.getIdToObjectMaps() are historic.
+            HashMap<String, Object> globalXmiIdToObjectMap = 
+                new HashMap<String, Object>(resolver.getIdToObjectMap());
+
             Map<String, Map<String, Object>> idToObjectMaps = 
                 resolver.getIdToObjectMaps();
             Set<Entry<String,Map<String,Object>>> entrySet = null;
@@ -411,17 +418,19 @@
                     entry.setValue(new HashMap<String,Object>(entry.getValue()));
                 }
             }
-            HashMap<String, Object> globalXmiIdToObjectMap = 
-                new HashMap<String, Object>();
             for (Entry<String, Map<String, Object>> entry : entrySet) {
                 String xmiIdPrefix =
                     entry.getKey().startsWith(getTempXMIFileURIPrefix()) ? "" : 
                         entry.getKey() + "#";
                 for (Entry<String, Object> innerMapEntry : 
                         entry.getValue().entrySet()) {
-                    globalXmiIdToObjectMap.put(
-                        xmiIdPrefix + innerMapEntry.getKey(),
-                        innerMapEntry.getValue());
+                    
+                    String id = xmiIdPrefix + innerMapEntry.getKey();
+                    if (!globalXmiIdToObjectMap.containsKey(id)) {
+                        globalXmiIdToObjectMap.put(
+                                id,
+                                innerMapEntry.getValue());
+                    }
                 }
             }
             return globalXmiIdToObjectMap;

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

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