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]].

Reply via email to