Author: bobtarling Date: 2008-05-10 09:24:07-0700 New Revision: 14689 Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
Log: Some extra well-formedness lost during recent refactoring 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=14689&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=14688&r2=14689 ============================================================================== --- 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-05-10 09:24:07-0700 @@ -973,6 +973,30 @@ if (elem == top) { for (RefObject o : elementsInDeletionOrder) { + if (o instanceof CompositeState) { + // This enforces the following well-formedness rule. + // <p>Well formedness rule 4.12.3.1 CompositeState + // [4] There have to be at least two composite + // substates in a concurrent composite state.<p> + // If this is broken by deletion of substate then we + // change the parent composite substate to be not + // concurrent. + CompositeState deletedCompositeState = + (CompositeState) o; + try { + CompositeState containingCompositeState = + deletedCompositeState.getContainer(); + if (containingCompositeState != null + && containingCompositeState. + isConcurrent() + && containingCompositeState.getSubvertex(). + size() == 1) { + containingCompositeState.setConcurrent(false); + } + } catch (InvalidObjectException e) { + LOG.warn("Object already deleted " + o); + } + } try { o.refDelete(); } catch (InvalidObjectException e) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
