svn commit: r14955 - trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: tfmorris
Date: 2008-06-15 14:12:35-0700
New Revision: 14955
Modified:
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
Log:
Issue 5062: prevent Realizations and Abstractions being created to self
Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java?view=diff&rev=14955&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java&r1=14954&r2=14955
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java (original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java 2008-06-15 14:12:35-0700
@@ -157,6 +157,10 @@
"The supplier and client of an abstraction"
+ "should be classifiers");
}
+ if (client.equals(supplier)) {
+ throw new IllegalArgumentException("The supplier and the client "
+ + "must be different elements");
+ }
Abstraction abstraction = createAbstraction();
abstraction.setName(name);
abstraction.getClient().add((Classifier) client);
@@ -1197,7 +1201,7 @@
ModelElement client = (ModelElement) clnt;
ModelElement supplier = (ModelElement) spplr;
if (client == null || supplier == null || client.getNamespace() == null
- || supplier.getNamespace() == null) {
+ || supplier.getNamespace() == null || client.equals(supplier)) {
throw new IllegalArgumentException("faulty arguments.");
}
Abstraction realization = createAbstraction();
@@ -1212,8 +1216,8 @@
realization.setNamespace(nsc);
modelImpl.getExtensionMechanismsFactory().buildStereotype(realization,
CoreFactory.REALIZE_STEREOTYPE, ns);
- modelImpl.getCoreHelper().addClientDependency(client, realization);
- modelImpl.getCoreHelper().addSupplierDependency(supplier, realization);
+ realization.getClient().add(client);
+ realization.getSupplier().add(supplier);
return realization;
}