Author: tfmorris Date: 2008-05-14 10:02:21-0700 New Revision: 14732 Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java
Log: Isse 5084: Enforce aggregation well-formedness - rule #2 http://argouml.tigris.org/issues/show_bug.cgi?id=5084 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&rev=14732&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java&r1=14731&r2=14732 ============================================================================== --- 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 2008-05-14 10:02:21-0700 @@ -2518,6 +2518,17 @@ } else { ae.setAggregation(AggregationKindEnum.AK_NONE); } + // If we made something aggregate, make sure the other ends conform + // to UML 1.4 WFR 2.5.3.1 #2 - no more than one aggregate end + if (ak == AggregationKindEnum.AK_AGGREGATE + || ak == AggregationKindEnum.AK_COMPOSITE) { + for (AssociationEnd end : ae.getAssociation().getConnection()) { + if (!end.equals(ae) + && end.getAggregation() != AggregationKindEnum.AK_NONE) { + end.setAggregation(AggregationKindEnum.AK_NONE); + } + } + } return; } throw new IllegalArgumentException("handle: " + handle --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
