Author: tfmorris
Date: 2008-04-14 13:33:35-0700
New Revision: 14345

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

Log:
Issue 4808 - put new associations in namespace of one of the connected 
classifiers by default.  This is the second half of the work in rev 14335.

Modified: trunk/src/model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java?view=diff&rev=14345&p1=trunk/src/model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java&p2=trunk/src/model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java&r1=14344&r2=14345
==============================================================================
--- trunk/src/model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java       
(original)
+++ trunk/src/model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java       
2008-04-14 13:33:35-0700
@@ -1,5 +1,5 @@
 // $Id$
-// Copyright (c) 1996-2007 The Regents of the University of California. All
+// Copyright (c) 1996-2008 The Regents of the University of California. All
 // Rights Reserved. Permission to use, copy, modify, and distribute this
 // software and its documentation without fee, and without a written
 // agreement is hereby granted, provided that the above copyright notice
@@ -436,10 +436,21 @@
             throw new IllegalArgumentException("one of "
                     + "the classifiers does not " + "belong to a namespace");
         }
+        
+        // We'll put the association in the namespace of whichever end
+        // is navigable.  If they both are, we'll use the namepace of c1.
+        Namespace ns = null;
+        if (nav1) {
+            ns = ns1;
+        } else if (nav2) {
+            ns = ns2;
+        } else {
+            throw new IllegalArgumentException(
+                    "At least one end must be navigable");
+        }
         UmlAssociation assoc = createAssociation();
         assoc.setName("");
-        assoc.setNamespace((Namespace) modelImpl.getCoreHelper().
-                getFirstSharedNamespace(ns1, ns2));
+        assoc.setNamespace(ns);
         buildAssociationEnd(assoc, null, c1, null, null,
                 nav1, null, agg1, null, null, null);
         buildAssociationEnd(assoc, null, c2, null, null, 
@@ -1698,7 +1709,7 @@
      *            is the namespace.
      */
     void deleteNamespace(Object elem) {
-        LOG.info("Deleting namespace " + elem);
+        LOG.debug("Deleting namespace " + elem);
         if (!(elem instanceof Namespace)) {
             throw new IllegalArgumentException("elem: " + elem);
         }
@@ -1709,7 +1720,7 @@
         // additional elements that need to be deleted as a result.
         ownedElements.addAll(((Namespace) elem).getOwnedElement());
         for (ModelElement element : ownedElements) {
-            LOG.info("Deleting " + element);
+            LOG.debug("Deleting " + element);
             modelImpl.getUmlFactory().delete(element);
         }
     }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to