[177252] Avoiding unnecessary generation of model root class methods.
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/util/UML2GenModelUtil.java b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/util/UML2GenModelUtil.java
index 7d47c4c..316c943 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/util/UML2GenModelUtil.java
+++ b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/util/UML2GenModelUtil.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM - initial API and implementation
*
- * $Id: UML2GenModelUtil.java,v 1.17 2007/02/14 19:59:49 khussey Exp $
+ * $Id: UML2GenModelUtil.java,v 1.18 2007/03/14 02:29:02 khussey Exp $
*/
package org.eclipse.uml2.codegen.ecore.genmodel.util;
@@ -520,6 +520,32 @@
: null;
}
+ public static boolean isFactoryMethods(GenClass genClass) {
+
+ for (GenClass classExtendsGenClass = genClass.getClassExtendsGenClass(); classExtendsGenClass != null; classExtendsGenClass = classExtendsGenClass
+ .getClassExtendsGenClass()) {
+
+ if (isFactoryMethods(classExtendsGenClass.getGenModel())) {
+ return false;
+ }
+ }
+
+ return isFactoryMethods(genClass.getGenModel());
+ }
+
+ public static boolean isCacheAdapterSupport(GenClass genClass) {
+
+ for (GenClass classExtendsGenClass = genClass.getClassExtendsGenClass(); classExtendsGenClass != null; classExtendsGenClass = classExtendsGenClass
+ .getClassExtendsGenClass()) {
+
+ if (isCacheAdapterSupport(classExtendsGenClass.getGenModel())) {
+ return false;
+ }
+ }
+
+ return isCacheAdapterSupport(genClass.getGenModel());
+ }
+
// GenFeature utilities
public static boolean isCached(GenFeature genFeature) {
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/model/Class.java b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/model/Class.java
index c419098..881577c 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/model/Class.java
+++ b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/model/Class.java
@@ -7740,7 +7740,7 @@
stringBuffer.append(TEXT_2146);
if (isImplementation) {
if (genClass.isModelRoot()) {
- if (UML2GenModelUtil.isFactoryMethods(genModel)) {
+ if (UML2GenModelUtil.isFactoryMethods(genClass)) {
stringBuffer.append(TEXT_2147);
stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
stringBuffer.append(TEXT_2148);
@@ -7749,7 +7749,7 @@
stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));
stringBuffer.append(TEXT_2150);
}
- if (UML2GenModelUtil.isCacheAdapterSupport(genModel)) {
+ if (UML2GenModelUtil.isCacheAdapterSupport(genClass)) {
stringBuffer.append(TEXT_2151);
stringBuffer.append(genClass.getFormattedName());
stringBuffer.append(TEXT_2152);
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/insert.javajetinc b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/insert.javajetinc
index bf4cbd3..7972e13 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/insert.javajetinc
+++ b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/insert.javajetinc
@@ -1,6 +1,6 @@
<%if (isImplementation) {%>
<%if (genClass.isModelRoot()) {%>
- <%if (UML2GenModelUtil.isFactoryMethods(genModel)) {%>
+ <%if (UML2GenModelUtil.isFactoryMethods(genClass)) {%>
/**
* Creates a new instance of the specified Ecore class.
* <!-- begin-user-doc -->
@@ -15,7 +15,7 @@
}
<%}%>
- <%if (UML2GenModelUtil.isCacheAdapterSupport(genModel)) {%>
+ <%if (UML2GenModelUtil.isCacheAdapterSupport(genClass)) {%>
/**
* Retrieves the cache adapter for this '<em><b><%=genClass.getFormattedName()%></b></em>'.
* <!-- begin-user-doc -->