svn commit: r17463 - trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsHelperEUMLImpl.java
Thomas Neustupny <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: thn
Date: 2009-11-10 22:18:26-0800
New Revision: 17463
Modified:
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsHelperEUMLImpl.java
Log:
allow to add a base class for stereotypes in subpackages
Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsHelperEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsHelperEUMLImpl.java?view=diff&pathrev=17463&r1=17462&r2=17463
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsHelperEUMLImpl.java (original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ExtensionMechanismsHelperEUMLImpl.java 2009-11-10 22:18:26-0800
@@ -67,12 +67,21 @@
public void addBaseClass(Object handle, Object baseClass) {
if (handle instanceof Stereotype) {
org.eclipse.uml2.uml.Class metaclass = getMetaclass(baseClass);
- Profile profile = ((Stereotype) handle).getProfile();
+ Profile profile = (Profile) modelImpl.getFacade().getRoot(handle);
if (metaclass != null && profile != null) {
profile.createMetaclassReference(metaclass);
Stereotype st = (Stereotype) handle;
- st.createExtension(metaclass, false);
- return;
+ if (st.getProfile() != null) {
+ st.createExtension(metaclass, false);
+ return;
+ } else if (st.getPackage() != null){
+ // TODO: check if this hack is ok
+ org.eclipse.uml2.uml.Package p = st.getPackage();
+ st.setPackage(profile);
+ st.createExtension(metaclass, false);
+ st.setPackage(p);
+ return;
+ }
}
}
throw new IllegalArgumentException(
@@ -275,7 +284,7 @@
public void removeBaseClass(Object handle, Object baseClass) {
if (handle instanceof Stereotype) {
org.eclipse.uml2.uml.Class metaclass = getMetaclass(baseClass);
- Profile profile = ((Stereotype) handle).getProfile();
+ Profile profile = (Profile) modelImpl.getFacade().getRoot(handle);
if (metaclass != null && profile != null) {
Stereotype st = (Stereotype) handle;
st.getExtension(metaclass.getName());
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2416401
To unsubscribe from this discussion, e-mail: [[email protected]].