Author: tfmorris
Date: 2008-09-21 06:29:38-0700
New Revision: 15752

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

Log:
RESOLVED - issue 5360: Include State elements in cascading delete processing
http://argouml.tigris.org/issues/show_bug.cgi?id=5360

Modified: 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesFactoryMDRImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesFactoryMDRImpl.java?view=diff&rev=15752&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesFactoryMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesFactoryMDRImpl.java&r1=15751&r2=15752
==============================================================================
--- 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesFactoryMDRImpl.java
 (original)
+++ 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesFactoryMDRImpl.java
 2008-09-21 06:29:38-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
@@ -584,6 +584,29 @@
      * @param elem
      *            the UML element to be deleted
      */
+    void deleteState(Object elem) {
+        if (!(elem instanceof State)) {
+            throw new IllegalArgumentException();
+        }
+        State state = (State) elem;
+        deleteNonNull(state.getDoActivity());
+        deleteNonNull(state.getEntry());
+        deleteNonNull(state.getExit());
+        modelImpl.getUmlHelper().deleteCollection(
+                state.getInternalTransition());
+
+    }
+
+    private void deleteNonNull(ModelElement action) {
+        if (action != null) {
+            modelImpl.getUmlFactory().delete(action);
+        }
+    }
+    
+    /**
+     * @param elem
+     *            the UML element to be deleted
+     */
     void deleteSimpleState(Object elem) {
         if (!(elem instanceof SimpleState)) {
             throw new IllegalArgumentException();

Modified: 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java?view=diff&rev=15752&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java&r1=15751&r2=15752
==============================================================================
--- 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
   (original)
+++ 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
   2008-09-21 06:29:38-0700
@@ -1238,6 +1238,7 @@
         } else if (elem instanceof StubState) {
             getStateMachines().deleteStubState(elem);
         } else if (elem instanceof State) {
+            getStateMachines().deleteState(elem);
             if (elem instanceof CompositeState) {
                 getStateMachines().deleteCompositeState(elem);
                 if (elem instanceof SubmachineState) {

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

Reply via email to