Bug 317241
Tentative patch
diff --git a/plugins/org.eclipse.gmf.codegen/plugin.xml b/plugins/org.eclipse.gmf.codegen/plugin.xml
index 284f066..5ec2784 100644
--- a/plugins/org.eclipse.gmf.codegen/plugin.xml
+++ b/plugins/org.eclipse.gmf.codegen/plugin.xml
@@ -155,5 +155,18 @@
namespace="xpt">
<library class="org.eclipse.gmf.internal.codegen.util.XpandFacadeAccess"/>
</unit>
+ <unit
+ name="GenPackageUtils"
+ namespace="gmf">
+ <library
+ class="org.eclipse.gmf.internal.codegen.util.GenPackageUtils">
+ <metamodel
+ nsURI="http://www.eclipse.org/emf/2002/GenModel">
+ </metamodel>
+ <metamodel
+ nsURI="http://www.eclipse.org/emf/2002/Ecore">
+ </metamodel>
+ </library>
+ </unit>
</extension>
</plugin>
diff --git a/plugins/org.eclipse.gmf.codegen/templates.nativestubs/gmf/GenPackageUtils.qvto b/plugins/org.eclipse.gmf.codegen/templates.nativestubs/gmf/GenPackageUtils.qvto
new file mode 100644
index 0000000..4dfdf33
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/templates.nativestubs/gmf/GenPackageUtils.qvto
@@ -0,0 +1,17 @@
+
+modeltype genModel uses "http://www.eclipse.org/emf/2002/GenModel";
+modeltype ecore uses "http://www.eclipse.org/emf/2002/Ecore";
+
+library GenPackageUtils;
+
+helper getGenPackageQualifiedPackageInterfaceName(genPackage : genmodel::GenPackage) : String {
+ return null;
+}
+
+helper getGenPackageQualifiedFactoryInterfaceName(genPackage : genmodel::GenPackage) : String {
+ return null;
+}
+
+helper getGenPackageQualifiedInterfaceName(genClass : genmodel::GenClass) : String {
+ return null;
+}
diff --git a/plugins/org.eclipse.gmf.codegen/templates.qvtlib/org/eclipse/gmf/internal/codegen/util/GenPackageUtils.java b/plugins/org.eclipse.gmf.codegen/templates.qvtlib/org/eclipse/gmf/internal/codegen/util/GenPackageUtils.java
new file mode 100644
index 0000000..9c06de8
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/templates.qvtlib/org/eclipse/gmf/internal/codegen/util/GenPackageUtils.java
@@ -0,0 +1,29 @@
+package org.eclipse.gmf.internal.codegen.util;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
+import org.eclipse.m2m.qvt.oml.blackbox.java.Operation;
+import org.eclipse.m2m.qvt.oml.blackbox.java.Operation.Kind;
+
+public class GenPackageUtils {
+
+ @Operation(contextual = false, kind = Kind.HELPER)
+ public static String getGenPackageQualifiedPackageInterfaceName(GenPackage genPackage)
+ {
+ return genPackage.getQualifiedPackageInterfaceName();
+ }
+
+ @Operation(contextual = false, kind = Kind.HELPER)
+ public String getGenPackageQualifiedFactoryInterfaceName(GenPackage genPackage)
+ {
+ return genPackage.getQualifiedFactoryInterfaceName();
+ }
+
+ @Operation(contextual = false, kind = Kind.HELPER)
+ public static String getGenPackageQualifiedInterfaceName(GenClass genClass)
+ {
+ return genClass.getQualifiedInterfaceName();
+ }
+
+
+}
diff --git a/plugins/org.eclipse.gmf.codegen/templates/MetaModel.qvto b/plugins/org.eclipse.gmf.codegen/templates/MetaModel.qvto
index 001bde0..2a52288 100644
--- a/plugins/org.eclipse.gmf.codegen/templates/MetaModel.qvto
+++ b/plugins/org.eclipse.gmf.codegen/templates/MetaModel.qvto
@@ -12,6 +12,7 @@
import xpt.StringOperations;
import xpt.GenModelUtils;
import gmf.CodeGenerationUtils;
+import gmf.GenPackageUtils;
modeltype genmodel uses "http://www.eclipse.org/emf/2002/GenModel";
modeltype ecore uses "http://www.eclipse.org/emf/2002/Ecore";
@@ -30,14 +31,14 @@
-- GenPackageImpl#getQualifiedPackageInterfaceName()
--
helper getQualifiedPackageInterfaceName(gp : genmodel::GenPackage) : String {
- return (if gp.genModel.suppressEMFMetaData then getQualifiedPackageClassName(gp) else getReflectionPackageName(gp) + '.' + getPackageInterfaceName(gp) endif)
+ return getGenPackageQualifiedPackageInterfaceName(gp)
}
--
-- GenPackageImpl#getQualifiedFactoryInterfaceName()
--
helper getQualifiedFactoryInterfaceName(gp : genmodel::GenPackage) : String {
- return getReflectionPackageName(gp) + '.' + getPrefixedName(gp, 'Factory')
+ return getGenPackageQualifiedFactoryInterfaceName(gp)
}
--
@@ -66,7 +67,7 @@
-- GenClass#getQualifiedInterfaceName
--
helper getQualifiedInterfaceName(gc : genmodel::GenClass) : String {
- return (if null <> gc.ecoreClass.instanceClassName then gc.ecoreClass.instanceClassName.xpandReplaceAll('\\$', '\\.') else getInterfacePackageName(gc.genPackage) + '.' + gc.ecoreClass.name endif)
+ return getGenPackageQualifiedInterfaceName(gc)
}
--