[159855] Adding support for metaclasses from UML metamodel extensions.
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java
index ef670b0..dc313b1 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM - initial API and implementation
*
- * $Id: UMLUtil.java,v 1.38 2006/10/20 23:49:00 khussey Exp $
+ * $Id: UMLUtil.java,v 1.39 2006/11/21 22:37:51 khussey Exp $
*/
package org.eclipse.uml2.uml.util;
@@ -6817,6 +6817,25 @@
protected static EClassifier getEClassifier(
org.eclipse.uml2.uml.Class metaclass) {
+ Resource eResource = metaclass.eResource();
+
+ if (eResource == null
+ || !UMLResource.UML_METAMODEL_URI.equals(eResource.getURI())) {
+
+ Model model = metaclass.getModel();
+
+ if (model != null) {
+ EPackage ePackage = EPackage.Registry.INSTANCE
+ .getEPackage((String) getTaggedValue(model, "Ecore" // $NON-NLS-1$
+ + NamedElement.SEPARATOR + STEREOTYPE__E_PACKAGE,
+ TAG_DEFINITION__NS_URI));
+
+ if (ePackage != null) {
+ return ePackage.getEClassifier(metaclass.getName());
+ }
+ }
+ }
+
return UMLPackage.eINSTANCE.getEClassifier(metaclass.getName());
}