svn commit: r16148 - trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: tfmorris
Date: 2008-11-23 10:08:43-0800
New Revision: 16148

Modified:
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java

Log:
Comments and TODOs.  No functional change.

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java?view=diff&rev=16148&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java&r1=16147&r2=16148
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java	2008-11-23 10:08:43-0800
@@ -161,17 +161,19 @@
         }
         Class kind = (Class) type;
         Collection ret = getAllModelElementsOfKind(model, kind);
-        if (kind.isAssignableFrom(model.getClass())) {
+        if (kind.isAssignableFrom(model.getClass()) && !ret.contains(model)) {
+            // TODO: It doesn't really make sense that a namespace would be
+            // returned as part of its own contents, but that's the historical
+            // behavior.
             ret = new ArrayList(ret);
-            if (!ret.contains(model)) {
-                ret.add(model);
-            }
+            ret.add(model);
         }
         return ret;
     }
     
 
-    public Collection getAllModelElementsOfKind(Object nsa, Object type) {
+    public Collection getAllModelElementsOfKind(Object nsa, Object type) {        
+        // TODO: Performance critical method
         long startTime = System.currentTimeMillis();
         if (nsa == null || type == null) {
             return Collections.EMPTY_LIST;
@@ -222,6 +224,8 @@
 
         // Remove any elements not in requested namespace
         Collection returnElements = new ArrayList();
+        // TODO: Perhaps use a HashSet or other collection with faster lookup
+        // performance in case our callers are doing naive .contains() lookups
         for (Iterator i = allOfType.iterator(); i.hasNext();) {
             Object me = i.next();
             // TODO: Optimize for root model case? - tfm
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.