svn commit: r18336 - trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2010-04-27 05:27:26-0700
New Revision: 18336

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

Log:
Issue 6038: If changing multiplicity leaves an orphan then make sure that gets deleted.

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java?view=diff&pathrev=18336&r1=18335&r2=18336
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java	2010-04-27 05:27:26-0700
@@ -2936,27 +2936,26 @@
 
         if (arg == null || arg instanceof Multiplicity) {
             Multiplicity mult = (Multiplicity) arg;
-
+            Multiplicity previousMult =
+                (Multiplicity) Model.getFacade().getMultiplicity(handle);
             if (handle instanceof AssociationRole) {
                 ((AssociationRole) handle).setMultiplicity(mult);
-                return;
-            }
-            if (handle instanceof ClassifierRole) {
+            } else if (handle instanceof ClassifierRole) {
                 ((ClassifierRole) handle).setMultiplicity(mult);
-                return;
-            }
-            if (handle instanceof StructuralFeature) {
+            } else if (handle instanceof StructuralFeature) {
                 ((StructuralFeature) handle).setMultiplicity(mult);
-                return;
-            }
-            if (handle instanceof AssociationEnd) {
-                LOG.debug("Setting association end mult to " + mult);
+            } else if (handle instanceof AssociationEnd) {
                 ((AssociationEnd) handle).setMultiplicity(mult);
-                return;
-            }
-            if (handle instanceof TagDefinition) {
+            } else if (handle instanceof TagDefinition) {
                 ((TagDefinition) handle).setMultiplicity(mult);
-                return;
+            }
+            if (previousMult != null &&
+                    Model.getFacade().getModelElementContainer(previousMult)
+                    == null) {
+                if (LOG.isDebugEnabled()) {
+                    LOG.debug("Previous multiplicity of " + handle + " will be deleted." + mult);
+                }
+                Model.getUmlFactory().delete(previousMult);
             }
         }
 

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java?view=diff&pathrev=18336&r1=18335&r2=18336
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java	2010-04-27 05:27:26-0700
@@ -2130,18 +2130,18 @@
             if (handle instanceof StructuralFeature) {
                 StructuralFeature sf = (StructuralFeature) handle;
                 return sf.getMultiplicity();
-            }
-            if (handle instanceof TagDefinition) {
+            } else if (handle instanceof TagDefinition) {
                 TagDefinition td = (TagDefinition) handle;
                 return td.getMultiplicity();
-            }
-            if (handle instanceof ClassifierRole) {
+            } else if (handle instanceof ClassifierRole) {
                 ClassifierRole cr = (ClassifierRole) handle;
                 return cr.getMultiplicity();
-            }
-            if (handle instanceof AssociationEnd) {
+            } else if (handle instanceof AssociationEnd) {
                 AssociationEnd ae = (AssociationEnd) handle;
                 return ae.getMultiplicity();
+            } else if (handle instanceof AssociationRole) {
+                AssociationRole ar = (AssociationRole) handle;
+                return ar.getMultiplicity();
             }
         } catch (InvalidObjectException e) {
             throw new InvalidElementException(e);

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

To unsubscribe from this discussion, e-mail: [[email protected]].
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.