svn commit: r19961 - trunk/src/argouml-app/src/org/argouml/uml/util/ModelUtil.java

[email protected] Sun, 11 Jan 2015 14:13:54 -0800 (PST)
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2015-01-11 14:13:53-0800
New Revision: 19961

Modified:
   trunk/src/argouml-app/src/org/argouml/uml/util/ModelUtil.java

Log:
Only use navigable associations to generate package dependencies

Modified: trunk/src/argouml-app/src/org/argouml/uml/util/ModelUtil.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/util/ModelUtil.java?view=diff&pathrev=19961&r1=19960&r2=19961
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/util/ModelUtil.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/util/ModelUtil.java	2015-01-11 14:13:53-0800
@@ -44,24 +44,37 @@
             for (Object classifier : Model.getModelManagementHelper().getAllModelElementsOfKindWithModel(model, Model.getMetaTypes().getClassifier())) {
                 
                 Object namespace = Model.getFacade().getNamespace(classifier);
-                Set dependentNamespaces = new HashSet();
                 
-                for (Object dependency : Model.getFacade().getClientDependencies(classifier)) {
-                    for (Object dependentClass : Model.getFacade().getSuppliers(dependency)) {
-                        dependentNamespaces.add(Model.getFacade().getNamespace(dependentClass));
+                if (Model.getFacade().getNamespace(namespace) != null) {
+                    Set dependentNamespaces = new HashSet();
+                    
+                    for (Object dependency : Model.getFacade().getClientDependencies(classifier)) {
+                        for (Object dependentClass : Model.getFacade().getSuppliers(dependency)) {
+                            dependentNamespaces.add(Model.getFacade().getNamespace(dependentClass));
+                        }
                     }
-                }
-                for (Object generalization : Model.getFacade().getGeneralizations(classifier)) {
-                    Object superClass = Model.getFacade().getGeneral(generalization);
-                    dependentNamespaces.add(Model.getFacade().getNamespace(superClass));
-                }
-                for (Object associatedClassifier : Model.getFacade().getAssociatedClasses(classifier)) {
-                    dependentNamespaces.add(Model.getFacade().getNamespace(associatedClassifier));
-                }
-
-                for (Object dependentNamespace : dependentNamespaces) {
-                    if (Model.getCoreHelper().getDependencies(dependentNamespace, namespace).isEmpty()) {
-                        Model.getUmlFactory().buildConnection(Model.getMetaTypes().getDependency(), namespace, null, dependentNamespace, null, true, namespace);
+                    for (Object generalization : Model.getFacade().getGeneralizations(classifier)) {
+                        Object superClass = Model.getFacade().getGeneral(generalization);
+                        dependentNamespaces.add(Model.getFacade().getNamespace(superClass));
+                    }
+                    
+                    for (Object closeEnd : Model.getFacade().getAssociationEnds(classifier)) {
+                        Object assoc = Model.getFacade().getAssociation(closeEnd);
+                        for (Object assEnd : Model.getFacade().getOtherAssociationEnds(closeEnd)) {
+                            if (Model.getFacade().isNavigable(assEnd)) {
+                                Object associatedClassifier = Model.getFacade().getClassifier(assEnd);
+                                dependentNamespaces.add(Model.getFacade().getNamespace(associatedClassifier));
+                            }
+                        }
+                    }
+    
+                    for (Object dependentNamespace : dependentNamespaces) {
+                        
+                        if (Model.getFacade().getNamespace(dependentNamespace) != null
+                                && namespace != dependentNamespace
+                                && Model.getCoreHelper().getDependencies(dependentNamespace, namespace).isEmpty()) {
+                            Model.getUmlFactory().buildConnection(Model.getMetaTypes().getDependency(), namespace, null, dependentNamespace, null, true, namespace);
+                        }
                     }
                 }
             }

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

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