svn commit: r15588 - trunk/src: argouml-core-model-euml/src/org/argouml/model/euml argouml-core-model-mdr/src/org/argouml/model/mdr argouml-core-model/src/org/argouml/model
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: tfmorris
Date: 2008-08-19 12:31:29-0700
New Revision: 15588
Modified:
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java
Log:
RESOLVED - task 5281: Make buildGeneralization more robust for cases where one extent is read-only
Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java?view=diff&rev=15588&p1=trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java&p2=trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java&r1=15587&r2=15588
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java (original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java 2008-08-19 12:31:29-0700
@@ -1126,9 +1126,14 @@
}
public Generalization createGeneralization() {
- return UMLFactory.eINSTANCE.createGeneralization();
+ return createGeneralization(null);
}
+ public Generalization createGeneralization(Object extent) {
+ // Extent ignored for eUML2 implementation (required for NetBeans MDR)
+ return UMLFactory.eINSTANCE.createGeneralization();
+ }
+
public Interface createInterface() {
return UMLFactory.eINSTANCE.createInterface();
}
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=15588&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=15587&r2=15588
==============================================================================
--- 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-08-19 12:31:29-0700
@@ -312,13 +312,16 @@
public Generalization createGeneralization() {
- Generalization myGeneralization = getCorePackage().getGeneralization()
- .createGeneralization();
+ return createGeneralization(modelImpl.getUmlPackage());
+ }
+
+ public Generalization createGeneralization(Object extent) {
+ Generalization myGeneralization = ((org.omg.uml.UmlPackage) extent)
+ .getCore().getGeneralization().createGeneralization();
super.initialize(myGeneralization);
return myGeneralization;
}
-
public Interface createInterface() {
Interface myInterface = getCorePackage()
.getInterface().createInterface();
@@ -1038,14 +1041,18 @@
throw new IllegalArgumentException("child is root");
}
- Generalization gen = createGeneralization();
+ Namespace ns = child.getNamespace();
+ if ((ns == null || modelImpl.getModelManagementHelper().isReadOnly(ns))
+ && child instanceof Namespace) {
+ ns = (Namespace) child;
+ }
+ if (ns == null || modelImpl.getModelManagementHelper().isReadOnly(ns)) {
+ throw new IllegalArgumentException("No valid writeable namespace");
+ }
+ Generalization gen = createGeneralization(ns.refOutermostPackage());
gen.setParent(parent);
gen.setChild(child);
- if (child.getNamespace() != null) {
- gen.setNamespace(child.getNamespace());
- } else if (child instanceof Namespace) {
- gen.setNamespace((Namespace) child);
- }
+ gen.setNamespace(ns);
return gen;
}
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=15588&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=15587&r2=15588
==============================================================================
--- 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-08-19 12:31:29-0700
@@ -651,7 +651,8 @@
if (containerType.isInstance(container)) {
// determine if metaType is a valid element for container
- Class<?>[] validElements = validContainmentMap.get(containerType);
+ Class<?>[] validElements =
+ validContainmentMap.get(containerType);
for (int eIter = 0; eIter < validElements.length; ++eIter) {
Modified: trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java?view=diff&rev=15588&p1=trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java&p2=trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java&r1=15587&r2=15588
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java (original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java 2008-08-19 12:31:29-0700
@@ -877,9 +877,15 @@
* Additional support for generalization.
*
* @return A generalization.
- * TODO: This needs an extra parameter to specify the model/extent where
- * the new element should be created.
+ * @deprecated for 0.26 by tfmorris. Use
+ * {@link #createGeneralization(Object)}.
*/
Object createGeneralization();
+ /**
+ * Create a generalization in the given extent.
+ *
+ * @return A generalization.
+ */
+ Object createGeneralization(Object extent);
}