[547424] Duplicated @Override annotation in generate code

- avoid generating an @Override that the base template will generate

Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=547424
Change-Id: I140ceff4855303b9045c3f8e08abef2421ecdfa2
Signed-off-by: Christian W. Damus <give.a.damus@gmail.com>
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/edit/ItemProvider.java b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/edit/ItemProvider.java
index 3eddc66..ac4abc5 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/edit/ItemProvider.java
+++ b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/edit/ItemProvider.java
@@ -164,72 +164,74 @@
   protected final String TEXT_145 = "(notification, notification.getNotifier(), false, true));" + NL + "\t\t\t\treturn;";
   protected final String TEXT_146 = "(notification, notification.getNotifier(), true, false));" + NL + "\t\t\t\treturn;";
   protected final String TEXT_147 = "(notification, notification.getNotifier(), true, true));" + NL + "\t\t\t\treturn;";
-  protected final String TEXT_148 = NL + "\t\t}";
-  protected final String TEXT_149 = NL + "\t\tsuper.notifyChanged(notification);" + NL + "\t}" + NL;
-  protected final String TEXT_150 = NL + "\t/**" + NL + "\t * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children" + NL + "\t * that can be created under this object." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_151 = NL + "\tprotected void collectNewChildDescriptors(";
-  protected final String TEXT_152 = " newChildDescriptors, Object object)" + NL + "\t{" + NL + "\t\tsuper.collectNewChildDescriptors(newChildDescriptors, object);";
-  protected final String TEXT_153 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
-  protected final String TEXT_154 = ".createEntry" + NL + "\t\t\t\t\t(";
-  protected final String TEXT_155 = NL + "\t\t\t\t\t ";
-  protected final String TEXT_156 = ".create(";
-  protected final String TEXT_157 = "))));";
-  protected final String TEXT_158 = ".create";
-  protected final String TEXT_159 = "())));";
-  protected final String TEXT_160 = ".createFromString(";
-  protected final String TEXT_161 = ", ";
-  protected final String TEXT_162 = " // TODO: ensure this is a valid literal value";
-  protected final String TEXT_163 = "));";
-  protected final String TEXT_164 = NL + "\t/**" + NL + "\t * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_165 = NL + "\tpublic String getCreateChildText(Object owner, Object feature, Object child, ";
-  protected final String TEXT_166 = " selection)" + NL + "\t{" + NL + "\t\tObject childFeature = feature;" + NL + "\t\tObject childObject = child;" + NL;
-  protected final String TEXT_167 = NL + "\t\tif (childFeature instanceof ";
-  protected final String TEXT_168 = " && ";
-  protected final String TEXT_169 = ".isFeatureMap((EStructuralFeature)childFeature))" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_170 = ".Entry entry = (FeatureMap.Entry)childObject;" + NL + "\t\t\tchildFeature = entry.getEStructuralFeature();" + NL + "\t\t\tchildObject = entry.getValue();" + NL + "\t\t}" + NL;
-  protected final String TEXT_171 = NL + "\t\tboolean qualify =";
-  protected final String TEXT_172 = NL + "\t\t\tchildFeature == ";
-  protected final String TEXT_173 = NL + NL + "\t\tif (qualify)" + NL + "\t\t{" + NL + "\t\t\treturn getString" + NL + "\t\t\t\t(\"_UI_CreateChild_text2\",";
-  protected final String TEXT_174 = NL + "\t\t\t\t new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });" + NL + "\t\t}" + NL + "\t\treturn super.getCreateChildText(owner, feature, child, selection);" + NL + "\t}" + NL;
-  protected final String TEXT_175 = NL + "\t/**" + NL + "\t * Return the resource locator for this item provider's resources." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_176 = " getResourceLocator()" + NL + "\t{";
-  protected final String TEXT_177 = ")adapterFactory).getResourceLocator();";
-  protected final String TEXT_178 = NL + "\t\treturn ";
-  protected final String TEXT_179 = ".INSTANCE;";
-  protected final String TEXT_180 = NL + "\t/**" + NL + "\t * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createAddCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection, int)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_181 = " createAddCommand(";
-  protected final String TEXT_182 = " domain, ";
-  protected final String TEXT_183 = " owner, ";
-  protected final String TEXT_184 = " feature, ";
-  protected final String TEXT_185 = " collection, int index) {";
-  protected final String TEXT_186 = NL + "\t\tif (feature == ";
-  protected final String TEXT_187 = ") {" + NL + "\t\t\treturn new ";
-  protected final String TEXT_188 = "(domain, owner, feature, ";
-  protected final String TEXT_189 = ", collection, index);" + NL + "\t\t}";
-  protected final String TEXT_190 = NL + "\t\treturn super.createAddCommand(domain, owner, feature, collection, index);" + NL + "\t}" + NL;
-  protected final String TEXT_191 = NL + "\t/**" + NL + "\t * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createRemoveCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_192 = " createRemoveCommand(";
-  protected final String TEXT_193 = " collection) {";
-  protected final String TEXT_194 = ", collection);" + NL + "\t\t}";
-  protected final String TEXT_195 = NL + "\t\treturn super.createRemoveCommand(domain, owner, feature, collection);" + NL + "\t}" + NL;
-  protected final String TEXT_196 = NL + "\t/**" + NL + "\t * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createReplaceCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.lang.Object, java.util.Collection)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_197 = " createReplaceCommand(";
-  protected final String TEXT_198 = " value, ";
-  protected final String TEXT_199 = ", value, collection);" + NL + "\t\t}";
-  protected final String TEXT_200 = NL + "\t\treturn super.createReplaceCommand(domain, owner, feature, value, collection);" + NL + "\t}" + NL;
-  protected final String TEXT_201 = NL + "\t/**" + NL + "\t * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createSetCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.lang.Object)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_202 = " createSetCommand(";
-  protected final String TEXT_203 = " feature, Object value) {";
-  protected final String TEXT_204 = ", value);" + NL + "\t\t}";
-  protected final String TEXT_205 = NL + "\t\treturn super.createSetCommand(domain, owner, feature, value);" + NL + "\t}" + NL;
-  protected final String TEXT_206 = NL + "}";
+  protected final String TEXT_148 = NL + "\t\t\tdefault:";
+  protected final String TEXT_149 = NL + "\t\t}";
+  protected final String TEXT_150 = "\t\tsuper.notifyChanged(notification);";
+  protected final String TEXT_151 = "\t\treturn;" + NL + "\t\t\t}";
+  protected final String TEXT_152 = NL + "\t/**" + NL + "\t * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children" + NL + "\t * that can be created under this object." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_153 = NL + "\tprotected void collectNewChildDescriptors(";
+  protected final String TEXT_154 = " newChildDescriptors, Object object)" + NL + "\t{" + NL + "\t\tsuper.collectNewChildDescriptors(newChildDescriptors, object);";
+  protected final String TEXT_155 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
+  protected final String TEXT_156 = ".createEntry" + NL + "\t\t\t\t\t(";
+  protected final String TEXT_157 = NL + "\t\t\t\t\t ";
+  protected final String TEXT_158 = ".create(";
+  protected final String TEXT_159 = "))));";
+  protected final String TEXT_160 = ".create";
+  protected final String TEXT_161 = "())));";
+  protected final String TEXT_162 = ".createFromString(";
+  protected final String TEXT_163 = ", ";
+  protected final String TEXT_164 = " // TODO: ensure this is a valid literal value";
+  protected final String TEXT_165 = "));";
+  protected final String TEXT_166 = NL + "\t/**" + NL + "\t * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_167 = NL + "\tpublic String getCreateChildText(Object owner, Object feature, Object child, ";
+  protected final String TEXT_168 = " selection)" + NL + "\t{" + NL + "\t\tObject childFeature = feature;" + NL + "\t\tObject childObject = child;" + NL;
+  protected final String TEXT_169 = NL + "\t\tif (childFeature instanceof ";
+  protected final String TEXT_170 = " && ";
+  protected final String TEXT_171 = ".isFeatureMap((EStructuralFeature)childFeature))" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_172 = ".Entry entry = (FeatureMap.Entry)childObject;" + NL + "\t\t\tchildFeature = entry.getEStructuralFeature();" + NL + "\t\t\tchildObject = entry.getValue();" + NL + "\t\t}" + NL;
+  protected final String TEXT_173 = NL + "\t\tboolean qualify =";
+  protected final String TEXT_174 = NL + "\t\t\tchildFeature == ";
+  protected final String TEXT_175 = NL + NL + "\t\tif (qualify)" + NL + "\t\t{" + NL + "\t\t\treturn getString" + NL + "\t\t\t\t(\"_UI_CreateChild_text2\",";
+  protected final String TEXT_176 = NL + "\t\t\t\t new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });" + NL + "\t\t}" + NL + "\t\treturn super.getCreateChildText(owner, feature, child, selection);" + NL + "\t}" + NL;
+  protected final String TEXT_177 = NL + "\t/**" + NL + "\t * Return the resource locator for this item provider's resources." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_178 = " getResourceLocator()" + NL + "\t{";
+  protected final String TEXT_179 = ")adapterFactory).getResourceLocator();";
+  protected final String TEXT_180 = NL + "\t\treturn ";
+  protected final String TEXT_181 = ".INSTANCE;";
+  protected final String TEXT_182 = NL + "\t/**" + NL + "\t * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createAddCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection, int)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_183 = " createAddCommand(";
+  protected final String TEXT_184 = " domain, ";
+  protected final String TEXT_185 = " owner, ";
+  protected final String TEXT_186 = " feature, ";
+  protected final String TEXT_187 = " collection, int index) {";
+  protected final String TEXT_188 = NL + "\t\tif (feature == ";
+  protected final String TEXT_189 = ") {" + NL + "\t\t\treturn new ";
+  protected final String TEXT_190 = "(domain, owner, feature, ";
+  protected final String TEXT_191 = ", collection, index);" + NL + "\t\t}";
+  protected final String TEXT_192 = NL + "\t\treturn super.createAddCommand(domain, owner, feature, collection, index);" + NL + "\t}" + NL;
+  protected final String TEXT_193 = NL + "\t/**" + NL + "\t * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createRemoveCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_194 = " createRemoveCommand(";
+  protected final String TEXT_195 = " collection) {";
+  protected final String TEXT_196 = ", collection);" + NL + "\t\t}";
+  protected final String TEXT_197 = NL + "\t\treturn super.createRemoveCommand(domain, owner, feature, collection);" + NL + "\t}" + NL;
+  protected final String TEXT_198 = NL + "\t/**" + NL + "\t * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createReplaceCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.lang.Object, java.util.Collection)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_199 = " createReplaceCommand(";
+  protected final String TEXT_200 = " value, ";
+  protected final String TEXT_201 = ", value, collection);" + NL + "\t\t}";
+  protected final String TEXT_202 = NL + "\t\treturn super.createReplaceCommand(domain, owner, feature, value, collection);" + NL + "\t}" + NL;
+  protected final String TEXT_203 = NL + "\t/**" + NL + "\t * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createSetCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.lang.Object)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_204 = " createSetCommand(";
+  protected final String TEXT_205 = " feature, Object value) {";
+  protected final String TEXT_206 = ", value);" + NL + "\t\t}";
+  protected final String TEXT_207 = NL + "\t\treturn super.createSetCommand(domain, owner, feature, value);" + NL + "\t}" + NL;
+  protected final String TEXT_208 = NL + "}";
 
   public String generate(Object argument)
   {
     final StringBuffer stringBuffer = new StringBuffer();
     
 /**
- * Copyright (c) 2002-2007 IBM Corporation and others.
+ * Copyright (c) 2002-2019 IBM Corporation and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
@@ -237,10 +239,12 @@
  *
  * Contributors:
  *   IBM - Initial API and implementation
+ *   Alexander Fedorov <alexander.fedorov@arsysop.ru> - Bug 546714
  */
 
     GenClass genClass = (GenClass)argument; GenPackage genPackage = genClass.getGenPackage(); GenModel genModel=genPackage.getGenModel();
     final boolean isJDK50 = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50;
+    final boolean forceDefaultCase = genModel.isSwitchMissingDefaultCase();String indentDefaultCase = forceDefaultCase ? "\t\t" : "";
     stringBuffer.append(TEXT_1);
     stringBuffer.append(TEXT_2);
     {GenBase copyrightHolder = argument instanceof GenBase ? (GenBase)argument : argument instanceof Object[] && ((Object[])argument)[0] instanceof GenBase ? (GenBase)((Object[])argument)[0] : null;
@@ -385,6 +389,7 @@
     stringBuffer.append(TEXT_53);
     stringBuffer.append(org.eclipse.emf.codegen.ecore.genmodel.impl.Literals.toStringLiteral(genFeature.getPropertyEditorFactory().trim(), genModel));
     stringBuffer.append(TEXT_54);
+    stringBuffer.append(genModel.getNonNLS());
     } else {
     stringBuffer.append(TEXT_55);
     }
@@ -775,7 +780,7 @@
     stringBuffer.append(TEXT_24);
     }
     stringBuffer.append(TEXT_139);
-    if (!genClass.getLabelNotifyFeatures().isEmpty() || !genClass.getContentNotifyFeatures().isEmpty() || !genClass.getLabelAndContentNotifyFeatures().isEmpty()) {
+    boolean hasSwitch = !genClass.getLabelNotifyFeatures().isEmpty() || !genClass.getContentNotifyFeatures().isEmpty() || !genClass.getLabelAndContentNotifyFeatures().isEmpty(); if (hasSwitch) {
     stringBuffer.append(TEXT_140);
     stringBuffer.append(genClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_141);
@@ -809,117 +814,129 @@
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ViewerNotification"));
     stringBuffer.append(TEXT_147);
     }
+    if (forceDefaultCase) {
     stringBuffer.append(TEXT_148);
-    }
+    } else { // {
     stringBuffer.append(TEXT_149);
-    if (genModel.isCreationCommands()) {
+    } // }
+    }
+    stringBuffer.append(TEXT_21);
+    stringBuffer.append(hasSwitch ? indentDefaultCase : "");
     stringBuffer.append(TEXT_150);
+    if (hasSwitch && forceDefaultCase) { // {
+    stringBuffer.append(TEXT_21);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_151);
+    }
+    stringBuffer.append(TEXT_61);
+    if (genModel.isCreationCommands()) {
+    stringBuffer.append(TEXT_152);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_24);
     }
-    stringBuffer.append(TEXT_151);
+    stringBuffer.append(TEXT_153);
     stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<java.lang.Object>" : "java.util.Collection"));
-    stringBuffer.append(TEXT_152);
+    stringBuffer.append(TEXT_154);
     for (GenClass.ChildCreationData childCreationData : genClass.getChildCreationData()) { GenFeature createFeature = childCreationData.createFeature; GenFeature delegatedFeature = childCreationData.delegatedFeature; GenClassifier createClassifier = childCreationData.createClassifier;
     if (createFeature.isFeatureMapType()) {
     if (delegatedFeature.isReferenceType()) { GenClass createClass = (GenClass)createClassifier;
-    stringBuffer.append(TEXT_153);
+    stringBuffer.append(TEXT_155);
     stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_47);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
-    stringBuffer.append(TEXT_154);
+    stringBuffer.append(TEXT_156);
     stringBuffer.append(delegatedFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_16);
     if (createClass.isMapEntry()) { 
-    stringBuffer.append(TEXT_155);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_156);
-    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_157);
-    } else {
-    stringBuffer.append(TEXT_155);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
     stringBuffer.append(TEXT_158);
-    stringBuffer.append(createClass.getName());
+    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_159);
+    } else {
+    stringBuffer.append(TEXT_157);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_160);
+    stringBuffer.append(createClass.getName());
+    stringBuffer.append(TEXT_161);
     }
     //ItemProvider/newChildDescriptorsReferenceDelegatedFeature.override.javajetinc
     } else { GenDataType createDataType = (GenDataType)createClassifier;
-    stringBuffer.append(TEXT_153);
+    stringBuffer.append(TEXT_155);
     stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_47);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
-    stringBuffer.append(TEXT_154);
+    stringBuffer.append(TEXT_156);
     stringBuffer.append(delegatedFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_16);
     if (delegatedFeature.isEnumBasedType()) {
-    stringBuffer.append(TEXT_155);
+    stringBuffer.append(TEXT_157);
     stringBuffer.append(delegatedFeature.getTypeGenEnum().getStaticValue(delegatedFeature.getEcoreFeature().getDefaultValueLiteral()));
     stringBuffer.append(TEXT_54);
     } else if (delegatedFeature.isStringBasedType()) {
-    stringBuffer.append(TEXT_155);
+    stringBuffer.append(TEXT_157);
     stringBuffer.append(delegatedFeature.getCreateChildValueLiteral());
     stringBuffer.append(TEXT_54);
     stringBuffer.append(genModel.getNonNLS());
     } else { String literal = delegatedFeature.getCreateChildValueLiteral();
-    stringBuffer.append(TEXT_155);
-    stringBuffer.append(createDataType.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_160);
-    stringBuffer.append(createDataType.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_161);
-    stringBuffer.append(literal);
     stringBuffer.append(TEXT_157);
+    stringBuffer.append(createDataType.getGenPackage().getQualifiedEFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_162);
+    stringBuffer.append(createDataType.getQualifiedClassifierAccessor());
+    stringBuffer.append(TEXT_163);
+    stringBuffer.append(literal);
+    stringBuffer.append(TEXT_159);
     if (literal != null) {
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_162);
+    stringBuffer.append(TEXT_164);
     }
     }
     //ItemProvider/newChildDescriptorsAttributeDelegatedFeature.override.javajetinc
     }
     } else if (createFeature.isReferenceType()) { GenClass createClass = (GenClass)createClassifier;
-    stringBuffer.append(TEXT_153);
+    stringBuffer.append(TEXT_155);
     stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_16);
     if (createClass.isMapEntry()) { 
     stringBuffer.append(TEXT_46);
     stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_156);
+    stringBuffer.append(TEXT_158);
     stringBuffer.append(createClass.getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_54);
     } else {
     stringBuffer.append(TEXT_46);
     stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_158);
+    stringBuffer.append(TEXT_160);
     stringBuffer.append(createClass.getName());
     stringBuffer.append(TEXT_128);
     }
     //ItemProvider/newChildDescriptorsReferenceFeature.override.javajetinc 
     } else { GenDataType createDataType = (GenDataType)createClassifier;
-    stringBuffer.append(TEXT_153);
+    stringBuffer.append(TEXT_155);
     stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_16);
     if (createFeature.isEnumBasedType()) {
     stringBuffer.append(TEXT_46);
     stringBuffer.append(createFeature.getTypeGenEnum().getStaticValue(createFeature.getEcoreFeature().getDefaultValueLiteral()));
-    stringBuffer.append(TEXT_163);
+    stringBuffer.append(TEXT_165);
     } else if (createFeature.isStringBasedType()) {
     stringBuffer.append(TEXT_46);
     stringBuffer.append(createFeature.getCreateChildValueLiteral());
-    stringBuffer.append(TEXT_163);
+    stringBuffer.append(TEXT_165);
     stringBuffer.append(genModel.getNonNLS());
     } else { String literal = createFeature.getCreateChildValueLiteral();
     stringBuffer.append(TEXT_46);
     stringBuffer.append(createDataType.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_160);
+    stringBuffer.append(TEXT_162);
     stringBuffer.append(createDataType.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_161);
+    stringBuffer.append(TEXT_163);
     stringBuffer.append(literal);
     stringBuffer.append(TEXT_54);
     if (literal != null) {
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_162);
+    stringBuffer.append(TEXT_164);
     }
     }
     //ItemProvider/newChildDescriptorsAttributeFeature.override.javajetinc
@@ -927,169 +944,169 @@
     }
     stringBuffer.append(TEXT_61);
     if (!genClass.getSharedClassCreateChildFeatures().isEmpty()) {
-    stringBuffer.append(TEXT_164);
+    stringBuffer.append(TEXT_166);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_24);
     }
-    stringBuffer.append(TEXT_165);
-    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
-    stringBuffer.append(TEXT_166);
-    if (genClass.hasFeatureMapCreateChildFeatures()) {
     stringBuffer.append(TEXT_167);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
     stringBuffer.append(TEXT_168);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
+    if (genClass.hasFeatureMapCreateChildFeatures()) {
     stringBuffer.append(TEXT_169);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
     stringBuffer.append(TEXT_170);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
     stringBuffer.append(TEXT_171);
-    for (Iterator<GenFeature> i = genClass.getSharedClassCreateChildFeatures().iterator(); i.hasNext();) { GenFeature createFeature = i.next();
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_172);
+    }
+    stringBuffer.append(TEXT_173);
+    for (Iterator<GenFeature> i = genClass.getSharedClassCreateChildFeatures().iterator(); i.hasNext();) { GenFeature createFeature = i.next();
+    stringBuffer.append(TEXT_174);
     stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(i.hasNext() ? " ||" : ";");
     }
-    stringBuffer.append(TEXT_173);
+    stringBuffer.append(TEXT_175);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_176);
     }
     }
     if (genClass.getProviderExtendsGenClass() == null || genClass.getProviderExtendsGenClass().getGenPackage() != genPackage && (!genPackage.isExtensibleProviderFactory() || genClass.getProviderExtendsGenClass().getGenPackage().isExtensibleProviderFactory() != genPackage.isExtensibleProviderFactory())) {
-    stringBuffer.append(TEXT_175);
+    stringBuffer.append(TEXT_177);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_24);
     }
     stringBuffer.append(TEXT_25);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.ResourceLocator"));
-    stringBuffer.append(TEXT_176);
+    stringBuffer.append(TEXT_178);
     if (genPackage.isExtensibleProviderFactory()) {
     stringBuffer.append(TEXT_81);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.IChildCreationExtender"));
-    stringBuffer.append(TEXT_177);
-    } else {
-    stringBuffer.append(TEXT_178);
-    stringBuffer.append(genPackage.getImportedEditPluginClassName());
     stringBuffer.append(TEXT_179);
+    } else {
+    stringBuffer.append(TEXT_180);
+    stringBuffer.append(genPackage.getImportedEditPluginClassName());
+    stringBuffer.append(TEXT_181);
     }
     stringBuffer.append(TEXT_61);
     }
     if (!UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true).isEmpty()) {
-    stringBuffer.append(TEXT_180);
+    stringBuffer.append(TEXT_182);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_24);
     }
     stringBuffer.append(TEXT_68);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
-    stringBuffer.append(TEXT_181);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_182);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
     stringBuffer.append(TEXT_183);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
     stringBuffer.append(TEXT_184);
-    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
     stringBuffer.append(TEXT_185);
-    for (GenFeature subsetGenFeature : UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true)) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
     stringBuffer.append(TEXT_186);
-    stringBuffer.append(subsetGenFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
     stringBuffer.append(TEXT_187);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetAddCommand"));
+    for (GenFeature subsetGenFeature : UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true)) {
     stringBuffer.append(TEXT_188);
-    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, subsetGenFeature));
+    stringBuffer.append(subsetGenFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_189);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetAddCommand"));
     stringBuffer.append(TEXT_190);
+    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, subsetGenFeature));
+    stringBuffer.append(TEXT_191);
+    }
+    stringBuffer.append(TEXT_192);
     }
     if (!UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, true).isEmpty()) {
-    stringBuffer.append(TEXT_191);
+    stringBuffer.append(TEXT_193);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_24);
     }
     stringBuffer.append(TEXT_68);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
-    stringBuffer.append(TEXT_192);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_182);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
-    stringBuffer.append(TEXT_183);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_184);
-    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
-    stringBuffer.append(TEXT_193);
-    for (GenFeature supersetGenFeature : UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, true)) {
-    stringBuffer.append(TEXT_186);
-    stringBuffer.append(supersetGenFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_187);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SupersetRemoveCommand"));
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, supersetGenFeature));
     stringBuffer.append(TEXT_194);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
+    stringBuffer.append(TEXT_184);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_185);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_186);
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
     stringBuffer.append(TEXT_195);
+    for (GenFeature supersetGenFeature : UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, true)) {
+    stringBuffer.append(TEXT_188);
+    stringBuffer.append(supersetGenFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SupersetRemoveCommand"));
+    stringBuffer.append(TEXT_190);
+    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, supersetGenFeature));
+    stringBuffer.append(TEXT_196);
+    }
+    stringBuffer.append(TEXT_197);
     }
     if (!UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true).isEmpty() || !UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, true).isEmpty()) {
-    stringBuffer.append(TEXT_196);
+    stringBuffer.append(TEXT_198);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_24);
     }
     stringBuffer.append(TEXT_68);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_199);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_182);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
-    stringBuffer.append(TEXT_183);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
     stringBuffer.append(TEXT_184);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_185);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_186);
     stringBuffer.append(genModel.getImportedName("java.lang.Object"));
-    stringBuffer.append(TEXT_198);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
-    stringBuffer.append(TEXT_193);
+    stringBuffer.append(TEXT_195);
     { List<GenFeature> subsetSupersetGenFeatures = new UniqueEList.FastCompare<GenFeature>(); subsetSupersetGenFeatures.addAll(UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true)); subsetSupersetGenFeatures.addAll(UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, true));
     for (GenFeature genFeature : subsetSupersetGenFeatures) {
-    stringBuffer.append(TEXT_186);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_187);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand"));
     stringBuffer.append(TEXT_188);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand"));
+    stringBuffer.append(TEXT_190);
     stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, genFeature));
-    stringBuffer.append(TEXT_161);
+    stringBuffer.append(TEXT_163);
     stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, genFeature));
-    stringBuffer.append(TEXT_199);
+    stringBuffer.append(TEXT_201);
     }
     }
-    stringBuffer.append(TEXT_200);
+    stringBuffer.append(TEXT_202);
     }
     if (!UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass).isEmpty() || !UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass).isEmpty()) {
-    stringBuffer.append(TEXT_201);
+    stringBuffer.append(TEXT_203);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_24);
     }
     stringBuffer.append(TEXT_68);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
-    stringBuffer.append(TEXT_202);
+    stringBuffer.append(TEXT_204);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_182);
+    stringBuffer.append(TEXT_184);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
-    stringBuffer.append(TEXT_183);
+    stringBuffer.append(TEXT_185);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_203);
+    stringBuffer.append(TEXT_205);
     { List<GenFeature> subsetSupersetGenFeatures = new UniqueEList.FastCompare<GenFeature>(); subsetSupersetGenFeatures.addAll(UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass)); subsetSupersetGenFeatures.addAll(UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass));
     for (GenFeature genFeature : subsetSupersetGenFeatures) {
-    stringBuffer.append(TEXT_186);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_187);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetSupersetSetCommand"));
     stringBuffer.append(TEXT_188);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetSupersetSetCommand"));
+    stringBuffer.append(TEXT_190);
     stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, genFeature));
-    stringBuffer.append(TEXT_161);
+    stringBuffer.append(TEXT_163);
     stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, genFeature));
-    stringBuffer.append(TEXT_204);
-    }
-    }
-    stringBuffer.append(TEXT_205);
-    }
     stringBuffer.append(TEXT_206);
+    }
+    }
+    stringBuffer.append(TEXT_207);
+    }
+    stringBuffer.append(TEXT_208);
     genModel.emitSortedImports();
     stringBuffer.append(TEXT_21);
     return stringBuffer.toString();
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 a7bfdab..d62abf8 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
@@ -226,763 +226,758 @@
   protected final String TEXT_206 = NL + "\t * </ul>";
   protected final String TEXT_207 = NL + "\t * <p>" + NL + "\t * This feature redefines the following features:" + NL + "\t * </p>" + NL + "\t * <ul>";
   protected final String TEXT_208 = NL + "\t * This feature is a derived union.";
-  protected final String TEXT_209 = NL + "\t * <!-- begin-user-doc -->";
-  protected final String TEXT_210 = NL + "\t * <p>" + NL + "\t * If the meaning of the '<em>";
-  protected final String TEXT_211 = "</em>' ";
-  protected final String TEXT_212 = " isn't clear," + NL + "\t * there really should be more of a description here..." + NL + "\t * </p>";
-  protected final String TEXT_213 = NL + "\t * <!-- end-user-doc -->";
-  protected final String TEXT_214 = NL + "\t * <!-- begin-model-doc -->" + NL + "\t * ";
-  protected final String TEXT_215 = NL + "\t * <!-- end-model-doc -->";
-  protected final String TEXT_216 = NL + "\t * @return the value of the '<em>";
-  protected final String TEXT_217 = NL + "\t * @see ";
-  protected final String TEXT_218 = NL + "\t * @see #isSet";
-  protected final String TEXT_219 = NL + "\t * @see #unset";
-  protected final String TEXT_220 = NL + "\t * @see #set";
-  protected final String TEXT_221 = NL + "\t * @model ";
-  protected final String TEXT_222 = NL + "\t *        ";
-  protected final String TEXT_223 = NL + "\t * @model";
-  protected final String TEXT_224 = ")eDynamicGet(";
-  protected final String TEXT_225 = " - ESTATIC_FEATURE_COUNT";
-  protected final String TEXT_226 = ", true, ";
-  protected final String TEXT_227 = ").";
-  protected final String TEXT_228 = ")eGet(";
-  protected final String TEXT_229 = ", true)";
-  protected final String TEXT_230 = "__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false)";
-  protected final String TEXT_231 = NL + "\t\tif (eContainerFeatureID() != ";
-  protected final String TEXT_232 = ") return null;" + NL + "\t\treturn (";
-  protected final String TEXT_233 = "eContainer";
-  protected final String TEXT_234 = "eInternalContainer";
-  protected final String TEXT_235 = "();";
-  protected final String TEXT_236 = " != null && ";
-  protected final String TEXT_237 = ".eIsProxy())" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_238 = " old";
-  protected final String TEXT_239 = ";" + NL + "\t\t\t";
-  protected final String TEXT_240 = "eResolveProxy(old";
-  protected final String TEXT_241 = ");" + NL + "\t\t\tif (";
-  protected final String TEXT_242 = " != old";
-  protected final String TEXT_243 = ")" + NL + "\t\t\t{";
-  protected final String TEXT_244 = NL + "\t\t\t\t";
-  protected final String TEXT_245 = " msgs = old";
-  protected final String TEXT_246 = ".eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ";
-  protected final String TEXT_247 = ", null, null);";
-  protected final String TEXT_248 = " msgs =  old";
-  protected final String TEXT_249 = ".eInverseRemove(this, ";
-  protected final String TEXT_250 = ".class, null);";
-  protected final String TEXT_251 = NL + "\t\t\t\tif (new";
-  protected final String TEXT_252 = ".eInternalContainer() == null)" + NL + "\t\t\t\t{";
-  protected final String TEXT_253 = NL + "\t\t\t\t\tmsgs = new";
-  protected final String TEXT_254 = ".eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ";
-  protected final String TEXT_255 = ", null, msgs);";
-  protected final String TEXT_256 = NL + "\t\t\t\t\tmsgs =  new";
-  protected final String TEXT_257 = ".eInverseAdd(this, ";
-  protected final String TEXT_258 = ".class, msgs);";
-  protected final String TEXT_259 = NL + "\t\t\t\t}" + NL + "\t\t\t\tif (msgs != null) msgs.dispatch();";
-  protected final String TEXT_260 = NL + "\t\t\t\teVirtualSet(";
-  protected final String TEXT_261 = NL + "\t\t\t\tif (eNotificationRequired())" + NL + "\t\t\t\t\teNotify(new ";
-  protected final String TEXT_262 = "(this, ";
-  protected final String TEXT_263 = ".RESOLVE, ";
-  protected final String TEXT_264 = ", old";
-  protected final String TEXT_265 = "));";
-  protected final String TEXT_266 = NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_267 = NL + "\t\treturn (";
-  protected final String TEXT_268 = " & ";
-  protected final String TEXT_269 = "_EFLAG) != 0;";
-  protected final String TEXT_270 = "_EFLAG_VALUES[(";
-  protected final String TEXT_271 = "_EFLAG) >>> ";
-  protected final String TEXT_272 = "_EFLAG_OFFSET];";
-  protected final String TEXT_273 = " = basicGet";
-  protected final String TEXT_274 = "();" + NL + "\t\treturn ";
-  protected final String TEXT_275 = ".eIsProxy() ? ";
-  protected final String TEXT_276 = "eResolveProxy((";
-  protected final String TEXT_277 = ") : ";
-  protected final String TEXT_278 = NL + "\t\treturn new ";
-  protected final String TEXT_279 = "((";
-  protected final String TEXT_280 = ".Internal)((";
-  protected final String TEXT_281 = ".Internal.Wrapper)get";
-  protected final String TEXT_282 = "()).featureMap().";
-  protected final String TEXT_283 = "list(";
-  protected final String TEXT_284 = ")get";
-  protected final String TEXT_285 = "().";
-  protected final String TEXT_286 = NL + "\t\treturn ((";
-  protected final String TEXT_287 = "()).featureMap().list(";
-  protected final String TEXT_288 = NL + "\t\treturn get";
-  protected final String TEXT_289 = "().list(";
-  protected final String TEXT_290 = "()).featureMap().get(";
-  protected final String TEXT_291 = "get";
-  protected final String TEXT_292 = "().get(";
-  protected final String TEXT_293 = " cache = getCacheAdapter();" + NL + "\t\tif (cache != null)" + NL + "\t\t{";
-  protected final String TEXT_294 = NL + "\t\t\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_295 = " result = (";
-  protected final String TEXT_296 = ") cache.get(";
-  protected final String TEXT_297 = "eResource(), ";
-  protected final String TEXT_298 = "this, ";
-  protected final String TEXT_299 = ");" + NL + "\t\t\tif (result == null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcache.put(";
-  protected final String TEXT_300 = ", result = ";
-  protected final String TEXT_301 = "new ";
-  protected final String TEXT_302 = "(this)";
-  protected final String TEXT_303 = ");" + NL + "\t\t\t}" + NL + "\t\t\treturn result";
-  protected final String TEXT_304 = ";" + NL + "\t\t}";
-  protected final String TEXT_305 = "(this);";
-  protected final String TEXT_306 = " cache = getCacheAdapter();" + NL + "\t\tif (cache != null) {" + NL + "\t\t\t";
-  protected final String TEXT_307 = " eResource = eResource();";
-  protected final String TEXT_308 = ") cache.get(eResource, this, ";
-  protected final String TEXT_309 = " == null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcache.put(eResource, this, ";
-  protected final String TEXT_310 = ");" + NL + "\t\t\t}" + NL + "\t\t\treturn ";
-  protected final String TEXT_311 = " cache = getCacheAdapter();" + NL + "\t\tif (cache != null) {";
-  protected final String TEXT_312 = NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_313 = " method = getClass().getMethod(\"";
-  protected final String TEXT_314 = "\", null);";
-  protected final String TEXT_315 = NL + "\t\t\t\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_316 = ") cache.get(eResource(), this, method);" + NL + "\t\t\t\tif (";
-  protected final String TEXT_317 = " == null)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_318 = " union = ";
-  protected final String TEXT_319 = "Helper(new ";
-  protected final String TEXT_320 = ".FastCompare());" + NL + "\t\t\t\t\tcache.put(eResource(), this, method, ";
-  protected final String TEXT_321 = "null";
-  protected final String TEXT_322 = ", union.size(), union.toArray()));" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn ";
-  protected final String TEXT_323 = ";" + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
-  protected final String TEXT_324 = " nsme)" + NL + "\t\t\t{" + NL + "\t\t\t\t// ignore" + NL + "\t\t\t}";
-  protected final String TEXT_325 = ") cache.get(eResource(), this, ";
-  protected final String TEXT_326 = " == null)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_327 = ".FastCompare());" + NL + "\t\t\t\tcache.put(eResource(), this, ";
-  protected final String TEXT_328 = ", union.size(), union.toArray()));" + NL + "\t\t\t}" + NL + "\t\t\treturn ";
-  protected final String TEXT_329 = NL + "\t\t}";
-  protected final String TEXT_330 = ".FastCompare());" + NL + "\t\treturn new ";
-  protected final String TEXT_331 = ", union.size(), union.toArray());";
-  protected final String TEXT_332 = NL + "\t\tif (isSet";
-  protected final String TEXT_333 = "())" + NL + "\t\t{" + NL + "\t\t\treturn ";
-  protected final String TEXT_334 = "();" + NL + "\t\t}";
-  protected final String TEXT_335 = NL + "\t\tif (eIsSet(";
-  protected final String TEXT_336 = "))" + NL + "\t\t{" + NL + "\t\t\treturn ";
-  protected final String TEXT_337 = "();" + NL + "\t\tif (";
-  protected final String TEXT_338 = " != null)" + NL + "\t\t{" + NL + "\t\t\treturn ";
-  protected final String TEXT_339 = "super.";
-  protected final String TEXT_340 = NL + "\t\t// TODO: implement this method to return the '";
-  protected final String TEXT_341 = "' ";
-  protected final String TEXT_342 = NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_343 = " basicGet";
-  protected final String TEXT_344 = ", false, ";
-  protected final String TEXT_345 = "__ESETTING_DELEGATE.dynamicGet(this, null, 0, false, false)";
-  protected final String TEXT_346 = ")eInternalContainer();";
-  protected final String TEXT_347 = ")((";
-  protected final String TEXT_348 = ", false);";
-  protected final String TEXT_349 = "basicGet";
-  protected final String TEXT_350 = "();\t\t\t" + NL + "\t\tif (";
-  protected final String TEXT_351 = "super.basicGet";
-  protected final String TEXT_352 = NL + "\t\t// -> do not perform proxy resolution" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_353 = " msgs)" + NL + "\t{";
-  protected final String TEXT_354 = NL + "\t\tif (new";
-  protected final String TEXT_355 = " != null && !(new";
-  protected final String TEXT_356 = " instanceof ";
-  protected final String TEXT_357 = "))" + NL + "\t\t{" + NL + "\t\t\tthrow new IllegalArgumentException(\"new";
-  protected final String TEXT_358 = " must be an instance of ";
-  protected final String TEXT_359 = "\");";
-  protected final String TEXT_360 = NL + "\t\tmsgs = eBasicSetContainer((";
-  protected final String TEXT_361 = ")new";
-  protected final String TEXT_362 = ", msgs);";
-  protected final String TEXT_363 = ".Internal eInternalResource = eInternalResource();" + NL + "\t\tif (eInternalResource == null || !eInternalResource.isLoading()) {";
-  protected final String TEXT_364 = NL + "\t\t\tObject ";
-  protected final String TEXT_365 = " = eVirtualGet(";
-  protected final String TEXT_366 = NL + "\t\t\tif (";
-  protected final String TEXT_367 = " != new";
-  protected final String TEXT_368 = ")" + NL + "\t\t\t{" + NL + "\t\t\t\tset";
-  protected final String TEXT_369 = "(null);" + NL + "\t\t\t}";
-  protected final String TEXT_370 = NL + "\t\t\tif (new";
-  protected final String TEXT_371 = " != null)" + NL + "\t\t\t{";
-  protected final String TEXT_372 = "();" + NL + "\t\t\t\tif (!";
-  protected final String TEXT_373 = ".contains(new";
-  protected final String TEXT_374 = "))" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_375 = ".add(new";
-  protected final String TEXT_376 = ");" + NL + "\t\t\t\t}";
-  protected final String TEXT_377 = NL + "\t\t\t\tObject ";
-  protected final String TEXT_378 = " != ";
-  protected final String TEXT_379 = ")" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tset";
-  protected final String TEXT_380 = NL + "\t\t\t}";
-  protected final String TEXT_381 = NL + "\t\treturn msgs;";
-  protected final String TEXT_382 = NL + "\t\tmsgs = eDynamicInverseAdd((";
-  protected final String TEXT_383 = NL + "\t\tObject old";
-  protected final String TEXT_384 = " = eVirtualSet(";
-  protected final String TEXT_385 = ", new";
-  protected final String TEXT_386 = ";" + NL + "\t\t";
-  protected final String TEXT_387 = " = new";
-  protected final String TEXT_388 = NL + "\t\tboolean isSetChange = old";
-  protected final String TEXT_389 = " == EVIRTUAL_NO_VALUE;";
-  protected final String TEXT_390 = NL + "\t\tboolean old";
-  protected final String TEXT_391 = "ESet = (";
-  protected final String TEXT_392 = "_ESETFLAG) != 0;";
-  protected final String TEXT_393 = "_ESETFLAG;";
-  protected final String TEXT_394 = "ESet = ";
-  protected final String TEXT_395 = "ESet;";
-  protected final String TEXT_396 = "ESet = true;";
-  protected final String TEXT_397 = NL + "\t\tif (eNotificationRequired())" + NL + "\t\t{";
-  protected final String TEXT_398 = " notification = new ";
-  protected final String TEXT_399 = ".SET, ";
-  protected final String TEXT_400 = "isSetChange ? null : old";
-  protected final String TEXT_401 = "old";
-  protected final String TEXT_402 = "isSetChange";
-  protected final String TEXT_403 = "!old";
-  protected final String TEXT_404 = "ESet";
-  protected final String TEXT_405 = " == EVIRTUAL_NO_VALUE ? null : old";
-  protected final String TEXT_406 = NL + "\t\t\tif (msgs == null) msgs = notification; else msgs.add(notification);" + NL + "\t\t}";
-  protected final String TEXT_407 = "()).featureMap()).basicAdd(";
-  protected final String TEXT_408 = ".Internal)get";
-  protected final String TEXT_409 = "()).basicAdd(";
-  protected final String TEXT_410 = NL + "\t\t// TODO: implement this method to set the contained '";
-  protected final String TEXT_411 = NL + "\t\t// -> this method is automatically invoked to keep the containment relationship in synch" + NL + "\t\t// -> do not modify other features" + NL + "\t\t// -> return msgs, after adding any generated Notification to it (if it is null, a NotificationChain object must be created first)" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_412 = NL + "\t/**" + NL + "\t * Sets the value of the '{@link ";
-  protected final String TEXT_413 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @param value the new value of the '<em>";
-  protected final String TEXT_414 = NL + "\t * @see #";
-  protected final String TEXT_415 = " value);" + NL;
-  protected final String TEXT_416 = ")" + NL + "\t{";
-  protected final String TEXT_417 = NL + "\t\tnew";
-  protected final String TEXT_418 = " == null ? ";
-  protected final String TEXT_419 = " : new";
-  protected final String TEXT_420 = NL + "\t\teDynamicSet(";
-  protected final String TEXT_421 = "new";
-  protected final String TEXT_422 = NL + "\t\teSet(";
-  protected final String TEXT_423 = "__ESETTING_DELEGATE.dynamicSet(this, null, 0, ";
-  protected final String TEXT_424 = " != eInternalContainer() || (eContainerFeatureID() != ";
-  protected final String TEXT_425 = " && new";
-  protected final String TEXT_426 = " != null))" + NL + "\t\t{" + NL + "\t\t\tif (";
-  protected final String TEXT_427 = ".isAncestor(this, ";
-  protected final String TEXT_428 = "))" + NL + "\t\t\t\tthrow new ";
-  protected final String TEXT_429 = "(\"Recursive containment not allowed for \" + toString());";
-  protected final String TEXT_430 = " msgs = null;" + NL + "\t\t\tif (eInternalContainer() != null)" + NL + "\t\t\t\tmsgs = eBasicRemoveFromContainer(msgs);" + NL + "\t\t\tif (new";
-  protected final String TEXT_431 = " != null)" + NL + "\t\t\t\tmsgs = ((";
-  protected final String TEXT_432 = ").eInverseAdd(this, ";
-  protected final String TEXT_433 = ".class, msgs);" + NL + "\t\t\tmsgs = basicSet";
-  protected final String TEXT_434 = ", msgs);" + NL + "\t\t\tif (msgs != null) msgs.dispatch();" + NL + "\t\t}";
-  protected final String TEXT_435 = NL + "\t\telse if (eNotificationRequired())" + NL + "\t\t\teNotify(new ";
-  protected final String TEXT_436 = ")" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_437 = " msgs = null;" + NL + "\t\t\tif (";
-  protected final String TEXT_438 = " != null)";
-  protected final String TEXT_439 = NL + "\t\t\t\tmsgs = ((";
-  protected final String TEXT_440 = ").eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ";
-  protected final String TEXT_441 = ", null, msgs);" + NL + "\t\t\tif (new";
-  protected final String TEXT_442 = ").eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ";
-  protected final String TEXT_443 = ").eInverseRemove(this, ";
-  protected final String TEXT_444 = ".class, msgs);" + NL + "\t\t\tif (new";
-  protected final String TEXT_445 = NL + "\t\t\tmsgs = basicSet";
-  protected final String TEXT_446 = NL + "\t\telse" + NL + "\t\t{";
-  protected final String TEXT_447 = NL + "\t\t\tboolean old";
-  protected final String TEXT_448 = "ESet = eVirtualIsSet(";
-  protected final String TEXT_449 = NL + "\t\t\tif (eNotificationRequired())" + NL + "\t\t\t\teNotify(new ";
-  protected final String TEXT_450 = ", !old";
-  protected final String TEXT_451 = "ESet));";
-  protected final String TEXT_452 = ") ";
-  protected final String TEXT_453 = "_EFLAG; else ";
-  protected final String TEXT_454 = " &= ~";
-  protected final String TEXT_455 = "_EFLAG;";
-  protected final String TEXT_456 = " == null) new";
-  protected final String TEXT_457 = "_EDEFAULT;" + NL + "\t\t";
-  protected final String TEXT_458 = " & ~";
-  protected final String TEXT_459 = "_EFLAG | ";
-  protected final String TEXT_460 = ".VALUES.indexOf(new";
-  protected final String TEXT_461 = "_EFLAG_OFFSET;";
-  protected final String TEXT_462 = NL + "\t\tif (eNotificationRequired())" + NL + "\t\t\teNotify(new ";
-  protected final String TEXT_463 = "isSetChange ? ";
-  protected final String TEXT_464 = " : old";
-  protected final String TEXT_465 = " == EVIRTUAL_NO_VALUE ? ";
-  protected final String TEXT_466 = NL + "\t\t((";
-  protected final String TEXT_467 = "()).featureMap()).set(";
-  protected final String TEXT_468 = "()).set(";
-  protected final String TEXT_469 = NL + "\t\t// TODO: implement this method to set the '";
-  protected final String TEXT_470 = " basicUnset";
-  protected final String TEXT_471 = NL + "\t\treturn eDynamicInverseRemove((";
-  protected final String TEXT_472 = "(), ";
-  protected final String TEXT_473 = "Object old";
-  protected final String TEXT_474 = "eVirtualUnset(";
-  protected final String TEXT_475 = " = null;";
-  protected final String TEXT_476 = " != EVIRTUAL_NO_VALUE;";
-  protected final String TEXT_477 = "ESet = false;";
-  protected final String TEXT_478 = NL + "\t\tif (eNotificationRequired())" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_479 = ".UNSET, ";
-  protected final String TEXT_480 = "isSetChange ? old";
-  protected final String TEXT_481 = " : null";
-  protected final String TEXT_482 = ", null, ";
-  protected final String TEXT_483 = ");" + NL + "\t\t\tif (msgs == null) msgs = notification; else msgs.add(notification);" + NL + "\t\t}" + NL + "\t\treturn msgs;";
-  protected final String TEXT_484 = NL + "\t\t// TODO: implement this method to unset the contained '";
-  protected final String TEXT_485 = NL + "\t/**" + NL + "\t * Unsets the value of the '{@link ";
-  protected final String TEXT_486 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
-  protected final String TEXT_487 = NL + "\tvoid unset";
-  protected final String TEXT_488 = NL + "\tpublic void unset";
-  protected final String TEXT_489 = NL + "\t\teDynamicUnset(";
-  protected final String TEXT_490 = NL + "\t\teUnset(";
-  protected final String TEXT_491 = "__ESETTING_DELEGATE.dynamicUnset(this, null, 0);";
-  protected final String TEXT_492 = " != null) ((";
-  protected final String TEXT_493 = ".Unsettable";
-  protected final String TEXT_494 = ").unset();";
-  protected final String TEXT_495 = " != null)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_496 = " msgs = null;";
-  protected final String TEXT_497 = NL + "\t\t\tmsgs = ((";
-  protected final String TEXT_498 = NL + "\t\t\tmsgs = basicUnset";
-  protected final String TEXT_499 = "(msgs);" + NL + "\t\t\tif (msgs != null) msgs.dispatch();" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{";
-  protected final String TEXT_500 = ", null, null, old";
-  protected final String TEXT_501 = " = eVirtualUnset(";
-  protected final String TEXT_502 = "_EFLAG_DEFAULT;";
-  protected final String TEXT_503 = " : ";
-  protected final String TEXT_504 = "()).featureMap()).clear(";
-  protected final String TEXT_505 = "()).clear(";
-  protected final String TEXT_506 = NL + "\t\t// TODO: implement this method to unset the '";
-  protected final String TEXT_507 = NL + "\t/**" + NL + "\t * Returns whether the value of the '{@link ";
-  protected final String TEXT_508 = " is set.";
-  protected final String TEXT_509 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return whether the value of the '<em>";
-  protected final String TEXT_510 = NL + "\tboolean isSet";
-  protected final String TEXT_511 = NL + "\tpublic boolean isSet";
-  protected final String TEXT_512 = NL + "\t\treturn eDynamicIsSet(";
-  protected final String TEXT_513 = NL + "\t\treturn eIsSet(";
-  protected final String TEXT_514 = "__ESETTING_DELEGATE.dynamicIsSet(this, null, 0);";
-  protected final String TEXT_515 = " != null && ((";
-  protected final String TEXT_516 = ").isSet();";
-  protected final String TEXT_517 = NL + "\t\treturn eVirtualIsSet(";
-  protected final String TEXT_518 = NL + "\t\treturn !((";
-  protected final String TEXT_519 = "()).featureMap()).isEmpty(";
-  protected final String TEXT_520 = "()).isEmpty(";
-  protected final String TEXT_521 = NL + "\t\t// TODO: implement this method to return whether the '";
-  protected final String TEXT_522 = " is set" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_523 = NL + "\t/**" + NL + "\t * The array of subset feature identifiers for the '{@link #";
-  protected final String TEXT_524 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final int[] ";
-  protected final String TEXT_525 = "_ESUBSETS = ";
-  protected final String TEXT_526 = NL + "\t/**" + NL + "\t * The array of superset feature identifiers for the '{@link #";
-  protected final String TEXT_527 = "_ESUPERSETS = ";
-  protected final String TEXT_528 = NL + "\t/**";
-  protected final String TEXT_529 = NL + "\t * Creates a new {@link ";
-  protected final String TEXT_530 = "}, with the specified ";
-  protected final String TEXT_531 = ", and appends it to the '<em><b>";
-  protected final String TEXT_532 = ", and sets the '<em><b>";
-  protected final String TEXT_533 = "} and appends it to the '<em><b>";
-  protected final String TEXT_534 = "} and sets the '<em><b>";
-  protected final String TEXT_535 = NL + "\t * @param ";
-  protected final String TEXT_536 = " The ";
-  protected final String TEXT_537 = " for the new {@link ";
-  protected final String TEXT_538 = "}, or <code>null</code>.";
-  protected final String TEXT_539 = NL + "\t * @param eClass The Ecore class of the {@link ";
-  protected final String TEXT_540 = "} to create." + NL + "\t * @return The new {@link ";
-  protected final String TEXT_541 = "}." + NL + "\t * @see #";
-  protected final String TEXT_542 = "()" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_543 = " create";
-  protected final String TEXT_544 = " eClass);" + NL;
-  protected final String TEXT_545 = " eClass)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_546 = ") create(eClass);";
-  protected final String TEXT_547 = "().add(new";
-  protected final String TEXT_548 = NL + "\t\tset";
-  protected final String TEXT_549 = NL + "\t\tint ";
-  protected final String TEXT_550 = "ListSize = 0;";
-  protected final String TEXT_551 = "Size = ";
-  protected final String TEXT_552 = ".size();" + NL + "\t\tif (";
-  protected final String TEXT_553 = "Size > ";
-  protected final String TEXT_554 = "ListSize)" + NL + "\t\t\t";
-  protected final String TEXT_555 = "ListSize = ";
-  protected final String TEXT_556 = "Size;";
-  protected final String TEXT_557 = NL + "\t\tfor (int i = 0; i < ";
-  protected final String TEXT_558 = "ListSize; i++) {" + NL + "\t\t\tnew";
-  protected final String TEXT_559 = ".create";
-  protected final String TEXT_560 = "i < ";
-  protected final String TEXT_561 = "Size ? (";
-  protected final String TEXT_562 = ".get(i) : null";
-  protected final String TEXT_563 = ");" + NL + "\t\t}";
-  protected final String TEXT_564 = NL + "\t\t\tnew";
-  protected final String TEXT_565 = "().addAll(";
-  protected final String TEXT_566 = ".set";
-  protected final String TEXT_567 = NL + "\t\treturn new";
-  protected final String TEXT_568 = "},with the specified ";
-  protected final String TEXT_569 = NL + "\t * @return The new {@link ";
-  protected final String TEXT_570 = NL + "\t\treturn create";
-  protected final String TEXT_571 = ") create(";
-  protected final String TEXT_572 = NL + "\t/**" + NL + "\t * Retrieves the first {@link ";
-  protected final String TEXT_573 = "} with the specified ";
-  protected final String TEXT_574 = " from the '<em><b>";
-  protected final String TEXT_575 = " of the {@link ";
-  protected final String TEXT_576 = "} to retrieve, or <code>null</code>.";
-  protected final String TEXT_577 = NL + "\t * @return The first {@link ";
-  protected final String TEXT_578 = ", or <code>null</code>." + NL + "\t * @see #";
-  protected final String TEXT_579 = ")" + NL + "\t{" + NL + "\t\treturn get";
-  protected final String TEXT_580 = ", false";
-  protected final String TEXT_581 = ", null";
-  protected final String TEXT_582 = NL + "\t * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.";
-  protected final String TEXT_583 = NL + "\t * @param createOnDemand Whether to create a {@link ";
-  protected final String TEXT_584 = "} on demand if not found.";
-  protected final String TEXT_585 = ", boolean ignoreCase";
-  protected final String TEXT_586 = " eClass";
-  protected final String TEXT_587 = ", boolean createOnDemand";
-  protected final String TEXT_588 = "Loop: for (";
-  protected final String TEXT_589 = "())" + NL + "\t\t{";
-  protected final String TEXT_590 = " i = ";
-  protected final String TEXT_591 = "().iterator(); i.hasNext(); )" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_592 = ") i.next();";
-  protected final String TEXT_593 = NL + "\t\t\tif (eClass != null && !eClass.isInstance(";
-  protected final String TEXT_594 = "))" + NL + "\t\t\t\tcontinue ";
-  protected final String TEXT_595 = "Loop;";
-  protected final String TEXT_596 = "List = ";
-  protected final String TEXT_597 = "();" + NL + "\t\t\tint ";
-  protected final String TEXT_598 = "List.size();" + NL + "\t\t\tif (";
-  protected final String TEXT_599 = " || (";
-  protected final String TEXT_600 = ".size() != ";
-  protected final String TEXT_601 = "ListSize";
-  protected final String TEXT_602 = ")" + NL + "\t\t\t\tcontinue  ";
-  protected final String TEXT_603 = "Loop;" + NL + "\t\t\tfor (int j = 0; j < ";
-  protected final String TEXT_604 = "ListSize; j++)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_605 = "List.get(j);";
-  protected final String TEXT_606 = NL + "\t\t\t\tif (";
-  protected final String TEXT_607 = " != null && !(ignoreCase ? (";
-  protected final String TEXT_608 = ".get(j)).equalsIgnoreCase(";
-  protected final String TEXT_609 = "()) : ";
-  protected final String TEXT_610 = ".get(j).equals(";
-  protected final String TEXT_611 = "())))";
-  protected final String TEXT_612 = " != null && !";
-  protected final String TEXT_613 = "()))";
-  protected final String TEXT_614 = NL + "\t\t\t\t\tcontinue ";
-  protected final String TEXT_615 = "();" + NL + "\t\t\tif (";
-  protected final String TEXT_616 = " == null)" + NL + "\t\t\t\tcontinue ";
-  protected final String TEXT_617 = " != null && !(ignoreCase ? ";
-  protected final String TEXT_618 = ".equalsIgnoreCase(";
-  protected final String TEXT_619 = ".equals(";
-  protected final String TEXT_620 = NL + "\t\t\t\tcontinue ";
-  protected final String TEXT_621 = NL + "\t\t\treturn ";
-  protected final String TEXT_622 = NL + "\t\treturn createOnDemand";
-  protected final String TEXT_623 = " && eClass != null";
-  protected final String TEXT_624 = " ? create";
-  protected final String TEXT_625 = ", eClass";
-  protected final String TEXT_626 = ") : null;";
-  protected final String TEXT_627 = NL + "\t\treturn null;";
-  protected final String TEXT_628 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean isSet";
-  protected final String TEXT_629 = NL + "  \t\treturn false;";
-  protected final String TEXT_630 = ".Internal.Wrapper)";
-  protected final String TEXT_631 = "()).featureMap().isEmpty();";
-  protected final String TEXT_632 = ".featureMap().isEmpty();";
-  protected final String TEXT_633 = ".isEmpty();";
-  protected final String TEXT_634 = ");" + NL + "\t\treturn ";
-  protected final String TEXT_635 = NL + "\t\treturn !";
-  protected final String TEXT_636 = "().isEmpty();";
-  protected final String TEXT_637 = " != null;";
-  protected final String TEXT_638 = NL + "\t\treturn eVirtualGet(";
-  protected final String TEXT_639 = ") != null;";
-  protected final String TEXT_640 = NL + "\t\treturn basicGet";
-  protected final String TEXT_641 = "() != null;";
-  protected final String TEXT_642 = NL + "\t\t\t\treturn ((";
-  protected final String TEXT_643 = "_EFLAG) != 0) != ";
-  protected final String TEXT_644 = NL + "\t\t\t\treturn (";
-  protected final String TEXT_645 = "_EFLAG) != ";
-  protected final String TEXT_646 = ") != ";
-  protected final String TEXT_647 = "() != ";
-  protected final String TEXT_648 = " != null : !";
-  protected final String TEXT_649 = "() != null : !";
-  protected final String TEXT_650 = "());";
-  protected final String TEXT_651 = NL + "\t/**" + NL + "\t * The cached OCL expression body for the '{@link #";
-  protected final String TEXT_652 = ") <em>";
-  protected final String TEXT_653 = "</em>}' operation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
-  protected final String TEXT_654 = ")" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final ";
-  protected final String TEXT_655 = "__EOCL_EXP = \"";
-  protected final String TEXT_656 = NL + "\t/**" + NL + "\t * The cached OCL invariant for the '{@link #";
-  protected final String TEXT_657 = "</em>}' invariant operation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
-  protected final String TEXT_658 = ")" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static ";
-  protected final String TEXT_659 = "__EOCL_INV;" + NL;
-  protected final String TEXT_660 = NL + "\t/**" + NL + "\t * The cached OCL query for the '{@link #";
-  protected final String TEXT_661 = "</em>}' query operation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
-  protected final String TEXT_662 = "<";
-  protected final String TEXT_663 = ">";
-  protected final String TEXT_664 = "__EOCL_QRY;" + NL;
-  protected final String TEXT_665 = NL + "\t/**" + NL + "\t * The cached validation expression for the '{@link #";
-  protected final String TEXT_666 = "__EEXPRESSION = \"";
-  protected final String TEXT_667 = NL + "\t/**" + NL + "\t * The cached invocation delegate for the '{@link #";
-  protected final String TEXT_668 = ".Internal.InvocationDelegate ";
-  protected final String TEXT_669 = "__EINVOCATION_DELEGATE = ((";
-  protected final String TEXT_670 = ").getInvocationDelegate();" + NL;
-  protected final String TEXT_671 = NL + "\t * <p>" + NL + "\t * This operation redefines the following operations:" + NL + "\t * <ul>";
-  protected final String TEXT_672 = "</em>}' </li>";
-  protected final String TEXT_673 = NL + "\t * </ul>" + NL + "\t * </p>";
-  protected final String TEXT_674 = NL + "\t * <!-- begin-model-doc -->";
-  protected final String TEXT_675 = NL + "\t *   ";
-  protected final String TEXT_676 = NL + "\t{";
-  protected final String TEXT_677 = NL + "\t\treturn" + NL + "\t\t\t";
-  protected final String TEXT_678 = ".validate" + NL + "\t\t\t\t(";
-  protected final String TEXT_679 = "," + NL + "\t\t\t\t this," + NL + "\t\t\t\t ";
-  protected final String TEXT_680 = "," + NL + "\t\t\t\t ";
-  protected final String TEXT_681 = "," + NL + "\t\t\t\t \"";
-  protected final String TEXT_682 = "\",";
-  protected final String TEXT_683 = NL + "\t\t\t\t ";
-  protected final String TEXT_684 = "__EEXPRESSION," + NL + "\t\t\t\t ";
-  protected final String TEXT_685 = ".ERROR," + NL + "\t\t\t\t ";
-  protected final String TEXT_686 = ".DIAGNOSTIC_SOURCE," + NL + "\t\t\t\t ";
-  protected final String TEXT_687 = " == null)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_688 = ".Helper helper = EOCL_ENV.createOCLHelper();" + NL + "\t\t\thelper.setContext(";
-  protected final String TEXT_689 = ");" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_690 = " = helper.createInvariant(";
-  protected final String TEXT_691 = "__EOCL_EXP);" + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
-  protected final String TEXT_692 = " pe)" + NL + "\t\t\t{" + NL + "\t\t\t\tthrow new UnsupportedOperationException(pe.getLocalizedMessage());" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tif (!EOCL_ENV.createQuery(";
-  protected final String TEXT_693 = ").check(this))";
-  protected final String TEXT_694 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// -> specify the condition that violates the invariant" + NL + "\t\t// -> verify the details of the diagnostic, including severity and message" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tif (false)";
-  protected final String TEXT_695 = NL + "\t\t{" + NL + "\t\t\tif (";
-  protected final String TEXT_696 = ".add" + NL + "\t\t\t\t\t(new ";
-  protected final String TEXT_697 = NL + "\t\t\t\t\t\t(";
-  protected final String TEXT_698 = ".ERROR," + NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_699 = ".DIAGNOSTIC_SOURCE," + NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_700 = "," + NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_701 = ".INSTANCE.getString(\"_UI_GenericInvariant_diagnostic\", new Object[] { \"";
-  protected final String TEXT_702 = "\", ";
-  protected final String TEXT_703 = ".getObjectLabel(this, ";
-  protected final String TEXT_704 = ") }),";
-  protected final String TEXT_705 = NL + "\t\t\t\t\t\t new Object [] { this }));";
-  protected final String TEXT_706 = NL + "\t\t\t}" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\treturn true;";
-  protected final String TEXT_707 = NL + "\t\ttry" + NL + "\t\t{";
-  protected final String TEXT_708 = "__EINVOCATION_DELEGATE.dynamicInvoke(this, ";
-  protected final String TEXT_709 = ".UnmodifiableEList<Object>(";
-  protected final String TEXT_710 = NL + "\t\t}" + NL + "\t\tcatch (";
-  protected final String TEXT_711 = " ite)" + NL + "\t\t{" + NL + "\t\t\tthrow new ";
-  protected final String TEXT_712 = "(ite);" + NL + "\t\t}";
-  protected final String TEXT_713 = "(this";
-  protected final String TEXT_714 = ".Helper helper = EOCL_ENV.createOCLHelper();" + NL + "\t\t\thelper.setOperationContext(";
-  protected final String TEXT_715 = ".getEAllOperations().get(";
-  protected final String TEXT_716 = "));" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_717 = " = helper.createQuery(";
-  protected final String TEXT_718 = " pe)" + NL + "\t\t\t{" + NL + "\t\t\t\tthrow new UnsupportedOperationException(pe.getLocalizedMessage());" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\t";
-  protected final String TEXT_719 = ".Query query = EOCL_ENV.createQuery(";
-  protected final String TEXT_720 = "<?, ?, ?, ?, ?>";
-  protected final String TEXT_721 = " environment = query.getEvaluationEnvironment();";
-  protected final String TEXT_722 = NL + "\t\tenvironment.add(\"";
-  protected final String TEXT_723 = NL + "\t\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_724 = "> result = (";
-  protected final String TEXT_725 = ">) query.evaluate(this);" + NL + "\t\treturn new ";
-  protected final String TEXT_726 = ".UnmodifiableEList<";
-  protected final String TEXT_727 = ">(result.size(), result.toArray());";
-  protected final String TEXT_728 = ") query.evaluate(this)).";
-  protected final String TEXT_729 = ") query.evaluate(this);";
-  protected final String TEXT_730 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_731 = " eInverseAdd(";
-  protected final String TEXT_732 = " otherEnd, int featureID, ";
-  protected final String TEXT_733 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (featureID";
-  protected final String TEXT_734 = ")" + NL + "\t\t{";
-  protected final String TEXT_735 = NL + "\t\t\tcase ";
-  protected final String TEXT_736 = ":";
-  protected final String TEXT_737 = ".InternalMapView";
-  protected final String TEXT_738 = "()).eMap()).basicAdd(otherEnd, msgs);";
-  protected final String TEXT_739 = "()).basicAdd(otherEnd, msgs);";
-  protected final String TEXT_740 = NL + "\t\t\t\tif (eInternalContainer() != null)" + NL + "\t\t\t\t\tmsgs = eBasicRemoveFromContainer(msgs);";
-  protected final String TEXT_741 = NL + "\t\t\t\treturn basicSet";
-  protected final String TEXT_742 = ")otherEnd, msgs);";
-  protected final String TEXT_743 = NL + "\t\t\t\treturn eBasicSetContainer(otherEnd, ";
-  protected final String TEXT_744 = NL + "\t\t\t\t\tmsgs = ((";
-  protected final String TEXT_745 = NL + "\t\treturn super.eInverseAdd(otherEnd, featureID, msgs);";
-  protected final String TEXT_746 = NL + "\t\treturn eDynamicInverseAdd(otherEnd, featureID, msgs);";
-  protected final String TEXT_747 = " eInverseRemove(";
-  protected final String TEXT_748 = "()).eMap()).basicRemove(otherEnd, msgs);";
-  protected final String TEXT_749 = "()).featureMap()).basicRemove(otherEnd, msgs);";
-  protected final String TEXT_750 = "()).basicRemove(otherEnd, msgs);";
-  protected final String TEXT_751 = NL + "\t\t\t\treturn eBasicSetContainer(null, ";
-  protected final String TEXT_752 = NL + "\t\t\t\treturn basicUnset";
-  protected final String TEXT_753 = "(msgs);";
-  protected final String TEXT_754 = "(null, msgs);";
-  protected final String TEXT_755 = NL + "\t\treturn super.eInverseRemove(otherEnd, featureID, msgs);";
-  protected final String TEXT_756 = NL + "\t\treturn eDynamicInverseRemove(otherEnd, featureID, msgs);";
-  protected final String TEXT_757 = " eBasicRemoveFromContainerFeature(";
-  protected final String TEXT_758 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (eContainerFeatureID()";
-  protected final String TEXT_759 = ":" + NL + "\t\t\t\treturn eInternalContainer().eInverseRemove(this, ";
-  protected final String TEXT_760 = NL + "\t\treturn super.eBasicRemoveFromContainerFeature(msgs);";
-  protected final String TEXT_761 = NL + "\t\treturn eDynamicBasicRemoveFromContainer(msgs);";
-  protected final String TEXT_762 = NL + "\tpublic Object eGet(int featureID, boolean resolve, boolean coreType)" + NL + "\t{" + NL + "\t\tswitch (featureID";
-  protected final String TEXT_763 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_764 = "() ? Boolean.TRUE : Boolean.FALSE;";
-  protected final String TEXT_765 = NL + "\t\t\t\treturn new ";
-  protected final String TEXT_766 = NL + "\t\t\t\tif (resolve) return ";
-  protected final String TEXT_767 = "();" + NL + "\t\t\t\treturn basicGet";
-  protected final String TEXT_768 = NL + "\t\t\t\tif (coreType) return ((";
-  protected final String TEXT_769 = "()).eMap();" + NL + "\t\t\t\telse return ";
-  protected final String TEXT_770 = NL + "\t\t\t\tif (coreType) return ";
-  protected final String TEXT_771 = "();" + NL + "\t\t\t\telse return ";
-  protected final String TEXT_772 = "().map();";
-  protected final String TEXT_773 = "()).featureMap();" + NL + "\t\t\t\treturn ";
-  protected final String TEXT_774 = "();" + NL + "\t\t\t\treturn ((";
-  protected final String TEXT_775 = "()).getWrapper();";
-  protected final String TEXT_776 = NL + "\t\treturn super.eGet(featureID, resolve, coreType);";
-  protected final String TEXT_777 = NL + "\t\treturn eDynamicGet(featureID, resolve, coreType);";
-  protected final String TEXT_778 = NL + "\tpublic void eSet(int featureID, Object newValue)" + NL + "\t{" + NL + "\t\tswitch (featureID";
-  protected final String TEXT_779 = NL + "\t\t\t\t((";
-  protected final String TEXT_780 = "()).featureMap()).set(newValue);";
-  protected final String TEXT_781 = "()).set(newValue);";
-  protected final String TEXT_782 = ".Setting)((";
-  protected final String TEXT_783 = "()).eMap()).set(newValue);";
-  protected final String TEXT_784 = ".Setting)";
-  protected final String TEXT_785 = "().clear();" + NL + "\t\t\t\t";
-  protected final String TEXT_786 = "().addAll((";
-  protected final String TEXT_787 = "<? extends ";
-  protected final String TEXT_788 = ")newValue);";
-  protected final String TEXT_789 = NL + "\t\t\t\tset";
-  protected final String TEXT_790 = "(((";
-  protected final String TEXT_791 = ")newValue).";
-  protected final String TEXT_792 = "newValue);";
-  protected final String TEXT_793 = NL + "\t\t\t\treturn;";
-  protected final String TEXT_794 = NL + "\t\tsuper.eSet(featureID, newValue);";
-  protected final String TEXT_795 = NL + "\t\teDynamicSet(featureID, newValue);";
-  protected final String TEXT_796 = NL + "\tpublic void eUnset(int featureID)" + NL + "\t{" + NL + "\t\tswitch (featureID";
-  protected final String TEXT_797 = "()).featureMap().clear();";
-  protected final String TEXT_798 = "().clear();";
-  protected final String TEXT_799 = NL + "\t\t\t\tunset";
-  protected final String TEXT_800 = ")null);";
-  protected final String TEXT_801 = NL + "\t\tsuper.eUnset(featureID);";
-  protected final String TEXT_802 = NL + "\t\teDynamicUnset(featureID);";
-  protected final String TEXT_803 = "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_804 = NL + "\tpublic boolean eIsSet(int featureID)" + NL + "\t{" + NL + "\t\tswitch (featureID)" + NL + "\t\t{";
-  protected final String TEXT_805 = NL + "\t\t\t\treturn isSet";
-  protected final String TEXT_806 = NL + "\t\t\t\treturn !((";
-  protected final String TEXT_807 = ");" + NL + "\t\t\t\treturn ";
-  protected final String TEXT_808 = NL + "\t\t\t\treturn !";
-  protected final String TEXT_809 = NL + "\t\t\t\treturn eVirtualGet(";
-  protected final String TEXT_810 = NL + "\t\t\t\treturn basicGet";
-  protected final String TEXT_811 = NL + "\t\treturn super.eIsSet(featureID);";
-  protected final String TEXT_812 = NL + "\t\treturn eDynamicIsSet(featureID);";
-  protected final String TEXT_813 = NL + "\tpublic int eBaseStructuralFeatureID(int derivedFeatureID, Class";
-  protected final String TEXT_814 = " baseClass)" + NL + "\t{";
-  protected final String TEXT_815 = NL + "\t\tif (baseClass == ";
-  protected final String TEXT_816 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (derivedFeatureID";
-  protected final String TEXT_817 = NL + "\t\t\t\tcase ";
-  protected final String TEXT_818 = ": return ";
-  protected final String TEXT_819 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_820 = NL + "\t\treturn super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);" + NL + "\t}";
-  protected final String TEXT_821 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_822 = NL + "\tpublic int eDerivedStructuralFeatureID(int baseFeatureID, Class";
-  protected final String TEXT_823 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseFeatureID)" + NL + "\t\t\t{";
-  protected final String TEXT_824 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseFeatureID";
-  protected final String TEXT_825 = NL + "\t\treturn super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);" + NL + "\t}" + NL;
-  protected final String TEXT_826 = NL + "\tpublic int eDerivedOperationID(int baseOperationID, Class";
-  protected final String TEXT_827 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID)" + NL + "\t\t\t{";
-  protected final String TEXT_828 = NL + "\t\t\t\tdefault: return super.eDerivedOperationID(baseOperationID, baseClass);" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_829 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID";
-  protected final String TEXT_830 = NL + "\t\treturn super.eDerivedOperationID(baseOperationID, baseClass);" + NL + "\t}" + NL;
-  protected final String TEXT_831 = NL + "\tprotected Object[] eVirtualValues()" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_832 = ";" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_833 = NL + "\tprotected void eSetVirtualValues(Object[] newValues)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_834 = " = newValues;" + NL + "\t}" + NL;
-  protected final String TEXT_835 = NL + "\tprotected int eVirtualIndexBits(int offset)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
-  protected final String TEXT_836 = " :" + NL + "\t\t\t\treturn ";
-  protected final String TEXT_837 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_838 = NL + "\tprotected void eSetVirtualIndexBits(int offset, int newIndexBits)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
-  protected final String TEXT_839 = " :" + NL + "\t\t\t\t";
-  protected final String TEXT_840 = " = newIndexBits;" + NL + "\t\t\t\tbreak;";
-  protected final String TEXT_841 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_842 = NL + "\t@SuppressWarnings(";
-  protected final String TEXT_843 = "\"unchecked\"";
-  protected final String TEXT_844 = "{\"rawtypes\", \"unchecked\" }";
-  protected final String TEXT_845 = NL + "\tpublic Object eInvoke(int operationID, ";
-  protected final String TEXT_846 = " arguments) throws ";
-  protected final String TEXT_847 = NL + "\t{" + NL + "\t\tswitch (operationID";
-  protected final String TEXT_848 = NL + "\t\t\t\ttry" + NL + "\t\t\t\t{";
-  protected final String TEXT_849 = "arguments.get(";
-  protected final String TEXT_850 = ");" + NL + "\t\t\t\t";
-  protected final String TEXT_851 = "return null;";
-  protected final String TEXT_852 = "return ";
-  protected final String TEXT_853 = NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (";
-  protected final String TEXT_854 = " throwable)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tthrow new ";
-  protected final String TEXT_855 = "(throwable);" + NL + "\t\t\t\t}";
-  protected final String TEXT_856 = NL + "\t\treturn super.eInvoke(operationID, arguments);";
-  protected final String TEXT_857 = NL + "\t\treturn eDynamicInvoke(operationID, arguments);";
-  protected final String TEXT_858 = NL + "\tpublic String toString()" + NL + "\t{" + NL + "\t\tif (eIsProxy()) return super.toString();" + NL + "" + NL + "\t\t";
-  protected final String TEXT_859 = " result = new ";
-  protected final String TEXT_860 = "(super.toString());";
-  protected final String TEXT_861 = NL + "\t\tresult.append(\" (";
-  protected final String TEXT_862 = ": \");";
-  protected final String TEXT_863 = NL + "\t\tresult.append(\", ";
-  protected final String TEXT_864 = NL + "\t\tif (eVirtualIsSet(";
-  protected final String TEXT_865 = ")) result.append(eVirtualGet(";
-  protected final String TEXT_866 = ")); else result.append(\"<unset>\");";
-  protected final String TEXT_867 = "_ESETFLAG) != 0";
-  protected final String TEXT_868 = ") result.append((";
-  protected final String TEXT_869 = "_EFLAG) != 0); else result.append(\"<unset>\");";
-  protected final String TEXT_870 = ") result.append(";
-  protected final String TEXT_871 = "_EFLAG_OFFSET]); else result.append(\"<unset>\");";
-  protected final String TEXT_872 = "); else result.append(\"<unset>\");";
-  protected final String TEXT_873 = NL + "\t\tresult.append(eVirtualGet(";
-  protected final String TEXT_874 = NL + "\t\tresult.append((";
-  protected final String TEXT_875 = "_EFLAG) != 0);";
-  protected final String TEXT_876 = NL + "\t\tresult.append(";
-  protected final String TEXT_877 = "_EFLAG_OFFSET]);";
-  protected final String TEXT_878 = NL + "\t\tresult.append(')');" + NL + "\t\treturn result.toString();" + NL + "\t}" + NL;
-  protected final String TEXT_879 = NL + "\tprotected int hash = -1;" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getHash()" + NL + "\t{" + NL + "\t\tif (hash == -1)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_880 = " theKey = getKey();" + NL + "\t\t\thash = (theKey == null ? 0 : theKey.hashCode());" + NL + "\t\t}" + NL + "\t\treturn hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setHash(int hash)" + NL + "\t{" + NL + "\t\tthis.hash = hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_881 = " getKey()" + NL + "\t{";
-  protected final String TEXT_882 = "(getTypedKey());";
-  protected final String TEXT_883 = NL + "\t\treturn getTypedKey();";
-  protected final String TEXT_884 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setKey(";
-  protected final String TEXT_885 = " key)" + NL + "\t{";
-  protected final String TEXT_886 = NL + "\t\tgetTypedKey().addAll(";
-  protected final String TEXT_887 = "key);";
-  protected final String TEXT_888 = NL + "\t\tsetTypedKey(key);";
-  protected final String TEXT_889 = NL + "\t\tsetTypedKey(((";
-  protected final String TEXT_890 = ")key).";
-  protected final String TEXT_891 = NL + "\t\tsetTypedKey((";
-  protected final String TEXT_892 = ")key);";
-  protected final String TEXT_893 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_894 = " getValue()" + NL + "\t{";
-  protected final String TEXT_895 = "(getTypedValue());";
-  protected final String TEXT_896 = NL + "\t\treturn getTypedValue();";
-  protected final String TEXT_897 = " setValue(";
-  protected final String TEXT_898 = " value)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_899 = " oldValue = getValue();";
-  protected final String TEXT_900 = NL + "\t\tgetTypedValue().clear();" + NL + "\t\tgetTypedValue().addAll(";
-  protected final String TEXT_901 = "value);";
-  protected final String TEXT_902 = NL + "\t\tsetTypedValue(value);";
-  protected final String TEXT_903 = NL + "\t\tsetTypedValue(((";
-  protected final String TEXT_904 = ")value).";
-  protected final String TEXT_905 = NL + "\t\tsetTypedValue((";
-  protected final String TEXT_906 = ")value);";
-  protected final String TEXT_907 = NL + "\t\treturn oldValue;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_908 = " getEMap()" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_909 = " container = eContainer();" + NL + "\t\treturn container == null ? null : (";
-  protected final String TEXT_910 = ")container.eGet(eContainmentFeature());" + NL + "\t}" + NL;
-  protected final String TEXT_911 = NL + "\t/**" + NL + "\t * The cached environment for evaluating OCL expressions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final ";
-  protected final String TEXT_912 = " EOCL_ENV = ";
-  protected final String TEXT_913 = ".newInstance();" + NL;
-  protected final String TEXT_914 = NL + "\t/**" + NL + "\t * Creates a new instance of the specified Ecore class." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @param eClass The Ecore class of the instance to create." + NL + "\t * @return The new instance." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_915 = " create(";
-  protected final String TEXT_916 = " eClass)" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_917 = ".create(eClass);" + NL + "\t}" + NL;
-  protected final String TEXT_918 = NL + "\t/**" + NL + "\t * Retrieves the cache adapter for this '<em><b>";
-  protected final String TEXT_919 = "</b></em>'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return The cache adapter for this '<em><b>";
-  protected final String TEXT_920 = "</b></em>'." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_921 = " getCacheAdapter()" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_922 = ".getInstance();" + NL + "\t}" + NL;
-  protected final String TEXT_923 = "Helper(";
-  protected final String TEXT_924 = ".addAll(super.";
-  protected final String TEXT_925 = NL + "\t\tsuper.";
-  protected final String TEXT_926 = "())" + NL + "\t\t{" + NL + "\t\t\tfor (";
-  protected final String TEXT_927 = " i = ((";
-  protected final String TEXT_928 = "()).basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_929 = ".add(i.next());" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_930 = "))" + NL + "\t\t{" + NL + "\t\t\tfor (";
-  protected final String TEXT_931 = "();" + NL + "\t\tif (!";
-  protected final String TEXT_932 = ".isEmpty())" + NL + "\t\t{" + NL + "\t\t\tfor (";
-  protected final String TEXT_933 = ").basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_934 = "())" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_935 = ".addAll(";
-  protected final String TEXT_936 = "());" + NL + "\t\t}";
-  protected final String TEXT_937 = "))" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_938 = ".isEmpty())" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_939 = ".add(";
-  protected final String TEXT_940 = NL + "\t\treturn super.isSet";
-  protected final String TEXT_941 = NL + "\t\treturn isSet";
-  protected final String TEXT_942 = "().isEmpty()";
-  protected final String TEXT_943 = "() != null";
-  protected final String TEXT_944 = NL + "\t\t\t|| isSet";
-  protected final String TEXT_945 = NL + "\t\t\t|| !";
-  protected final String TEXT_946 = NL + "\t\t\t|| ";
-  protected final String TEXT_947 = NL + "\t\t\t|| eIsSet(";
-  protected final String TEXT_948 = NL + "\t\treturn false;";
-  protected final String TEXT_949 = NL + "\t\t@SuppressWarnings(\"unchecked\")" + NL + "\t\t";
-  protected final String TEXT_950 = "());" + NL + "\t\treturn ";
-  protected final String TEXT_951 = "();" + NL + "\t\t";
-  protected final String TEXT_952 = ");" + NL + "\t\t}" + NL + "\t\treturn new ";
-  protected final String TEXT_953 = ".size(), ";
-  protected final String TEXT_954 = ".toArray());";
-  protected final String TEXT_955 = NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_956 = NL + "\t\treturn basicSet";
-  protected final String TEXT_957 = ");" + NL + "\t\treturn msgs;";
-  protected final String TEXT_958 = NL + "} //";
+  protected final String TEXT_209 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
+  protected final String TEXT_210 = NL + "\t * <!-- begin-model-doc -->" + NL + "\t * ";
+  protected final String TEXT_211 = NL + "\t * <!-- end-model-doc -->";
+  protected final String TEXT_212 = NL + "\t * @return the value of the '<em>";
+  protected final String TEXT_213 = "</em>' ";
+  protected final String TEXT_214 = NL + "\t * @see ";
+  protected final String TEXT_215 = NL + "\t * @see #isSet";
+  protected final String TEXT_216 = NL + "\t * @see #unset";
+  protected final String TEXT_217 = NL + "\t * @see #set";
+  protected final String TEXT_218 = NL + "\t * @model ";
+  protected final String TEXT_219 = NL + "\t *        ";
+  protected final String TEXT_220 = NL + "\t * @model";
+  protected final String TEXT_221 = ")eDynamicGet(";
+  protected final String TEXT_222 = " - ESTATIC_FEATURE_COUNT";
+  protected final String TEXT_223 = ", true, ";
+  protected final String TEXT_224 = ").";
+  protected final String TEXT_225 = ")eGet(";
+  protected final String TEXT_226 = ", true)";
+  protected final String TEXT_227 = "__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false)";
+  protected final String TEXT_228 = NL + "\t\tif (eContainerFeatureID() != ";
+  protected final String TEXT_229 = ") return null;" + NL + "\t\treturn (";
+  protected final String TEXT_230 = "eContainer";
+  protected final String TEXT_231 = "eInternalContainer";
+  protected final String TEXT_232 = "();";
+  protected final String TEXT_233 = " != null && ";
+  protected final String TEXT_234 = ".eIsProxy())" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_235 = " old";
+  protected final String TEXT_236 = ";" + NL + "\t\t\t";
+  protected final String TEXT_237 = "eResolveProxy(old";
+  protected final String TEXT_238 = ");" + NL + "\t\t\tif (";
+  protected final String TEXT_239 = " != old";
+  protected final String TEXT_240 = ")" + NL + "\t\t\t{";
+  protected final String TEXT_241 = NL + "\t\t\t\t";
+  protected final String TEXT_242 = " msgs = old";
+  protected final String TEXT_243 = ".eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ";
+  protected final String TEXT_244 = ", null, null);";
+  protected final String TEXT_245 = " msgs =  old";
+  protected final String TEXT_246 = ".eInverseRemove(this, ";
+  protected final String TEXT_247 = ".class, null);";
+  protected final String TEXT_248 = NL + "\t\t\t\tif (new";
+  protected final String TEXT_249 = ".eInternalContainer() == null)" + NL + "\t\t\t\t{";
+  protected final String TEXT_250 = NL + "\t\t\t\t\tmsgs = new";
+  protected final String TEXT_251 = ".eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ";
+  protected final String TEXT_252 = ", null, msgs);";
+  protected final String TEXT_253 = NL + "\t\t\t\t\tmsgs =  new";
+  protected final String TEXT_254 = ".eInverseAdd(this, ";
+  protected final String TEXT_255 = ".class, msgs);";
+  protected final String TEXT_256 = NL + "\t\t\t\t}" + NL + "\t\t\t\tif (msgs != null) msgs.dispatch();";
+  protected final String TEXT_257 = NL + "\t\t\t\teVirtualSet(";
+  protected final String TEXT_258 = NL + "\t\t\t\tif (eNotificationRequired())" + NL + "\t\t\t\t\teNotify(new ";
+  protected final String TEXT_259 = "(this, ";
+  protected final String TEXT_260 = ".RESOLVE, ";
+  protected final String TEXT_261 = ", old";
+  protected final String TEXT_262 = "));";
+  protected final String TEXT_263 = NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_264 = NL + "\t\treturn (";
+  protected final String TEXT_265 = " & ";
+  protected final String TEXT_266 = "_EFLAG) != 0;";
+  protected final String TEXT_267 = "_EFLAG_VALUES[(";
+  protected final String TEXT_268 = "_EFLAG) >>> ";
+  protected final String TEXT_269 = "_EFLAG_OFFSET];";
+  protected final String TEXT_270 = " = basicGet";
+  protected final String TEXT_271 = "();" + NL + "\t\treturn ";
+  protected final String TEXT_272 = ".eIsProxy() ? ";
+  protected final String TEXT_273 = "eResolveProxy(";
+  protected final String TEXT_274 = ") : ";
+  protected final String TEXT_275 = NL + "\t\treturn new ";
+  protected final String TEXT_276 = "((";
+  protected final String TEXT_277 = ".Internal)((";
+  protected final String TEXT_278 = ".Internal.Wrapper)get";
+  protected final String TEXT_279 = "()).featureMap().";
+  protected final String TEXT_280 = "list(";
+  protected final String TEXT_281 = ")get";
+  protected final String TEXT_282 = "().";
+  protected final String TEXT_283 = NL + "\t\treturn ((";
+  protected final String TEXT_284 = "()).featureMap().list(";
+  protected final String TEXT_285 = NL + "\t\treturn get";
+  protected final String TEXT_286 = "().list(";
+  protected final String TEXT_287 = "()).featureMap().get(";
+  protected final String TEXT_288 = "get";
+  protected final String TEXT_289 = "().get(";
+  protected final String TEXT_290 = " cache = getCacheAdapter();" + NL + "\t\tif (cache != null)" + NL + "\t\t{";
+  protected final String TEXT_291 = NL + "\t\t\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_292 = " result = (";
+  protected final String TEXT_293 = ") cache.get(";
+  protected final String TEXT_294 = "eResource(), ";
+  protected final String TEXT_295 = "this, ";
+  protected final String TEXT_296 = ");" + NL + "\t\t\tif (result == null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcache.put(";
+  protected final String TEXT_297 = ", result = ";
+  protected final String TEXT_298 = "new ";
+  protected final String TEXT_299 = "(this)";
+  protected final String TEXT_300 = ");" + NL + "\t\t\t}" + NL + "\t\t\treturn result";
+  protected final String TEXT_301 = ";" + NL + "\t\t}";
+  protected final String TEXT_302 = "(this);";
+  protected final String TEXT_303 = " cache = getCacheAdapter();" + NL + "\t\tif (cache != null) {" + NL + "\t\t\t";
+  protected final String TEXT_304 = " eResource = eResource();";
+  protected final String TEXT_305 = ") cache.get(eResource, this, ";
+  protected final String TEXT_306 = " == null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcache.put(eResource, this, ";
+  protected final String TEXT_307 = ");" + NL + "\t\t\t}" + NL + "\t\t\treturn ";
+  protected final String TEXT_308 = " cache = getCacheAdapter();" + NL + "\t\tif (cache != null) {";
+  protected final String TEXT_309 = NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_310 = " method = getClass().getMethod(\"";
+  protected final String TEXT_311 = "\", null);";
+  protected final String TEXT_312 = NL + "\t\t\t\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_313 = ") cache.get(eResource(), this, method);" + NL + "\t\t\t\tif (";
+  protected final String TEXT_314 = " == null)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_315 = " union = ";
+  protected final String TEXT_316 = "Helper(new ";
+  protected final String TEXT_317 = ".FastCompare());" + NL + "\t\t\t\t\tcache.put(eResource(), this, method, ";
+  protected final String TEXT_318 = "null";
+  protected final String TEXT_319 = ", union.size(), union.toArray()));" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn ";
+  protected final String TEXT_320 = ";" + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
+  protected final String TEXT_321 = " nsme)" + NL + "\t\t\t{" + NL + "\t\t\t\t// ignore" + NL + "\t\t\t}";
+  protected final String TEXT_322 = ") cache.get(eResource(), this, ";
+  protected final String TEXT_323 = " == null)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_324 = ".FastCompare());" + NL + "\t\t\t\tcache.put(eResource(), this, ";
+  protected final String TEXT_325 = ", union.size(), union.toArray()));" + NL + "\t\t\t}" + NL + "\t\t\treturn ";
+  protected final String TEXT_326 = NL + "\t\t}";
+  protected final String TEXT_327 = ".FastCompare());" + NL + "\t\treturn new ";
+  protected final String TEXT_328 = ", union.size(), union.toArray());";
+  protected final String TEXT_329 = NL + "\t\tif (isSet";
+  protected final String TEXT_330 = "())" + NL + "\t\t{" + NL + "\t\t\treturn ";
+  protected final String TEXT_331 = "();" + NL + "\t\t}";
+  protected final String TEXT_332 = NL + "\t\tif (eIsSet(";
+  protected final String TEXT_333 = "))" + NL + "\t\t{" + NL + "\t\t\treturn ";
+  protected final String TEXT_334 = "();" + NL + "\t\tif (";
+  protected final String TEXT_335 = " != null)" + NL + "\t\t{" + NL + "\t\t\treturn ";
+  protected final String TEXT_336 = "super.";
+  protected final String TEXT_337 = NL + "\t\t// TODO: implement this method to return the '";
+  protected final String TEXT_338 = "' ";
+  protected final String TEXT_339 = NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_340 = " basicGet";
+  protected final String TEXT_341 = ", false, ";
+  protected final String TEXT_342 = "__ESETTING_DELEGATE.dynamicGet(this, null, 0, false, false)";
+  protected final String TEXT_343 = ")eInternalContainer();";
+  protected final String TEXT_344 = ")((";
+  protected final String TEXT_345 = ", false);";
+  protected final String TEXT_346 = "basicGet";
+  protected final String TEXT_347 = "();\t\t\t" + NL + "\t\tif (";
+  protected final String TEXT_348 = "super.basicGet";
+  protected final String TEXT_349 = NL + "\t\t// -> do not perform proxy resolution" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_350 = " msgs)" + NL + "\t{";
+  protected final String TEXT_351 = NL + "\t\tif (new";
+  protected final String TEXT_352 = " != null && !(new";
+  protected final String TEXT_353 = " instanceof ";
+  protected final String TEXT_354 = "))" + NL + "\t\t{" + NL + "\t\t\tthrow new IllegalArgumentException(\"new";
+  protected final String TEXT_355 = " must be an instance of ";
+  protected final String TEXT_356 = "\");";
+  protected final String TEXT_357 = NL + "\t\tmsgs = eBasicSetContainer(";
+  protected final String TEXT_358 = ", msgs);";
+  protected final String TEXT_359 = ".Internal eInternalResource = eInternalResource();" + NL + "\t\tif (eInternalResource == null || !eInternalResource.isLoading()) {";
+  protected final String TEXT_360 = NL + "\t\t\tObject ";
+  protected final String TEXT_361 = " = eVirtualGet(";
+  protected final String TEXT_362 = NL + "\t\t\tif (";
+  protected final String TEXT_363 = " != new";
+  protected final String TEXT_364 = ")" + NL + "\t\t\t{" + NL + "\t\t\t\tset";
+  protected final String TEXT_365 = "(null);" + NL + "\t\t\t}";
+  protected final String TEXT_366 = NL + "\t\t\tif (new";
+  protected final String TEXT_367 = " != null)" + NL + "\t\t\t{";
+  protected final String TEXT_368 = "();" + NL + "\t\t\t\tif (!";
+  protected final String TEXT_369 = ".contains(new";
+  protected final String TEXT_370 = "))" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_371 = ".add(new";
+  protected final String TEXT_372 = ");" + NL + "\t\t\t\t}";
+  protected final String TEXT_373 = NL + "\t\t\t\tObject ";
+  protected final String TEXT_374 = " != ";
+  protected final String TEXT_375 = ")" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tset";
+  protected final String TEXT_376 = NL + "\t\t\t}";
+  protected final String TEXT_377 = NL + "\t\treturn msgs;";
+  protected final String TEXT_378 = NL + "\t\tmsgs = eDynamicInverseAdd(";
+  protected final String TEXT_379 = NL + "\t\tObject old";
+  protected final String TEXT_380 = " = eVirtualSet(";
+  protected final String TEXT_381 = ", new";
+  protected final String TEXT_382 = ";" + NL + "\t\t";
+  protected final String TEXT_383 = " = new";
+  protected final String TEXT_384 = NL + "\t\tboolean isSetChange = old";
+  protected final String TEXT_385 = " == EVIRTUAL_NO_VALUE;";
+  protected final String TEXT_386 = NL + "\t\tboolean old";
+  protected final String TEXT_387 = "ESet = (";
+  protected final String TEXT_388 = "_ESETFLAG) != 0;";
+  protected final String TEXT_389 = "_ESETFLAG;";
+  protected final String TEXT_390 = "ESet = ";
+  protected final String TEXT_391 = "ESet;";
+  protected final String TEXT_392 = "ESet = true;";
+  protected final String TEXT_393 = NL + "\t\tif (eNotificationRequired())" + NL + "\t\t{";
+  protected final String TEXT_394 = " notification = new ";
+  protected final String TEXT_395 = ".SET, ";
+  protected final String TEXT_396 = "isSetChange ? null : old";
+  protected final String TEXT_397 = "old";
+  protected final String TEXT_398 = "isSetChange";
+  protected final String TEXT_399 = "!old";
+  protected final String TEXT_400 = "ESet";
+  protected final String TEXT_401 = " == EVIRTUAL_NO_VALUE ? null : old";
+  protected final String TEXT_402 = NL + "\t\t\tif (msgs == null) msgs = notification; else msgs.add(notification);" + NL + "\t\t}";
+  protected final String TEXT_403 = "()).featureMap()).basicAdd(";
+  protected final String TEXT_404 = ".Internal)get";
+  protected final String TEXT_405 = "()).basicAdd(";
+  protected final String TEXT_406 = NL + "\t\t// TODO: implement this method to set the contained '";
+  protected final String TEXT_407 = NL + "\t\t// -> this method is automatically invoked to keep the containment relationship in synch" + NL + "\t\t// -> do not modify other features" + NL + "\t\t// -> return msgs, after adding any generated Notification to it (if it is null, a NotificationChain object must be created first)" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_408 = NL + "\t/**" + NL + "\t * Sets the value of the '{@link ";
+  protected final String TEXT_409 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @param ";
+  protected final String TEXT_410 = "new";
+  protected final String TEXT_411 = "value";
+  protected final String TEXT_412 = " the new value of the '<em>";
+  protected final String TEXT_413 = NL + "\t * @see #";
+  protected final String TEXT_414 = " value);" + NL;
+  protected final String TEXT_415 = ")" + NL + "\t{";
+  protected final String TEXT_416 = NL + "\t\tnew";
+  protected final String TEXT_417 = " == null ? ";
+  protected final String TEXT_418 = " : new";
+  protected final String TEXT_419 = NL + "\t\teDynamicSet(";
+  protected final String TEXT_420 = NL + "\t\teSet(";
+  protected final String TEXT_421 = "__ESETTING_DELEGATE.dynamicSet(this, null, 0, ";
+  protected final String TEXT_422 = " != eInternalContainer() || (eContainerFeatureID() != ";
+  protected final String TEXT_423 = " && new";
+  protected final String TEXT_424 = " != null))" + NL + "\t\t{" + NL + "\t\t\tif (";
+  protected final String TEXT_425 = ".isAncestor(this, ";
+  protected final String TEXT_426 = "))" + NL + "\t\t\t\tthrow new ";
+  protected final String TEXT_427 = "(\"Recursive containment not allowed for \" + toString());";
+  protected final String TEXT_428 = " msgs = null;" + NL + "\t\t\tif (eInternalContainer() != null)" + NL + "\t\t\t\tmsgs = eBasicRemoveFromContainer(msgs);" + NL + "\t\t\tif (new";
+  protected final String TEXT_429 = " != null)" + NL + "\t\t\t\tmsgs = ";
+  protected final String TEXT_430 = ".class, msgs);" + NL + "\t\t\tmsgs = basicSet";
+  protected final String TEXT_431 = ", msgs);" + NL + "\t\t\tif (msgs != null) msgs.dispatch();" + NL + "\t\t}";
+  protected final String TEXT_432 = NL + "\t\telse if (eNotificationRequired())" + NL + "\t\t\teNotify(new ";
+  protected final String TEXT_433 = ")" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_434 = " msgs = null;" + NL + "\t\t\tif (";
+  protected final String TEXT_435 = " != null)";
+  protected final String TEXT_436 = NL + "\t\t\t\tmsgs = ";
+  protected final String TEXT_437 = ", null, msgs);" + NL + "\t\t\tif (new";
+  protected final String TEXT_438 = ".class, msgs);" + NL + "\t\t\tif (new";
+  protected final String TEXT_439 = NL + "\t\t\tmsgs = basicSet";
+  protected final String TEXT_440 = NL + "\t\telse" + NL + "\t\t{";
+  protected final String TEXT_441 = NL + "\t\t\tboolean old";
+  protected final String TEXT_442 = "ESet = eVirtualIsSet(";
+  protected final String TEXT_443 = NL + "\t\t\tif (eNotificationRequired())" + NL + "\t\t\t\teNotify(new ";
+  protected final String TEXT_444 = ", !old";
+  protected final String TEXT_445 = "ESet));";
+  protected final String TEXT_446 = ") ";
+  protected final String TEXT_447 = "_EFLAG; else ";
+  protected final String TEXT_448 = " &= ~";
+  protected final String TEXT_449 = "_EFLAG;";
+  protected final String TEXT_450 = " == null) new";
+  protected final String TEXT_451 = "_EDEFAULT;" + NL + "\t\t";
+  protected final String TEXT_452 = " & ~";
+  protected final String TEXT_453 = "_EFLAG | ";
+  protected final String TEXT_454 = ".VALUES.indexOf(new";
+  protected final String TEXT_455 = "_EFLAG_OFFSET;";
+  protected final String TEXT_456 = NL + "\t\tif (eNotificationRequired())" + NL + "\t\t\teNotify(new ";
+  protected final String TEXT_457 = "isSetChange ? ";
+  protected final String TEXT_458 = " : old";
+  protected final String TEXT_459 = " == EVIRTUAL_NO_VALUE ? ";
+  protected final String TEXT_460 = NL + "\t\t((";
+  protected final String TEXT_461 = "()).featureMap()).set(";
+  protected final String TEXT_462 = "()).set(";
+  protected final String TEXT_463 = NL + "\t\t// TODO: implement this method to set the '";
+  protected final String TEXT_464 = " basicUnset";
+  protected final String TEXT_465 = NL + "\t\treturn eDynamicInverseRemove(";
+  protected final String TEXT_466 = "(), ";
+  protected final String TEXT_467 = "Object old";
+  protected final String TEXT_468 = "eVirtualUnset(";
+  protected final String TEXT_469 = " = null;";
+  protected final String TEXT_470 = " != EVIRTUAL_NO_VALUE;";
+  protected final String TEXT_471 = "ESet = false;";
+  protected final String TEXT_472 = NL + "\t\tif (eNotificationRequired())" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_473 = ".UNSET, ";
+  protected final String TEXT_474 = "isSetChange ? old";
+  protected final String TEXT_475 = " : null";
+  protected final String TEXT_476 = ", null, ";
+  protected final String TEXT_477 = ");" + NL + "\t\t\tif (msgs == null) msgs = notification; else msgs.add(notification);" + NL + "\t\t}" + NL + "\t\treturn msgs;";
+  protected final String TEXT_478 = NL + "\t\t// TODO: implement this method to unset the contained '";
+  protected final String TEXT_479 = NL + "\t/**" + NL + "\t * Unsets the value of the '{@link ";
+  protected final String TEXT_480 = NL + "\tvoid unset";
+  protected final String TEXT_481 = NL + "\tpublic void unset";
+  protected final String TEXT_482 = NL + "\t\teDynamicUnset(";
+  protected final String TEXT_483 = NL + "\t\teUnset(";
+  protected final String TEXT_484 = "__ESETTING_DELEGATE.dynamicUnset(this, null, 0);";
+  protected final String TEXT_485 = " != null) ((";
+  protected final String TEXT_486 = ".Unsettable";
+  protected final String TEXT_487 = ").unset();";
+  protected final String TEXT_488 = " != null)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_489 = " msgs = null;";
+  protected final String TEXT_490 = NL + "\t\t\tmsgs = ";
+  protected final String TEXT_491 = NL + "\t\t\tmsgs = basicUnset";
+  protected final String TEXT_492 = "(msgs);" + NL + "\t\t\tif (msgs != null) msgs.dispatch();" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{";
+  protected final String TEXT_493 = ", null, null, old";
+  protected final String TEXT_494 = " = eVirtualUnset(";
+  protected final String TEXT_495 = "_EFLAG_DEFAULT;";
+  protected final String TEXT_496 = " : ";
+  protected final String TEXT_497 = "()).featureMap()).clear(";
+  protected final String TEXT_498 = "()).clear(";
+  protected final String TEXT_499 = NL + "\t\t// TODO: implement this method to unset the '";
+  protected final String TEXT_500 = NL + "\t/**" + NL + "\t * Returns whether the value of the '{@link ";
+  protected final String TEXT_501 = " is set.";
+  protected final String TEXT_502 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return whether the value of the '<em>";
+  protected final String TEXT_503 = NL + "\tboolean isSet";
+  protected final String TEXT_504 = NL + "\tpublic boolean isSet";
+  protected final String TEXT_505 = NL + "\t\treturn eDynamicIsSet(";
+  protected final String TEXT_506 = NL + "\t\treturn eIsSet(";
+  protected final String TEXT_507 = "__ESETTING_DELEGATE.dynamicIsSet(this, null, 0);";
+  protected final String TEXT_508 = " != null && ((";
+  protected final String TEXT_509 = ").isSet();";
+  protected final String TEXT_510 = NL + "\t\treturn eVirtualIsSet(";
+  protected final String TEXT_511 = NL + "\t\treturn !((";
+  protected final String TEXT_512 = "()).featureMap()).isEmpty(";
+  protected final String TEXT_513 = "()).isEmpty(";
+  protected final String TEXT_514 = NL + "\t\t// TODO: implement this method to return whether the '";
+  protected final String TEXT_515 = " is set" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_516 = NL + "\t/**" + NL + "\t * The array of subset feature identifiers for the '{@link #";
+  protected final String TEXT_517 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final int[] ";
+  protected final String TEXT_518 = "_ESUBSETS = ";
+  protected final String TEXT_519 = NL + "\t/**" + NL + "\t * The array of superset feature identifiers for the '{@link #";
+  protected final String TEXT_520 = "_ESUPERSETS = ";
+  protected final String TEXT_521 = NL + "\t/**";
+  protected final String TEXT_522 = NL + "\t * Creates a new {@link ";
+  protected final String TEXT_523 = "}, with the specified ";
+  protected final String TEXT_524 = ", and appends it to the '<em><b>";
+  protected final String TEXT_525 = ", and sets the '<em><b>";
+  protected final String TEXT_526 = "} and appends it to the '<em><b>";
+  protected final String TEXT_527 = "} and sets the '<em><b>";
+  protected final String TEXT_528 = NL + "\t * @param ";
+  protected final String TEXT_529 = " The ";
+  protected final String TEXT_530 = " for the new {@link ";
+  protected final String TEXT_531 = "}, or <code>null</code>.";
+  protected final String TEXT_532 = NL + "\t * @param eClass The Ecore class of the {@link ";
+  protected final String TEXT_533 = "} to create." + NL + "\t * @return The new {@link ";
+  protected final String TEXT_534 = "}." + NL + "\t * @see #";
+  protected final String TEXT_535 = "()" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_536 = " create";
+  protected final String TEXT_537 = " eClass);" + NL;
+  protected final String TEXT_538 = " eClass)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_539 = ") create(eClass);";
+  protected final String TEXT_540 = "().add(new";
+  protected final String TEXT_541 = NL + "\t\tset";
+  protected final String TEXT_542 = NL + "\t\tint ";
+  protected final String TEXT_543 = "ListSize = 0;";
+  protected final String TEXT_544 = "Size = ";
+  protected final String TEXT_545 = ".size();" + NL + "\t\tif (";
+  protected final String TEXT_546 = "Size > ";
+  protected final String TEXT_547 = "ListSize)" + NL + "\t\t\t";
+  protected final String TEXT_548 = "ListSize = ";
+  protected final String TEXT_549 = "Size;";
+  protected final String TEXT_550 = NL + "\t\tfor (int i = 0; i < ";
+  protected final String TEXT_551 = "ListSize; i++) {" + NL + "\t\t\tnew";
+  protected final String TEXT_552 = ".create";
+  protected final String TEXT_553 = "i < ";
+  protected final String TEXT_554 = "Size ? (";
+  protected final String TEXT_555 = ".get(i) : null";
+  protected final String TEXT_556 = ");" + NL + "\t\t}";
+  protected final String TEXT_557 = NL + "\t\t\tnew";
+  protected final String TEXT_558 = "().addAll(";
+  protected final String TEXT_559 = ".set";
+  protected final String TEXT_560 = NL + "\t\treturn new";
+  protected final String TEXT_561 = "},with the specified ";
+  protected final String TEXT_562 = NL + "\t * @return The new {@link ";
+  protected final String TEXT_563 = NL + "\t\treturn create";
+  protected final String TEXT_564 = ") create(";
+  protected final String TEXT_565 = NL + "\t/**" + NL + "\t * Retrieves the first {@link ";
+  protected final String TEXT_566 = "} with the specified ";
+  protected final String TEXT_567 = " from the '<em><b>";
+  protected final String TEXT_568 = " of the {@link ";
+  protected final String TEXT_569 = "} to retrieve, or <code>null</code>.";
+  protected final String TEXT_570 = NL + "\t * @return The first {@link ";
+  protected final String TEXT_571 = ", or <code>null</code>." + NL + "\t * @see #";
+  protected final String TEXT_572 = ")" + NL + "\t{" + NL + "\t\treturn get";
+  protected final String TEXT_573 = ", false";
+  protected final String TEXT_574 = ", null";
+  protected final String TEXT_575 = NL + "\t * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.";
+  protected final String TEXT_576 = NL + "\t * @param createOnDemand Whether to create a {@link ";
+  protected final String TEXT_577 = "} on demand if not found.";
+  protected final String TEXT_578 = ", boolean ignoreCase";
+  protected final String TEXT_579 = " eClass";
+  protected final String TEXT_580 = ", boolean createOnDemand";
+  protected final String TEXT_581 = "Loop: for (";
+  protected final String TEXT_582 = "())" + NL + "\t\t{";
+  protected final String TEXT_583 = " i = ";
+  protected final String TEXT_584 = "().iterator(); i.hasNext(); )" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_585 = ") i.next();";
+  protected final String TEXT_586 = NL + "\t\t\tif (eClass != null && !eClass.isInstance(";
+  protected final String TEXT_587 = "))" + NL + "\t\t\t\tcontinue ";
+  protected final String TEXT_588 = "Loop;";
+  protected final String TEXT_589 = "List = ";
+  protected final String TEXT_590 = "();" + NL + "\t\t\tint ";
+  protected final String TEXT_591 = "List.size();" + NL + "\t\t\tif (";
+  protected final String TEXT_592 = " || (";
+  protected final String TEXT_593 = ".size() != ";
+  protected final String TEXT_594 = "ListSize";
+  protected final String TEXT_595 = ")" + NL + "\t\t\t\tcontinue  ";
+  protected final String TEXT_596 = "Loop;" + NL + "\t\t\tfor (int j = 0; j < ";
+  protected final String TEXT_597 = "ListSize; j++)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_598 = "List.get(j);";
+  protected final String TEXT_599 = NL + "\t\t\t\tif (";
+  protected final String TEXT_600 = " != null && !(ignoreCase ? (";
+  protected final String TEXT_601 = ".get(j)).equalsIgnoreCase(";
+  protected final String TEXT_602 = "()) : ";
+  protected final String TEXT_603 = ".get(j).equals(";
+  protected final String TEXT_604 = "())))";
+  protected final String TEXT_605 = " != null && !";
+  protected final String TEXT_606 = "()))";
+  protected final String TEXT_607 = NL + "\t\t\t\t\tcontinue ";
+  protected final String TEXT_608 = "();" + NL + "\t\t\tif (";
+  protected final String TEXT_609 = " == null)" + NL + "\t\t\t\tcontinue ";
+  protected final String TEXT_610 = " != null && !(ignoreCase ? ";
+  protected final String TEXT_611 = ".equalsIgnoreCase(";
+  protected final String TEXT_612 = ".equals(";
+  protected final String TEXT_613 = NL + "\t\t\t\tcontinue ";
+  protected final String TEXT_614 = NL + "\t\t\treturn ";
+  protected final String TEXT_615 = NL + "\t\treturn createOnDemand";
+  protected final String TEXT_616 = " && eClass != null";
+  protected final String TEXT_617 = " ? create";
+  protected final String TEXT_618 = ", eClass";
+  protected final String TEXT_619 = ") : null;";
+  protected final String TEXT_620 = NL + "\t\treturn null;";
+  protected final String TEXT_621 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean isSet";
+  protected final String TEXT_622 = NL + "  \t\treturn false;";
+  protected final String TEXT_623 = ".Internal.Wrapper)";
+  protected final String TEXT_624 = "()).featureMap().isEmpty();";
+  protected final String TEXT_625 = ".featureMap().isEmpty();";
+  protected final String TEXT_626 = ".isEmpty();";
+  protected final String TEXT_627 = ");" + NL + "\t\treturn ";
+  protected final String TEXT_628 = NL + "\t\treturn !";
+  protected final String TEXT_629 = "().isEmpty();";
+  protected final String TEXT_630 = " != null;";
+  protected final String TEXT_631 = NL + "\t\treturn eVirtualGet(";
+  protected final String TEXT_632 = ") != null;";
+  protected final String TEXT_633 = NL + "\t\treturn basicGet";
+  protected final String TEXT_634 = "() != null;";
+  protected final String TEXT_635 = NL + "\t\t\t\treturn ((";
+  protected final String TEXT_636 = "_EFLAG) != 0) != ";
+  protected final String TEXT_637 = NL + "\t\t\t\treturn (";
+  protected final String TEXT_638 = "_EFLAG) != ";
+  protected final String TEXT_639 = ") != ";
+  protected final String TEXT_640 = "() != ";
+  protected final String TEXT_641 = " != null : !";
+  protected final String TEXT_642 = "() != null : !";
+  protected final String TEXT_643 = "());";
+  protected final String TEXT_644 = NL + "\t/**" + NL + "\t * The cached OCL expression body for the '{@link #";
+  protected final String TEXT_645 = ") <em>";
+  protected final String TEXT_646 = "</em>}' operation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+  protected final String TEXT_647 = ")" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final ";
+  protected final String TEXT_648 = "__EOCL_EXP = \"";
+  protected final String TEXT_649 = NL + "\t/**" + NL + "\t * The cached OCL invariant for the '{@link #";
+  protected final String TEXT_650 = "</em>}' invariant operation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+  protected final String TEXT_651 = ")" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static ";
+  protected final String TEXT_652 = "__EOCL_INV;" + NL;
+  protected final String TEXT_653 = NL + "\t/**" + NL + "\t * The cached OCL query for the '{@link #";
+  protected final String TEXT_654 = "</em>}' query operation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+  protected final String TEXT_655 = "<";
+  protected final String TEXT_656 = ">";
+  protected final String TEXT_657 = "__EOCL_QRY;" + NL;
+  protected final String TEXT_658 = NL + "\t/**" + NL + "\t * The cached validation expression for the '{@link #";
+  protected final String TEXT_659 = "__EEXPRESSION = \"";
+  protected final String TEXT_660 = NL + "\t/**" + NL + "\t * The cached invocation delegate for the '{@link #";
+  protected final String TEXT_661 = ".Internal.InvocationDelegate ";
+  protected final String TEXT_662 = "__EINVOCATION_DELEGATE = ((";
+  protected final String TEXT_663 = ").getInvocationDelegate();" + NL;
+  protected final String TEXT_664 = NL + "\t * <p>" + NL + "\t * This operation redefines the following operations:" + NL + "\t * <ul>";
+  protected final String TEXT_665 = "</em>}' </li>";
+  protected final String TEXT_666 = NL + "\t * </ul>" + NL + "\t * </p>";
+  protected final String TEXT_667 = NL + "\t * <!-- begin-model-doc -->";
+  protected final String TEXT_668 = NL + "\t *   ";
+  protected final String TEXT_669 = NL + "\t{";
+  protected final String TEXT_670 = NL + "\t\treturn" + NL + "\t\t\t";
+  protected final String TEXT_671 = ".validate" + NL + "\t\t\t\t(";
+  protected final String TEXT_672 = "," + NL + "\t\t\t\t this," + NL + "\t\t\t\t ";
+  protected final String TEXT_673 = "," + NL + "\t\t\t\t ";
+  protected final String TEXT_674 = "," + NL + "\t\t\t\t \"";
+  protected final String TEXT_675 = "\",";
+  protected final String TEXT_676 = NL + "\t\t\t\t ";
+  protected final String TEXT_677 = "__EEXPRESSION," + NL + "\t\t\t\t ";
+  protected final String TEXT_678 = ".ERROR," + NL + "\t\t\t\t ";
+  protected final String TEXT_679 = ".DIAGNOSTIC_SOURCE," + NL + "\t\t\t\t ";
+  protected final String TEXT_680 = " == null)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_681 = ".Helper helper = EOCL_ENV.createOCLHelper();" + NL + "\t\t\thelper.setContext(";
+  protected final String TEXT_682 = ");" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_683 = " = helper.createInvariant(";
+  protected final String TEXT_684 = "__EOCL_EXP);" + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
+  protected final String TEXT_685 = " pe)" + NL + "\t\t\t{" + NL + "\t\t\t\tthrow new UnsupportedOperationException(pe.getLocalizedMessage());" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tif (!EOCL_ENV.createQuery(";
+  protected final String TEXT_686 = ").check(this))";
+  protected final String TEXT_687 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// -> specify the condition that violates the invariant" + NL + "\t\t// -> verify the details of the diagnostic, including severity and message" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tif (false)";
+  protected final String TEXT_688 = NL + "\t\t{" + NL + "\t\t\tif (";
+  protected final String TEXT_689 = ".add" + NL + "\t\t\t\t\t(new ";
+  protected final String TEXT_690 = NL + "\t\t\t\t\t\t(";
+  protected final String TEXT_691 = ".ERROR," + NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_692 = ".DIAGNOSTIC_SOURCE," + NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_693 = "," + NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_694 = ".INSTANCE.getString(\"_UI_GenericInvariant_diagnostic\", new Object[] { \"";
+  protected final String TEXT_695 = "\", ";
+  protected final String TEXT_696 = ".getObjectLabel(this, ";
+  protected final String TEXT_697 = ") }),";
+  protected final String TEXT_698 = NL + "\t\t\t\t\t\t new Object [] { this }));";
+  protected final String TEXT_699 = NL + "\t\t\t}" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\treturn true;";
+  protected final String TEXT_700 = NL + "\t\ttry" + NL + "\t\t{";
+  protected final String TEXT_701 = "__EINVOCATION_DELEGATE.dynamicInvoke(this, ";
+  protected final String TEXT_702 = ".UnmodifiableEList<Object>(";
+  protected final String TEXT_703 = NL + "\t\t}" + NL + "\t\tcatch (";
+  protected final String TEXT_704 = " ite)" + NL + "\t\t{" + NL + "\t\t\tthrow new ";
+  protected final String TEXT_705 = "(ite);" + NL + "\t\t}";
+  protected final String TEXT_706 = "(this";
+  protected final String TEXT_707 = ".Helper helper = EOCL_ENV.createOCLHelper();" + NL + "\t\t\thelper.setOperationContext(";
+  protected final String TEXT_708 = ".getEAllOperations().get(";
+  protected final String TEXT_709 = "));" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_710 = " = helper.createQuery(";
+  protected final String TEXT_711 = " pe)" + NL + "\t\t\t{" + NL + "\t\t\t\tthrow new UnsupportedOperationException(pe.getLocalizedMessage());" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\t";
+  protected final String TEXT_712 = ".Query query = EOCL_ENV.createQuery(";
+  protected final String TEXT_713 = "<?, ?, ?, ?, ?>";
+  protected final String TEXT_714 = " environment = query.getEvaluationEnvironment();";
+  protected final String TEXT_715 = NL + "\t\tenvironment.add(\"";
+  protected final String TEXT_716 = NL + "\t\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_717 = "> result = (";
+  protected final String TEXT_718 = ">) query.evaluate(this);" + NL + "\t\treturn new ";
+  protected final String TEXT_719 = ".UnmodifiableEList<";
+  protected final String TEXT_720 = ">(result.size(), result.toArray());";
+  protected final String TEXT_721 = ") query.evaluate(this)).";
+  protected final String TEXT_722 = ") query.evaluate(this);";
+  protected final String TEXT_723 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_724 = " eInverseAdd(";
+  protected final String TEXT_725 = " otherEnd, int featureID, ";
+  protected final String TEXT_726 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (featureID";
+  protected final String TEXT_727 = ")" + NL + "\t\t{";
+  protected final String TEXT_728 = NL + "\t\t\tcase ";
+  protected final String TEXT_729 = ":";
+  protected final String TEXT_730 = ".InternalMapView";
+  protected final String TEXT_731 = "()).eMap()).basicAdd(otherEnd, msgs);";
+  protected final String TEXT_732 = "()).basicAdd(otherEnd, msgs);";
+  protected final String TEXT_733 = NL + "\t\t\t\tif (eInternalContainer() != null)" + NL + "\t\t\t\t\tmsgs = eBasicRemoveFromContainer(msgs);";
+  protected final String TEXT_734 = NL + "\t\t\t\treturn basicSet";
+  protected final String TEXT_735 = ")otherEnd, msgs);";
+  protected final String TEXT_736 = NL + "\t\t\t\treturn eBasicSetContainer(otherEnd, ";
+  protected final String TEXT_737 = NL + "\t\t\t\t\tmsgs = ";
+  protected final String TEXT_738 = NL + "\t\t\tdefault:";
+  protected final String TEXT_739 = "\t\treturn super.eInverseAdd(otherEnd, featureID, msgs);";
+  protected final String TEXT_740 = "\t\treturn eDynamicInverseAdd(otherEnd, featureID, msgs);";
+  protected final String TEXT_741 = " eInverseRemove(";
+  protected final String TEXT_742 = "()).eMap()).basicRemove(otherEnd, msgs);";
+  protected final String TEXT_743 = "()).featureMap()).basicRemove(otherEnd, msgs);";
+  protected final String TEXT_744 = "()).basicRemove(otherEnd, msgs);";
+  protected final String TEXT_745 = NL + "\t\t\t\treturn eBasicSetContainer(null, ";
+  protected final String TEXT_746 = NL + "\t\t\t\treturn basicUnset";
+  protected final String TEXT_747 = "(msgs);";
+  protected final String TEXT_748 = "(null, msgs);";
+  protected final String TEXT_749 = "\t\treturn super.eInverseRemove(otherEnd, featureID, msgs);";
+  protected final String TEXT_750 = "\t\treturn eDynamicInverseRemove(otherEnd, featureID, msgs);";
+  protected final String TEXT_751 = " eBasicRemoveFromContainerFeature(";
+  protected final String TEXT_752 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (eContainerFeatureID()";
+  protected final String TEXT_753 = ":" + NL + "\t\t\t\treturn eInternalContainer().eInverseRemove(this, ";
+  protected final String TEXT_754 = "\t\treturn super.eBasicRemoveFromContainerFeature(msgs);";
+  protected final String TEXT_755 = "\t\treturn eDynamicBasicRemoveFromContainer(msgs);";
+  protected final String TEXT_756 = NL + "\tpublic Object eGet(int featureID, boolean resolve, boolean coreType)" + NL + "\t{" + NL + "\t\tswitch (featureID";
+  protected final String TEXT_757 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_758 = "() ? Boolean.TRUE : Boolean.FALSE;";
+  protected final String TEXT_759 = NL + "\t\t\t\treturn new ";
+  protected final String TEXT_760 = NL + "\t\t\t\tif (resolve) return ";
+  protected final String TEXT_761 = "();" + NL + "\t\t\t\treturn basicGet";
+  protected final String TEXT_762 = NL + "\t\t\t\tif (coreType) return ((";
+  protected final String TEXT_763 = "()).eMap();" + NL + "\t\t\t\telse return ";
+  protected final String TEXT_764 = NL + "\t\t\t\tif (coreType) return ";
+  protected final String TEXT_765 = "();" + NL + "\t\t\t\telse return ";
+  protected final String TEXT_766 = "().map();";
+  protected final String TEXT_767 = "()).featureMap();" + NL + "\t\t\t\treturn ";
+  protected final String TEXT_768 = "();" + NL + "\t\t\t\treturn ((";
+  protected final String TEXT_769 = "()).getWrapper();";
+  protected final String TEXT_770 = "\t\treturn super.eGet(featureID, resolve, coreType);";
+  protected final String TEXT_771 = "\t\treturn eDynamicGet(featureID, resolve, coreType);";
+  protected final String TEXT_772 = NL + "\tpublic void eSet(int featureID, Object newValue)" + NL + "\t{" + NL + "\t\tswitch (featureID";
+  protected final String TEXT_773 = NL + "\t\t\t\t((";
+  protected final String TEXT_774 = "()).featureMap()).set(newValue);";
+  protected final String TEXT_775 = "()).set(newValue);";
+  protected final String TEXT_776 = ".Setting)((";
+  protected final String TEXT_777 = "()).eMap()).set(newValue);";
+  protected final String TEXT_778 = ".Setting)";
+  protected final String TEXT_779 = "().clear();" + NL + "\t\t\t\t";
+  protected final String TEXT_780 = "().addAll((";
+  protected final String TEXT_781 = "<? extends ";
+  protected final String TEXT_782 = ")newValue);";
+  protected final String TEXT_783 = NL + "\t\t\t\tset";
+  protected final String TEXT_784 = "(((";
+  protected final String TEXT_785 = ")newValue).";
+  protected final String TEXT_786 = "newValue);";
+  protected final String TEXT_787 = NL + "\t\t\t\treturn;";
+  protected final String TEXT_788 = "\t\tsuper.eSet(featureID, newValue);";
+  protected final String TEXT_789 = "\t\teDynamicSet(featureID, newValue);";
+  protected final String TEXT_790 = NL + "\tpublic void eUnset(int featureID)" + NL + "\t{" + NL + "\t\tswitch (featureID";
+  protected final String TEXT_791 = "()).featureMap().clear();";
+  protected final String TEXT_792 = "().clear();";
+  protected final String TEXT_793 = NL + "\t\t\t\tunset";
+  protected final String TEXT_794 = ")null);";
+  protected final String TEXT_795 = "\t\tsuper.eUnset(featureID);";
+  protected final String TEXT_796 = "\t\teDynamicUnset(featureID);";
+  protected final String TEXT_797 = "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_798 = NL + "\tpublic boolean eIsSet(int featureID)" + NL + "\t{" + NL + "\t\tswitch (featureID)" + NL + "\t\t{";
+  protected final String TEXT_799 = NL + "\t\t\t\treturn isSet";
+  protected final String TEXT_800 = NL + "\t\t\t\treturn !((";
+  protected final String TEXT_801 = ");" + NL + "\t\t\t\treturn ";
+  protected final String TEXT_802 = NL + "\t\t\t\treturn !";
+  protected final String TEXT_803 = NL + "\t\t\t\treturn eVirtualGet(";
+  protected final String TEXT_804 = NL + "\t\t\t\treturn basicGet";
+  protected final String TEXT_805 = NL + "\t\treturn super.eIsSet(featureID);";
+  protected final String TEXT_806 = NL + "\t\treturn eDynamicIsSet(featureID);";
+  protected final String TEXT_807 = NL + "\tpublic int eBaseStructuralFeatureID(int derivedFeatureID, Class";
+  protected final String TEXT_808 = " baseClass)" + NL + "\t{";
+  protected final String TEXT_809 = NL + "\t\tif (baseClass == ";
+  protected final String TEXT_810 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (derivedFeatureID";
+  protected final String TEXT_811 = NL + "\t\t\t\tcase ";
+  protected final String TEXT_812 = ": return ";
+  protected final String TEXT_813 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_814 = NL + "\t\treturn super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);" + NL + "\t}";
+  protected final String TEXT_815 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_816 = NL + "\tpublic int eDerivedStructuralFeatureID(int baseFeatureID, Class";
+  protected final String TEXT_817 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseFeatureID)" + NL + "\t\t\t{";
+  protected final String TEXT_818 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseFeatureID";
+  protected final String TEXT_819 = NL + "\t\treturn super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);" + NL + "\t}" + NL;
+  protected final String TEXT_820 = NL + "\tpublic int eDerivedOperationID(int baseOperationID, Class";
+  protected final String TEXT_821 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID)" + NL + "\t\t\t{";
+  protected final String TEXT_822 = NL + "\t\t\t\tdefault: return super.eDerivedOperationID(baseOperationID, baseClass);" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_823 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID";
+  protected final String TEXT_824 = NL + "\t\treturn super.eDerivedOperationID(baseOperationID, baseClass);" + NL + "\t}" + NL;
+  protected final String TEXT_825 = NL + "\tprotected Object[] eVirtualValues()" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_826 = ";" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_827 = NL + "\tprotected void eSetVirtualValues(Object[] newValues)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_828 = " = newValues;" + NL + "\t}" + NL;
+  protected final String TEXT_829 = NL + "\tprotected int eVirtualIndexBits(int offset)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
+  protected final String TEXT_830 = " :" + NL + "\t\t\t\treturn ";
+  protected final String TEXT_831 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_832 = NL + "\tprotected void eSetVirtualIndexBits(int offset, int newIndexBits)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
+  protected final String TEXT_833 = " :" + NL + "\t\t\t\t";
+  protected final String TEXT_834 = " = newIndexBits;" + NL + "\t\t\t\tbreak;";
+  protected final String TEXT_835 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_836 = NL + "\t@SuppressWarnings(";
+  protected final String TEXT_837 = "\"unchecked\"";
+  protected final String TEXT_838 = "{\"rawtypes\", \"unchecked\" }";
+  protected final String TEXT_839 = NL + "\tpublic Object eInvoke(int operationID, ";
+  protected final String TEXT_840 = " arguments) throws ";
+  protected final String TEXT_841 = NL + "\t{" + NL + "\t\tswitch (operationID";
+  protected final String TEXT_842 = NL + "\t\t\t\ttry" + NL + "\t\t\t\t{";
+  protected final String TEXT_843 = "arguments.get(";
+  protected final String TEXT_844 = ");" + NL + "\t\t\t\t";
+  protected final String TEXT_845 = "return null;";
+  protected final String TEXT_846 = "return ";
+  protected final String TEXT_847 = NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (";
+  protected final String TEXT_848 = " throwable)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tthrow new ";
+  protected final String TEXT_849 = "(throwable);" + NL + "\t\t\t\t}";
+  protected final String TEXT_850 = "\t\treturn super.eInvoke(operationID, arguments);";
+  protected final String TEXT_851 = "\t\treturn eDynamicInvoke(operationID, arguments);";
+  protected final String TEXT_852 = NL + "\tpublic String toString()" + NL + "\t{" + NL + "\t\tif (eIsProxy()) return super.toString();" + NL + "" + NL + "\t\t";
+  protected final String TEXT_853 = " result = new ";
+  protected final String TEXT_854 = "(super.toString());";
+  protected final String TEXT_855 = NL + "\t\tresult.append(\" (";
+  protected final String TEXT_856 = ": \");";
+  protected final String TEXT_857 = NL + "\t\tresult.append(\", ";
+  protected final String TEXT_858 = NL + "\t\tif (eVirtualIsSet(";
+  protected final String TEXT_859 = ")) result.append(eVirtualGet(";
+  protected final String TEXT_860 = ")); else result.append(\"<unset>\");";
+  protected final String TEXT_861 = "_ESETFLAG) != 0";
+  protected final String TEXT_862 = ") result.append((";
+  protected final String TEXT_863 = "_EFLAG) != 0); else result.append(\"<unset>\");";
+  protected final String TEXT_864 = ") result.append(";
+  protected final String TEXT_865 = "_EFLAG_OFFSET]); else result.append(\"<unset>\");";
+  protected final String TEXT_866 = "); else result.append(\"<unset>\");";
+  protected final String TEXT_867 = NL + "\t\tresult.append(eVirtualGet(";
+  protected final String TEXT_868 = NL + "\t\tresult.append((";
+  protected final String TEXT_869 = "_EFLAG) != 0);";
+  protected final String TEXT_870 = NL + "\t\tresult.append(";
+  protected final String TEXT_871 = "_EFLAG_OFFSET]);";
+  protected final String TEXT_872 = NL + "\t\tresult.append(')');" + NL + "\t\treturn result.toString();" + NL + "\t}" + NL;
+  protected final String TEXT_873 = NL + "\tprotected int hash = -1;" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_874 = NL + "\tpublic int getHash()" + NL + "\t{" + NL + "\t\tif (hash == -1)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_875 = " theKey = getKey();" + NL + "\t\t\thash = (theKey == null ? 0 : theKey.hashCode());" + NL + "\t\t}" + NL + "\t\treturn hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_876 = NL + "\tpublic void setHash(int hash)" + NL + "\t{" + NL + "\t\tthis.hash = hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_877 = " getKey()" + NL + "\t{";
+  protected final String TEXT_878 = "(getTypedKey());";
+  protected final String TEXT_879 = NL + "\t\treturn getTypedKey();";
+  protected final String TEXT_880 = NL + "\tpublic void setKey(";
+  protected final String TEXT_881 = " key)" + NL + "\t{";
+  protected final String TEXT_882 = NL + "\t\tgetTypedKey().addAll(";
+  protected final String TEXT_883 = "key);";
+  protected final String TEXT_884 = NL + "\t\tsetTypedKey(key);";
+  protected final String TEXT_885 = NL + "\t\tsetTypedKey(((";
+  protected final String TEXT_886 = ")key).";
+  protected final String TEXT_887 = NL + "\t\tsetTypedKey((";
+  protected final String TEXT_888 = ")key);";
+  protected final String TEXT_889 = " getValue()" + NL + "\t{";
+  protected final String TEXT_890 = "(getTypedValue());";
+  protected final String TEXT_891 = NL + "\t\treturn getTypedValue();";
+  protected final String TEXT_892 = " setValue(";
+  protected final String TEXT_893 = " value)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_894 = " oldValue = getValue();";
+  protected final String TEXT_895 = NL + "\t\tgetTypedValue().clear();" + NL + "\t\tgetTypedValue().addAll(";
+  protected final String TEXT_896 = "value);";
+  protected final String TEXT_897 = NL + "\t\tsetTypedValue(value);";
+  protected final String TEXT_898 = NL + "\t\tsetTypedValue(((";
+  protected final String TEXT_899 = ")value).";
+  protected final String TEXT_900 = NL + "\t\tsetTypedValue((";
+  protected final String TEXT_901 = ")value);";
+  protected final String TEXT_902 = NL + "\t\treturn oldValue;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_903 = " getEMap()" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_904 = " container = eContainer();" + NL + "\t\treturn container == null ? null : (";
+  protected final String TEXT_905 = ")container.eGet(eContainmentFeature());" + NL + "\t}" + NL;
+  protected final String TEXT_906 = NL + "\t/**" + NL + "\t * The cached environment for evaluating OCL expressions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final ";
+  protected final String TEXT_907 = " EOCL_ENV = ";
+  protected final String TEXT_908 = ".newInstance();" + NL;
+  protected final String TEXT_909 = NL + "\t/**" + NL + "\t * Creates a new instance of the specified Ecore class." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @param eClass The Ecore class of the instance to create." + NL + "\t * @return The new instance." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_910 = " create(";
+  protected final String TEXT_911 = " eClass)" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_912 = ".create(eClass);" + NL + "\t}" + NL;
+  protected final String TEXT_913 = NL + "\t/**" + NL + "\t * Retrieves the cache adapter for this '<em><b>";
+  protected final String TEXT_914 = "</b></em>'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return The cache adapter for this '<em><b>";
+  protected final String TEXT_915 = "</b></em>'." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_916 = " getCacheAdapter()" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_917 = ".getInstance();" + NL + "\t}" + NL;
+  protected final String TEXT_918 = "Helper(";
+  protected final String TEXT_919 = ".addAll(super.";
+  protected final String TEXT_920 = NL + "\t\tsuper.";
+  protected final String TEXT_921 = "())" + NL + "\t\t{" + NL + "\t\t\tfor (";
+  protected final String TEXT_922 = " i = ((";
+  protected final String TEXT_923 = "()).basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_924 = ".add(i.next());" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_925 = "))" + NL + "\t\t{" + NL + "\t\t\tfor (";
+  protected final String TEXT_926 = "();" + NL + "\t\tif (!";
+  protected final String TEXT_927 = ".isEmpty())" + NL + "\t\t{" + NL + "\t\t\tfor (";
+  protected final String TEXT_928 = ").basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_929 = "())" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_930 = ".addAll(";
+  protected final String TEXT_931 = "());" + NL + "\t\t}";
+  protected final String TEXT_932 = "))" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_933 = ".isEmpty())" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_934 = ".add(";
+  protected final String TEXT_935 = NL + "\t\treturn super.isSet";
+  protected final String TEXT_936 = NL + "\t\treturn isSet";
+  protected final String TEXT_937 = "().isEmpty()";
+  protected final String TEXT_938 = "() != null";
+  protected final String TEXT_939 = NL + "\t\t\t|| isSet";
+  protected final String TEXT_940 = NL + "\t\t\t|| !";
+  protected final String TEXT_941 = NL + "\t\t\t|| ";
+  protected final String TEXT_942 = NL + "\t\t\t|| eIsSet(";
+  protected final String TEXT_943 = NL + "\t\treturn false;";
+  protected final String TEXT_944 = NL + "\t\t@SuppressWarnings(\"unchecked\")" + NL + "\t\t";
+  protected final String TEXT_945 = "());" + NL + "\t\treturn ";
+  protected final String TEXT_946 = "();" + NL + "\t\t";
+  protected final String TEXT_947 = ");" + NL + "\t\t}" + NL + "\t\treturn new ";
+  protected final String TEXT_948 = ".size(), ";
+  protected final String TEXT_949 = ".toArray());";
+  protected final String TEXT_950 = NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_951 = NL + "\t\treturn basicSet";
+  protected final String TEXT_952 = ");" + NL + "\t\treturn msgs;";
+  protected final String TEXT_953 = NL + "} //";
 
   public String generate(Object argument)
   {
     final StringBuffer stringBuffer = new StringBuffer();
     
 /**
- * Copyright (c) 2002-2011 IBM Corporation and others.
+ * Copyright (c) 2002-2019 IBM Corporation and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
@@ -990,12 +985,14 @@
  *
  * Contributors:
  *   IBM - Initial API and implementation
+ *   Alexander Fedorov <alexander.fedorov@arsysop.ru> - Bug 546714
  */
 
     final GenClass genClass = (GenClass)((Object[])argument)[0]; final GenPackage genPackage = genClass.getGenPackage(); final GenModel genModel=genPackage.getGenModel();
     final boolean isJDK50 = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50;
     final boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); final boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]); final boolean useInterfaceOverrideAnnotation = genModel.useInterfaceOverrideAnnotation() && !(isInterface && isImplementation);
     final boolean isGWT = genModel.getRuntimePlatform() == GenRuntimePlatform.GWT;
+    final boolean forceDefaultCase = genModel.isSwitchMissingDefaultCase();String indentDefaultCase = forceDefaultCase ? "\t\t" : "";
     final String publicStaticFinalFlag = isImplementation ? "public static final " : "";
     final String singleWildcard = isJDK50 ? "<?>" : "";
     final String negativeOffsetCorrection = genClass.hasOffsetCorrection() ? " - " + genClass.getOffsetCorrectionField(null) : "";
@@ -1716,10 +1713,13 @@
     }
     stringBuffer.append(TEXT_112);
     if (isJDK50) { //Class/getGenFeature.annotations.insert.javajetinc
+    // Check that the annotation wouldn't be emitted also by the base Ecore template (bug 547424). 
+    if (!(useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingGetAccessorOperation(genFeature) && !genFeature.isSuppressedGetVisibility())) {
     if (genClass.getExtendedGenFeatures().contains(genFeature) || (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
     stringBuffer.append(TEXT_124);
     }
     }
+    }
     if (genFeature.isListType() && genModel.isVirtualDelegation()) {
     stringBuffer.append(TEXT_73);
     }
@@ -1815,10 +1815,13 @@
     }
     stringBuffer.append(TEXT_112);
     if (isJDK50) { //Class/setGenFeature.annotations.insert.javajetinc
+    // Check that the annotation wouldn't be emitted also by the base Ecore template (bug 547424). 
+    if (!(useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingSetAccessorOperation(genFeature) && !genFeature.isSuppressedSetVisibility())) {
     if (!genClass.getExtendedGenFeatures().contains(genFeature) && (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
     stringBuffer.append(TEXT_124);
     }
     }
+    }
     { GenOperation setAccessorOperation = genClass.getSetAccessorOperation(genFeature);
     if (isJDK50 && genFeature.hasAPIDeprecatedTag()) {
     stringBuffer.append(TEXT_55);
@@ -2130,49 +2133,41 @@
     stringBuffer.append(TEXT_208);
     }
     stringBuffer.append(TEXT_209);
-    if (!genFeature.hasDocumentation()) {
-    stringBuffer.append(TEXT_210);
-    stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_211);
-    stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_212);
-    }
-    stringBuffer.append(TEXT_213);
     if (genFeature.hasDocumentation()) {
-    stringBuffer.append(TEXT_214);
+    stringBuffer.append(TEXT_210);
     stringBuffer.append(genFeature.getDocumentation(genModel.getIndentation(stringBuffer)));
-    stringBuffer.append(TEXT_215);
-    }
-    stringBuffer.append(TEXT_216);
-    stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_211);
+    }
+    stringBuffer.append(TEXT_212);
+    stringBuffer.append(genFeature.getFormattedName());
+    stringBuffer.append(TEXT_213);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     if (genFeature.getTypeGenEnum() != null) {
-    stringBuffer.append(TEXT_217);
+    stringBuffer.append(TEXT_214);
     stringBuffer.append(genFeature.getTypeGenEnum().getQualifiedName());
     }
     if (genFeature.isUnsettable()) {
     if (!genFeature.isSuppressedIsSetVisibility()) {
-    stringBuffer.append(TEXT_218);
+    stringBuffer.append(TEXT_215);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     }
     if (genFeature.isChangeable() && !genFeature.isSuppressedUnsetVisibility()) {
-    stringBuffer.append(TEXT_219);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     }
     }
     if (genFeature.isChangeable() && !genFeature.isListType() && !genFeature.isSuppressedSetVisibility()) {
-    stringBuffer.append(TEXT_220);
+    stringBuffer.append(TEXT_217);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getRawImportedBoundType());
     stringBuffer.append(TEXT_86);
     }
     if (!genModel.isSuppressEMFMetaData()) {
-    stringBuffer.append(TEXT_217);
+    stringBuffer.append(TEXT_214);
     stringBuffer.append(genPackage.getQualifiedPackageInterfaceName());
     stringBuffer.append(TEXT_20);
     stringBuffer.append(genFeature.getFeatureAccessorName());
@@ -2180,20 +2175,20 @@
     }
     if (genFeature.isBidirectional() && !genFeature.getReverse().getGenClass().isMapEntry()) { GenFeature reverseGenFeature = genFeature.getReverse(); 
     if (!reverseGenFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_217);
+    stringBuffer.append(TEXT_214);
     stringBuffer.append(reverseGenFeature.getGenClass().getRawQualifiedInterfaceName());
     stringBuffer.append(TEXT_15);
     stringBuffer.append(reverseGenFeature.getGetAccessor());
     }
     }
     if (!genModel.isSuppressEMFModelTags()) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genFeature.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;
-    stringBuffer.append(TEXT_221);
+    stringBuffer.append(TEXT_218);
     stringBuffer.append(modelInfo);
     } else {
-    stringBuffer.append(TEXT_222);
+    stringBuffer.append(TEXT_219);
     stringBuffer.append(modelInfo);
     }} if (first) {
-    stringBuffer.append(TEXT_223);
+    stringBuffer.append(TEXT_220);
     }}
     stringBuffer.append(TEXT_112);
     //Class/getGenFeature.javadoc.override.javajetinc
@@ -2205,11 +2200,14 @@
     }
     stringBuffer.append(TEXT_112);
     if (isJDK50) { //Class/getGenFeature.annotations.insert.javajetinc
+    // Check that the annotation wouldn't be emitted also by the base Ecore template (bug 547424). 
+    if (!(useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingGetAccessorOperation(genFeature) && !genFeature.isSuppressedGetVisibility())) {
     if (genClass.getExtendedGenFeatures().contains(genFeature) || (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
     stringBuffer.append(TEXT_124);
     }
     }
     }
+    }
     if (isJDK50 && genFeature.hasAPIDeprecatedTag()) {
     stringBuffer.append(TEXT_55);
     }
@@ -2223,7 +2221,7 @@
     if (genModel.useGenerics() && ((genFeature.isContainer() || genFeature.isResolveProxies()) && !genFeature.isListType() && genFeature.isUncheckedCast(genClass) || genFeature.isListType() && !genFeature.isFeatureMapType() && (genModel.isReflectiveDelegation() || genModel.isVirtualDelegation() || (genModel.isDynamicDelegation() && !genFeature.isVolatile())) || genFeature.isListDataType() && genFeature.hasDelegateFeature() || genFeature.isListType() && genFeature.hasSettingDelegate())) {
     stringBuffer.append(TEXT_73);
     }
-    if (useInterfaceOverrideAnnotation && !genClass.hasCollidingGetAccessorOperation(genFeature) && !genFeature.isSuppressedGetVisibility()) {
+    if (useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingGetAccessorOperation(genFeature) && !genFeature.isSuppressedGetVisibility()) {
     stringBuffer.append(TEXT_124);
     }
     stringBuffer.append(TEXT_131);
@@ -2241,18 +2239,18 @@
     }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_224);
+    stringBuffer.append(TEXT_221);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     if (genClass.hasStaticFeatures()){
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_222);
     }
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_226);
+    stringBuffer.append(TEXT_223);
     stringBuffer.append(!genFeature.isEffectiveSuppressEMFTypes());
     stringBuffer.append(TEXT_86);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_227);
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(genFeature.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
@@ -2268,11 +2266,11 @@
     }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_228);
+    stringBuffer.append(TEXT_225);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_229);
+    stringBuffer.append(TEXT_226);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_227);
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(genFeature.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
@@ -2287,9 +2285,9 @@
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_230);
-    if (!isJDK50 && genFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_227);
+    if (!isJDK50 && genFeature.isPrimitiveType()) {
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(genFeature.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
@@ -2332,18 +2330,18 @@
     stringBuffer.append(genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes() ? ".map()" : "");
     stringBuffer.append(TEXT_6);
     } else if (genFeature.isContainer()) {
-    stringBuffer.append(TEXT_231);
+    stringBuffer.append(TEXT_228);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_232);
+    stringBuffer.append(TEXT_229);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_86);
     if (genFeature.isResolveProxies()) {
-    stringBuffer.append(TEXT_233);
+    stringBuffer.append(TEXT_230);
     } else {
-    stringBuffer.append(TEXT_234);
+    stringBuffer.append(TEXT_231);
     }
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else {
     if (genFeature.isResolveProxies()) {
     if (genModel.isVirtualDelegation()) {
@@ -2364,81 +2362,77 @@
     }
     stringBuffer.append(TEXT_136);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_236);
+    stringBuffer.append(TEXT_233);
     stringBuffer.append(genFeature.getSafeNameAsEObject());
-    stringBuffer.append(TEXT_237);
+    stringBuffer.append(TEXT_234);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_235);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_144);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_239);
+    stringBuffer.append(TEXT_76);
+    stringBuffer.append(genFeature.getAsInternalEObject(genFeature.getSafeName(), false));
+    stringBuffer.append(TEXT_236);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getNonEObjectInternalTypeCast(genClass));
-    stringBuffer.append(TEXT_240);
+    stringBuffer.append(TEXT_237);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_241);
+    stringBuffer.append(TEXT_238);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_242);
+    stringBuffer.append(TEXT_239);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_243);
+    stringBuffer.append(TEXT_240);
     if (genFeature.isEffectiveContains()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
     stringBuffer.append(TEXT_155);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_144);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_76);
+    stringBuffer.append(genFeature.getAsInternalEObject(genFeature.getSafeName(), false));
     stringBuffer.append(TEXT_6);
     if (!genFeature.isBidirectional()) {
+    stringBuffer.append(TEXT_241);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
+    stringBuffer.append(TEXT_242);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_243);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(negativeOffsetCorrection);
     stringBuffer.append(TEXT_244);
+    } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
     stringBuffer.append(TEXT_245);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_246);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(negativeOffsetCorrection);
+    stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
+    stringBuffer.append(reverseOffsetCorrection);
+    stringBuffer.append(TEXT_149);
+    stringBuffer.append(targetClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_247);
-    } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
-    stringBuffer.append(TEXT_244);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
+    }
     stringBuffer.append(TEXT_248);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_249);
-    stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
-    stringBuffer.append(reverseOffsetCorrection);
-    stringBuffer.append(TEXT_149);
-    stringBuffer.append(targetClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_250);
-    }
-    stringBuffer.append(TEXT_251);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_252);
     if (!genFeature.isBidirectional()) {
+    stringBuffer.append(TEXT_250);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_251);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(negativeOffsetCorrection);
+    stringBuffer.append(TEXT_252);
+    } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
     stringBuffer.append(TEXT_253);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_254);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_255);
-    } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
-    stringBuffer.append(TEXT_256);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_257);
     stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
     stringBuffer.append(reverseOffsetCorrection);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(targetClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_258);
+    stringBuffer.append(TEXT_255);
     }
-    stringBuffer.append(TEXT_259);
+    stringBuffer.append(TEXT_256);
     } else if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_260);
+    stringBuffer.append(TEXT_257);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
@@ -2446,23 +2440,23 @@
     stringBuffer.append(TEXT_146);
     }
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_261);
+    stringBuffer.append(TEXT_258);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_263);
+    stringBuffer.append(TEXT_260);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_264);
+    stringBuffer.append(TEXT_261);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_265);
+    stringBuffer.append(TEXT_262);
     }
-    stringBuffer.append(TEXT_266);
+    stringBuffer.append(TEXT_263);
     }
     if (!genFeature.isResolveProxies() && genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_145);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
@@ -2474,21 +2468,21 @@
     stringBuffer.append(TEXT_146);
     } else if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_269);
+    stringBuffer.append(TEXT_266);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_270);
+    stringBuffer.append(TEXT_267);
     stringBuffer.append(genClass.getFlagsField(genFeature));
+    stringBuffer.append(TEXT_265);
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_268);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_271);
-    stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_272);
+    stringBuffer.append(TEXT_269);
     }
     } else {
     stringBuffer.append(TEXT_172);
@@ -2502,62 +2496,60 @@
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_273);
+    stringBuffer.append(TEXT_270);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_274);
+    stringBuffer.append(TEXT_271);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_236);
+    stringBuffer.append(TEXT_233);
     stringBuffer.append(genFeature.getSafeNameAsEObject());
-    stringBuffer.append(TEXT_275);
+    stringBuffer.append(TEXT_272);
     stringBuffer.append(genFeature.getNonEObjectInternalTypeCast(genClass));
-    stringBuffer.append(TEXT_276);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_277);
+    stringBuffer.append(TEXT_273);
+    stringBuffer.append(genFeature.getAsInternalEObject(genFeature.getSafeName(), false));
+    stringBuffer.append(TEXT_274);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_6);
     } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
     if (genFeature.isFeatureMapType()) {
     String featureMapEntryTemplateArgument = isJDK50 ? "<" + genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap") + ".Entry>" : "";
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_278);
+    stringBuffer.append(TEXT_275);
     stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperClass());
-    stringBuffer.append(TEXT_279);
+    stringBuffer.append(TEXT_276);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(TEXT_277);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(TEXT_278);
+    stringBuffer.append(delegateFeature.getAccessorName());
+    stringBuffer.append(TEXT_279);
+    stringBuffer.append(featureMapEntryTemplateArgument);
     stringBuffer.append(TEXT_280);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_262);
+    } else {
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_281);
     stringBuffer.append(delegateFeature.getAccessorName());
     stringBuffer.append(TEXT_282);
     stringBuffer.append(featureMapEntryTemplateArgument);
-    stringBuffer.append(TEXT_283);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_265);
-    } else {
-    stringBuffer.append(TEXT_267);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_284);
-    stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_285);
-    stringBuffer.append(featureMapEntryTemplateArgument);
-    stringBuffer.append(TEXT_283);
+    stringBuffer.append(TEXT_280);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     }
     } else if (genFeature.isListType()) {
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_286);
+    stringBuffer.append(TEXT_283);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_281);
+    stringBuffer.append(TEXT_278);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_287);
+    stringBuffer.append(TEXT_284);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_288);
+    stringBuffer.append(TEXT_285);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_289);
+    stringBuffer.append(TEXT_286);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     }
@@ -2572,15 +2564,15 @@
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_86);
     }
-    stringBuffer.append(TEXT_279);
+    stringBuffer.append(TEXT_276);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_281);
+    stringBuffer.append(TEXT_278);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_290);
+    stringBuffer.append(TEXT_287);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_229);
+    stringBuffer.append(TEXT_226);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_227);
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(genFeature.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
@@ -2595,13 +2587,13 @@
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_86);
     }
-    stringBuffer.append(TEXT_291);
+    stringBuffer.append(TEXT_288);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_292);
+    stringBuffer.append(TEXT_289);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_229);
+    stringBuffer.append(TEXT_226);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_227);
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(genFeature.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
@@ -2620,63 +2612,63 @@
     if (UML2GenModelUtil.isCacheAdapterSupport(genModel) && UML2GenModelUtil.isCached(genOperation)) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
-    stringBuffer.append(TEXT_293);
+    stringBuffer.append(TEXT_290);
     if (genModel.useGenerics() && genOperation.isUncheckedCast()) {
-    stringBuffer.append(TEXT_294);
+    stringBuffer.append(TEXT_291);
     }
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genOperation.getObjectType(genClass));
-    stringBuffer.append(TEXT_295);
+    stringBuffer.append(TEXT_292);
     stringBuffer.append(genOperation.getObjectType(genClass));
+    stringBuffer.append(TEXT_293);
+    if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
+    stringBuffer.append(TEXT_294);
+    }
+    stringBuffer.append(TEXT_295);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_296);
     if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
-    stringBuffer.append(TEXT_297);
+    stringBuffer.append(TEXT_294);
     }
-    stringBuffer.append(TEXT_298);
+    stringBuffer.append(TEXT_295);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_299);
-    if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
     stringBuffer.append(TEXT_297);
-    }
-    stringBuffer.append(TEXT_298);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_300);
     if (genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genOperation.getObjectType(genClass));
     stringBuffer.append(TEXT_93);
     }
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_302);
+    stringBuffer.append(TEXT_299);
     if (genOperation.isPrimitiveType()) {
     stringBuffer.append(TEXT_86);
     }
-    stringBuffer.append(TEXT_303);
+    stringBuffer.append(TEXT_300);
     if (genOperation.isPrimitiveType()) {
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
-    stringBuffer.append(TEXT_304);
+    stringBuffer.append(TEXT_301);
     }
     stringBuffer.append(TEXT_172);
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_305);
+    stringBuffer.append(TEXT_302);
     } else if (UML2GenModelUtil.getImplementedUnionGenFeatures(genClass).contains(genFeature)) {
     if (genFeature.isListType()) {
     if (UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)) {
     if (UML2GenModelUtil.isCacheAdapterSupport(genModel) && UML2GenModelUtil.isCached(genFeature)) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
-    stringBuffer.append(TEXT_306);
+    stringBuffer.append(TEXT_303);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.resource.Resource"));
-    stringBuffer.append(TEXT_307);
+    stringBuffer.append(TEXT_304);
     if (genModel.useGenerics() && genFeature.isUncheckedCast()) {
-    stringBuffer.append(TEXT_294);
+    stringBuffer.append(TEXT_291);
     }
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genFeature.getImportedType(genClass));
@@ -2684,70 +2676,70 @@
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_308);
+    stringBuffer.append(TEXT_305);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_241);
+    stringBuffer.append(TEXT_238);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_309);
+    stringBuffer.append(TEXT_306);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_150);
     stringBuffer.append(genClass.getListConstructor(genFeature));
-    stringBuffer.append(TEXT_310);
+    stringBuffer.append(TEXT_307);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_304);
+    stringBuffer.append(TEXT_301);
     }
-    stringBuffer.append(TEXT_278);
+    stringBuffer.append(TEXT_275);
     stringBuffer.append(genClass.getListConstructor(genFeature));
     stringBuffer.append(TEXT_6);
     } else {
     if (UML2GenModelUtil.isCacheAdapterSupport(genModel) && UML2GenModelUtil.isCached(genFeature)) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
-    stringBuffer.append(TEXT_311);
+    stringBuffer.append(TEXT_308);
     if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
-    stringBuffer.append(TEXT_312);
+    stringBuffer.append(TEXT_309);
     stringBuffer.append(genModel.getImportedName("java.lang.reflect.Method"));
-    stringBuffer.append(TEXT_313);
+    stringBuffer.append(TEXT_310);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_314);
+    stringBuffer.append(TEXT_311);
     stringBuffer.append(genModel.getNonNLS());
     if (genModel.useGenerics() && genFeature.isUncheckedCast()) {
-    stringBuffer.append(TEXT_315);
+    stringBuffer.append(TEXT_312);
     }
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_316);
+    stringBuffer.append(TEXT_313);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_317);
+    stringBuffer.append(TEXT_314);
     stringBuffer.append(genModel.getImportedName("java.util.List"));
-    stringBuffer.append(TEXT_318);
+    stringBuffer.append(TEXT_315);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_319);
+    stringBuffer.append(TEXT_316);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.UniqueEList"));
-    stringBuffer.append(TEXT_320);
+    stringBuffer.append(TEXT_317);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_150);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.UnionEObjectEList"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_318);
     } else {
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     }
-    stringBuffer.append(TEXT_322);
+    stringBuffer.append(TEXT_319);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_323);
+    stringBuffer.append(TEXT_320);
     stringBuffer.append(genModel.getImportedName("java.lang.NoSuchMethodException"));
-    stringBuffer.append(TEXT_324);
+    stringBuffer.append(TEXT_321);
     } else {
     if (genModel.useGenerics() && genFeature.isUncheckedCast()) {
-    stringBuffer.append(TEXT_315);
+    stringBuffer.append(TEXT_312);
     }
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genFeature.getImportedType(genClass));
@@ -2755,66 +2747,66 @@
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_325);
+    stringBuffer.append(TEXT_322);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_241);
+    stringBuffer.append(TEXT_238);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_326);
+    stringBuffer.append(TEXT_323);
     stringBuffer.append(genModel.getImportedName("java.util.List"));
-    stringBuffer.append(TEXT_318);
+    stringBuffer.append(TEXT_315);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_319);
+    stringBuffer.append(TEXT_316);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.UniqueEList"));
-    stringBuffer.append(TEXT_327);
+    stringBuffer.append(TEXT_324);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_150);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.UnionEObjectEList"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_318);
+    } else {
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    }
+    stringBuffer.append(TEXT_325);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_6);
+    }
+    stringBuffer.append(TEXT_326);
+    }
+    stringBuffer.append(TEXT_119);
+    stringBuffer.append(genModel.getImportedName("java.util.List"));
+    stringBuffer.append(TEXT_315);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_316);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.UniqueEList"));
+    stringBuffer.append(TEXT_327);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.UnionEObjectEList"));
+    stringBuffer.append(TEXT_259);
+    if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
+    stringBuffer.append(TEXT_318);
     } else {
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     }
     stringBuffer.append(TEXT_328);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_6);
-    }
-    stringBuffer.append(TEXT_329);
-    }
-    stringBuffer.append(TEXT_119);
-    stringBuffer.append(genModel.getImportedName("java.util.List"));
-    stringBuffer.append(TEXT_318);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_319);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.UniqueEList"));
-    stringBuffer.append(TEXT_330);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.UnionEObjectEList"));
-    stringBuffer.append(TEXT_262);
-    if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
-    stringBuffer.append(TEXT_321);
-    } else {
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    }
-    stringBuffer.append(TEXT_331);
     }
     } else {
     for (GenFeature subsetGenFeature : UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature)) {
     if (!genClass.getExtendedGenFeatures().contains(subsetGenFeature)) {
     if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
-    stringBuffer.append(TEXT_332);
+    stringBuffer.append(TEXT_329);
     stringBuffer.append(subsetGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_333);
+    stringBuffer.append(TEXT_330);
     stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_334);
+    stringBuffer.append(TEXT_331);
     } else {
     if (genClass.isField(subsetGenFeature) && !subsetGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_335);
+    stringBuffer.append(TEXT_332);
     stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
-    stringBuffer.append(TEXT_336);
+    stringBuffer.append(TEXT_333);
     stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_334);
+    stringBuffer.append(TEXT_331);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(subsetGenFeature.getImportedType(genClass));
@@ -2822,31 +2814,31 @@
     stringBuffer.append(subsetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_337);
+    stringBuffer.append(TEXT_334);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_338);
+    stringBuffer.append(TEXT_335);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_304);
+    stringBuffer.append(TEXT_301);
     }
     }
     }
     }
     stringBuffer.append(TEXT_172);
     if (genClass.getExtendedGenFeatures().contains(genFeature)) {
-    stringBuffer.append(TEXT_339);
+    stringBuffer.append(TEXT_336);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_21);
     } else {
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_318);
     }
     stringBuffer.append(TEXT_6);
     }
     } else {
-    stringBuffer.append(TEXT_340);
+    stringBuffer.append(TEXT_337);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_341);
+    stringBuffer.append(TEXT_338);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_342);
+    stringBuffer.append(TEXT_339);
     }
     }
     //Class/getGenFeature.todo.override.javajetinc
@@ -2873,20 +2865,20 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_343);
+    stringBuffer.append(TEXT_340);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_132);
     if (genModel.isDynamicDelegation() && !genFeature.isVolatile()) {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_224);
+    stringBuffer.append(TEXT_221);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     if (genClass.hasStaticFeatures()){
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_222);
     }
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_344);
+    stringBuffer.append(TEXT_341);
     stringBuffer.append(!genFeature.isEffectiveSuppressEMFTypes());
     stringBuffer.append(TEXT_146);
     } else if (genFeature.hasSettingDelegate()) {
@@ -2898,23 +2890,23 @@
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_345);
+    stringBuffer.append(TEXT_342);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_227);
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(genFeature.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
     stringBuffer.append(TEXT_6);
     } else if (genFeature.isContainer()) {
-    stringBuffer.append(TEXT_231);
+    stringBuffer.append(TEXT_228);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_232);
+    stringBuffer.append(TEXT_229);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_346);
+    stringBuffer.append(TEXT_343);
     } else if (!genFeature.isVolatile()) {
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_145);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
@@ -2927,23 +2919,23 @@
     }
     } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_347);
+    stringBuffer.append(TEXT_344);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(TEXT_278);
+    stringBuffer.append(delegateFeature.getAccessorName());
+    stringBuffer.append(TEXT_287);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_345);
+    } else {
+    stringBuffer.append(TEXT_264);
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_281);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_290);
+    stringBuffer.append(TEXT_289);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_348);
-    } else {
-    stringBuffer.append(TEXT_267);
-    stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_284);
-    stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_292);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_348);
+    stringBuffer.append(TEXT_345);
     }
     } else if (genFeature.hasGetterBody()) {
     stringBuffer.append(TEXT_119);
@@ -2955,33 +2947,33 @@
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_305);
+    stringBuffer.append(TEXT_302);
     } else if (UML2GenModelUtil.getImplementedUnionGenFeatures(genClass).contains(genFeature)) {
     for (GenFeature subsetGenFeature : UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature)) {
     if (!genClass.getExtendedGenFeatures().contains(subsetGenFeature)) {
     if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
-    stringBuffer.append(TEXT_332);
+    stringBuffer.append(TEXT_329);
     stringBuffer.append(subsetGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_333);
+    stringBuffer.append(TEXT_330);
     if (subsetGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_349);
+    stringBuffer.append(TEXT_346);
     stringBuffer.append(subsetGenFeature.getAccessorName());
     } else {
     stringBuffer.append(subsetGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_334);
+    stringBuffer.append(TEXT_331);
     } else {
     if (genClass.isField(subsetGenFeature)) {
-    stringBuffer.append(TEXT_335);
+    stringBuffer.append(TEXT_332);
     stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
-    stringBuffer.append(TEXT_336);
+    stringBuffer.append(TEXT_333);
     if (subsetGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_349);
+    stringBuffer.append(TEXT_346);
     stringBuffer.append(subsetGenFeature.getAccessorName());
     } else {
     stringBuffer.append(subsetGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_334);
+    stringBuffer.append(TEXT_331);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(subsetGenFeature.getImportedType(genClass));
@@ -2989,35 +2981,35 @@
     stringBuffer.append(subsetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     if (subsetGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_349);
+    stringBuffer.append(TEXT_346);
     stringBuffer.append(subsetGenFeature.getAccessorName());
     } else {
     stringBuffer.append(subsetGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_350);
+    stringBuffer.append(TEXT_347);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_338);
+    stringBuffer.append(TEXT_335);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_304);
+    stringBuffer.append(TEXT_301);
     }
     }
     }
     }
     stringBuffer.append(TEXT_172);
     if (genClass.getExtendedGenFeatures().contains(genFeature)) {
-    stringBuffer.append(TEXT_351);
+    stringBuffer.append(TEXT_348);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     } else {
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_318);
     }
     stringBuffer.append(TEXT_6);
     } else {
-    stringBuffer.append(TEXT_340);
+    stringBuffer.append(TEXT_337);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_341);
+    stringBuffer.append(TEXT_338);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_352);
+    stringBuffer.append(TEXT_349);
     }
     }
     //Class/basicGetGenFeature.todo.override.javajetinc
@@ -3050,35 +3042,33 @@
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_353);
+    stringBuffer.append(TEXT_350);
     if (genFeature.isContainer()) {
     if (UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature) != genFeature.getTypeGenClassifier()) {
+    stringBuffer.append(TEXT_351);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_352);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_353);
+    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
     stringBuffer.append(TEXT_354);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_355);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
     stringBuffer.append(TEXT_356);
-    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
-    stringBuffer.append(TEXT_357);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_358);
-    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
-    stringBuffer.append(TEXT_359);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     }
-    stringBuffer.append(TEXT_360);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_361);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_357);
+    stringBuffer.append(genFeature.getAsInternalEObject("new" + genFeature.getCapName(), false));
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_362);
+    stringBuffer.append(TEXT_358);
     if (!UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, false, false).isEmpty() || !UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false, true).isEmpty()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.resource.Resource"));
-    stringBuffer.append(TEXT_363);
+    stringBuffer.append(TEXT_359);
     for (GenFeature subsetGenFeature : UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, false, false)) {
     if (subsetGenFeature.isContainer()) {
     stringBuffer.append(TEXT_151);
@@ -3087,103 +3077,101 @@
     stringBuffer.append(subsetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(subsetGenFeature.isBasicGet() ? "basicGet" + subsetGenFeature.getAccessorName() : subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genClass.getImplementingGenModel(subsetGenFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_364);
+    stringBuffer.append(TEXT_360);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_365);
+    stringBuffer.append(TEXT_361);
     stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(TEXT_362);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_236);
+    stringBuffer.append(TEXT_233);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_367);
+    stringBuffer.append(TEXT_363);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_368);
+    stringBuffer.append(TEXT_364);
     stringBuffer.append(subsetGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_369);
+    stringBuffer.append(TEXT_365);
     }
     for (GenFeature supersetGenFeature : UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false, true)) {
-    stringBuffer.append(TEXT_370);
+    stringBuffer.append(TEXT_366);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_371);
+    stringBuffer.append(TEXT_367);
     if (supersetGenFeature.isListType()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(supersetGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(supersetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(supersetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_368);
+    stringBuffer.append(supersetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_369);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_370);
+    stringBuffer.append(supersetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_371);
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_372);
-    stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_373);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_374);
-    stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_375);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_376);
     } else {
     if (supersetGenFeature.isContainer()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(supersetGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(supersetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(supersetGenFeature.isBasicGet() ? "basicGet" + supersetGenFeature.getAccessorName() : supersetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genClass.getImplementingGenModel(supersetGenFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_377);
+    stringBuffer.append(TEXT_373);
     stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_365);
+    stringBuffer.append(TEXT_361);
     stringBuffer.append(genClass.getQualifiedFeatureID(supersetGenFeature));
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_251);
+    stringBuffer.append(TEXT_248);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_378);
+    stringBuffer.append(TEXT_374);
     stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_379);
+    stringBuffer.append(TEXT_375);
     stringBuffer.append(supersetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_157);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_372);
+    }
     stringBuffer.append(TEXT_376);
     }
-    stringBuffer.append(TEXT_380);
+    stringBuffer.append(TEXT_326);
     }
-    stringBuffer.append(TEXT_329);
-    }
-    stringBuffer.append(TEXT_381);
+    stringBuffer.append(TEXT_377);
     } else if (genModel.isDynamicDelegation()) {
     if (UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature) != genFeature.getTypeGenClassifier()) {
+    stringBuffer.append(TEXT_351);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_352);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_353);
+    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
     stringBuffer.append(TEXT_354);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_355);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
     stringBuffer.append(TEXT_356);
-    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
-    stringBuffer.append(TEXT_357);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_358);
-    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
-    stringBuffer.append(TEXT_359);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     }
-    stringBuffer.append(TEXT_382);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_361);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_378);
+    stringBuffer.append(genFeature.getAsInternalEObject("new" + genFeature.getCapName(), false));
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_362);
+    stringBuffer.append(TEXT_358);
     if (!UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, false, false).isEmpty() || !UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false, true).isEmpty()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.resource.Resource"));
-    stringBuffer.append(TEXT_363);
+    stringBuffer.append(TEXT_359);
     for (GenFeature subsetGenFeature : UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, false, false)) {
     if (subsetGenFeature.isContainer()) {
     stringBuffer.append(TEXT_151);
@@ -3192,209 +3180,209 @@
     stringBuffer.append(subsetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(subsetGenFeature.isBasicGet() ? "basicGet" + subsetGenFeature.getAccessorName() : subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genClass.getImplementingGenModel(subsetGenFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_364);
+    stringBuffer.append(TEXT_360);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_365);
+    stringBuffer.append(TEXT_361);
     stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(TEXT_362);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_236);
+    stringBuffer.append(TEXT_233);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_367);
+    stringBuffer.append(TEXT_363);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_368);
+    stringBuffer.append(TEXT_364);
     stringBuffer.append(subsetGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_369);
+    stringBuffer.append(TEXT_365);
     }
     for (GenFeature supersetGenFeature : UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false, true)) {
-    stringBuffer.append(TEXT_370);
+    stringBuffer.append(TEXT_366);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_371);
+    stringBuffer.append(TEXT_367);
     if (supersetGenFeature.isListType()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(supersetGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(supersetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(supersetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_368);
+    stringBuffer.append(supersetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_369);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_370);
+    stringBuffer.append(supersetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_371);
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_372);
-    stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_373);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_374);
-    stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_375);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_376);
     } else {
     if (supersetGenFeature.isContainer()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(supersetGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(supersetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(supersetGenFeature.isBasicGet() ? "basicGet" + supersetGenFeature.getAccessorName() : supersetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genClass.getImplementingGenModel(supersetGenFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_377);
+    stringBuffer.append(TEXT_373);
     stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_365);
+    stringBuffer.append(TEXT_361);
     stringBuffer.append(genClass.getQualifiedFeatureID(supersetGenFeature));
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_251);
+    stringBuffer.append(TEXT_248);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_378);
+    stringBuffer.append(TEXT_374);
     stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_379);
+    stringBuffer.append(TEXT_375);
     stringBuffer.append(supersetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_157);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_372);
+    }
     stringBuffer.append(TEXT_376);
     }
-    stringBuffer.append(TEXT_380);
+    stringBuffer.append(TEXT_326);
     }
-    stringBuffer.append(TEXT_329);
-    }
-    stringBuffer.append(TEXT_381);
+    stringBuffer.append(TEXT_377);
     } else if (!genFeature.isVolatile()) {
     if (UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature) != genFeature.getTypeGenClassifier()) {
+    stringBuffer.append(TEXT_351);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_352);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_353);
+    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
     stringBuffer.append(TEXT_354);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_355);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
     stringBuffer.append(TEXT_356);
-    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
-    stringBuffer.append(TEXT_357);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_358);
-    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
-    stringBuffer.append(TEXT_359);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     }
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_383);
+    stringBuffer.append(TEXT_379);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_384);
+    stringBuffer.append(TEXT_380);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_146);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_235);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_386);
+    stringBuffer.append(TEXT_382);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_387);
+    stringBuffer.append(TEXT_383);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_6);
     }
     if (genFeature.isUnsettable()) {
     if (genModel.isVirtualDelegation()) {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_388);
+    stringBuffer.append(TEXT_384);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_389);
+    stringBuffer.append(TEXT_385);
     }
     } else if (genClass.isESetFlag(genFeature)) {
-    stringBuffer.append(TEXT_390);
+    stringBuffer.append(TEXT_386);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_391);
+    stringBuffer.append(TEXT_387);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_392);
+    stringBuffer.append(TEXT_388);
     if (!genModel.isSuppressNotification()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_120);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_393);
+    stringBuffer.append(TEXT_389);
     }
     } else {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_390);
+    stringBuffer.append(TEXT_386);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_394);
+    stringBuffer.append(TEXT_390);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_395);
+    stringBuffer.append(TEXT_391);
     }
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_396);
+    stringBuffer.append(TEXT_392);
     }
     }
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_397);
+    stringBuffer.append(TEXT_393);
     if (genFeature.isUnsettable()) {
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_398);
+    stringBuffer.append(TEXT_394);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_399);
+    stringBuffer.append(TEXT_395);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_400);
+    stringBuffer.append(TEXT_396);
     stringBuffer.append(genFeature.getCapName());
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
     }
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_402);
+    stringBuffer.append(TEXT_398);
     } else {
-    stringBuffer.append(TEXT_403);
+    stringBuffer.append(TEXT_399);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_404);
+    stringBuffer.append(TEXT_400);
     }
     stringBuffer.append(TEXT_146);
     } else {
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_398);
+    stringBuffer.append(TEXT_394);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_399);
+    stringBuffer.append(TEXT_395);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_405);
+    stringBuffer.append(TEXT_401);
     stringBuffer.append(genFeature.getCapName());
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
     }
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_406);
+    stringBuffer.append(TEXT_402);
     }
     if (!UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, false, false).isEmpty() || !UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false, true).isEmpty()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.resource.Resource"));
-    stringBuffer.append(TEXT_363);
+    stringBuffer.append(TEXT_359);
     for (GenFeature subsetGenFeature : UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, false, false)) {
     if (subsetGenFeature.isContainer()) {
     stringBuffer.append(TEXT_151);
@@ -3403,105 +3391,105 @@
     stringBuffer.append(subsetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(subsetGenFeature.isBasicGet() ? "basicGet" + subsetGenFeature.getAccessorName() : subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genClass.getImplementingGenModel(subsetGenFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_364);
+    stringBuffer.append(TEXT_360);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_365);
+    stringBuffer.append(TEXT_361);
     stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(TEXT_362);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_236);
+    stringBuffer.append(TEXT_233);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_367);
+    stringBuffer.append(TEXT_363);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_368);
+    stringBuffer.append(TEXT_364);
     stringBuffer.append(subsetGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_369);
+    stringBuffer.append(TEXT_365);
     }
     for (GenFeature supersetGenFeature : UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false, true)) {
-    stringBuffer.append(TEXT_370);
+    stringBuffer.append(TEXT_366);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_371);
+    stringBuffer.append(TEXT_367);
     if (supersetGenFeature.isListType()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(supersetGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(supersetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(supersetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_368);
+    stringBuffer.append(supersetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_369);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_370);
+    stringBuffer.append(supersetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_371);
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_372);
-    stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_373);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_374);
-    stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_375);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_376);
     } else {
     if (supersetGenFeature.isContainer()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(supersetGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(supersetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(supersetGenFeature.isBasicGet() ? "basicGet" + supersetGenFeature.getAccessorName() : supersetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genClass.getImplementingGenModel(supersetGenFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_377);
+    stringBuffer.append(TEXT_373);
     stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_365);
+    stringBuffer.append(TEXT_361);
     stringBuffer.append(genClass.getQualifiedFeatureID(supersetGenFeature));
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_251);
+    stringBuffer.append(TEXT_248);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_378);
+    stringBuffer.append(TEXT_374);
     stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_379);
+    stringBuffer.append(TEXT_375);
     stringBuffer.append(supersetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_157);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_372);
+    }
     stringBuffer.append(TEXT_376);
     }
-    stringBuffer.append(TEXT_380);
+    stringBuffer.append(TEXT_326);
     }
-    stringBuffer.append(TEXT_329);
-    }
-    stringBuffer.append(TEXT_381);
+    stringBuffer.append(TEXT_377);
     } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_286);
+    stringBuffer.append(TEXT_283);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_280);
+    stringBuffer.append(TEXT_277);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_281);
+    stringBuffer.append(TEXT_278);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_407);
+    stringBuffer.append(TEXT_403);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_362);
+    stringBuffer.append(TEXT_358);
     } else {
-    stringBuffer.append(TEXT_286);
+    stringBuffer.append(TEXT_283);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_408);
+    stringBuffer.append(TEXT_404);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_409);
+    stringBuffer.append(TEXT_405);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_362);
+    stringBuffer.append(TEXT_358);
     }
     } else {
-    stringBuffer.append(TEXT_410);
+    stringBuffer.append(TEXT_406);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_341);
+    stringBuffer.append(TEXT_338);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_411);
+    stringBuffer.append(TEXT_407);
     //Class/basicSetGenFeature.todo.override.javajetinc
     }
     stringBuffer.append(TEXT_176);
@@ -3509,7 +3497,7 @@
     }
     if (genFeature.isSet() && (isImplementation || !genFeature.isSuppressedSetVisibility())) {
     if (isInterface) { 
-    stringBuffer.append(TEXT_412);
+    stringBuffer.append(TEXT_408);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
     stringBuffer.append(TEXT_15);
     stringBuffer.append(genFeature.getGetAccessor());
@@ -3518,28 +3506,35 @@
     stringBuffer.append(TEXT_62);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
-    stringBuffer.append(TEXT_413);
+    stringBuffer.append(TEXT_409);
+    if (isImplementation) {
+    stringBuffer.append(TEXT_410);
+    stringBuffer.append(genFeature.getCapName());
+    } else {
+    stringBuffer.append(TEXT_411);
+    }
+    stringBuffer.append(TEXT_412);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_211);
+    stringBuffer.append(TEXT_213);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     if (genFeature.isEnumType()) {
-    stringBuffer.append(TEXT_217);
+    stringBuffer.append(TEXT_214);
     stringBuffer.append(genFeature.getTypeGenEnum().getQualifiedName());
     }
     if (genFeature.isUnsettable()) {
     if (!genFeature.isSuppressedIsSetVisibility()) {
-    stringBuffer.append(TEXT_218);
+    stringBuffer.append(TEXT_215);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     }
     if (!genFeature.isSuppressedUnsetVisibility()) {
-    stringBuffer.append(TEXT_219);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     }
     }
-    stringBuffer.append(TEXT_414);
+    stringBuffer.append(TEXT_413);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_21);
     if (genFeature.hasAPITags()) {
@@ -3556,11 +3551,14 @@
     }
     stringBuffer.append(TEXT_112);
     if (isJDK50) { //Class/setGenFeature.annotations.insert.javajetinc
+    // Check that the annotation wouldn't be emitted also by the base Ecore template (bug 547424). 
+    if (!(useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingSetAccessorOperation(genFeature) && !genFeature.isSuppressedSetVisibility())) {
     if (!genClass.getExtendedGenFeatures().contains(genFeature) && (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
     stringBuffer.append(TEXT_124);
     }
     }
     }
+    }
     if (isJDK50 && genFeature.hasAPIDeprecatedTag()) {
     stringBuffer.append(TEXT_55);
     }
@@ -3569,9 +3567,9 @@
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_415);
+    stringBuffer.append(TEXT_414);
     } else { GenOperation setAccessorOperation = genClass.getSetAccessorOperation(genFeature);
-    if (useInterfaceOverrideAnnotation && !genClass.hasCollidingSetAccessorOperation(genFeature) && !genFeature.isSuppressedSetVisibility()) {
+    if (useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingSetAccessorOperation(genFeature) && !genFeature.isSuppressedSetVisibility()) {
     stringBuffer.append(TEXT_124);
     }
     stringBuffer.append(TEXT_159);
@@ -3583,63 +3581,63 @@
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(setAccessorOperation == null ? "new" + genFeature.getCapName() : setAccessorOperation.getGenParameters().get(0).getName());
-    stringBuffer.append(TEXT_416);
+    stringBuffer.append(TEXT_415);
     if (UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature) != genFeature.getTypeGenClassifier()) {
+    stringBuffer.append(TEXT_351);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_352);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_353);
+    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
     stringBuffer.append(TEXT_354);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_355);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
     stringBuffer.append(TEXT_356);
-    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
-    stringBuffer.append(TEXT_357);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_358);
-    stringBuffer.append(UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName());
-    stringBuffer.append(TEXT_359);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     }
     if (genFeature.isStringType() && UML2GenModelUtil.isSafeStrings(genModel)) {
+    stringBuffer.append(TEXT_416);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_383);
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_417);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_387);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_418);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_419);
+    stringBuffer.append(TEXT_418);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_6);
     }
     if (genModel.isDynamicDelegation() && !genFeature.isVolatile()) {
-    stringBuffer.append(TEXT_420);
+    stringBuffer.append(TEXT_419);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     if (genClass.hasStaticFeatures()){
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_222);
     }
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_149);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_93);
     }
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     if (!isJDK50 && genFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_86);
     }
     stringBuffer.append(TEXT_146);
     } else if (genModel.isReflectiveDelegation()) {
-    stringBuffer.append(TEXT_422);
+    stringBuffer.append(TEXT_420);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_149);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_93);
     }
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     if (!isJDK50 && genFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_86);
@@ -3648,13 +3646,13 @@
     } else if (genFeature.hasSettingDelegate()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_423);
+    stringBuffer.append(TEXT_421);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_93);
     }
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     if (!isJDK50 && genFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_86);
@@ -3662,56 +3660,54 @@
     stringBuffer.append(TEXT_146);
     } else if (!genFeature.isVolatile()) {
     if (genFeature.isContainer()) { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
-    stringBuffer.append(TEXT_354);
+    stringBuffer.append(TEXT_351);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_424);
+    stringBuffer.append(TEXT_422);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
+    stringBuffer.append(TEXT_423);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_424);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));
     stringBuffer.append(TEXT_425);
+    stringBuffer.append(genFeature.getEObjectCast());
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_426);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));
-    stringBuffer.append(TEXT_427);
-    stringBuffer.append(genFeature.getEObjectCast());
-    stringBuffer.append(TEXT_421);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_428);
     stringBuffer.append(genModel.getImportedName("java.lang.IllegalArgumentException"));
-    stringBuffer.append(TEXT_429);
+    stringBuffer.append(TEXT_427);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_430);
+    stringBuffer.append(TEXT_428);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_431);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_361);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_432);
+    stringBuffer.append(TEXT_429);
+    stringBuffer.append(genFeature.getAsInternalEObject("new" + genFeature.getCapName(), true));
+    stringBuffer.append(TEXT_254);
     stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
     stringBuffer.append(reverseOffsetCorrection);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(targetClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_433);
+    stringBuffer.append(TEXT_430);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getInternalTypeCast());
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_434);
+    stringBuffer.append(TEXT_431);
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_435);
+    stringBuffer.append(TEXT_432);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_399);
+    stringBuffer.append(TEXT_395);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_265);
+    stringBuffer.append(TEXT_262);
     }
     } else if (genFeature.isBidirectional() || genFeature.isEffectiveContains()) {
     if (genModel.isVirtualDelegation()) {
@@ -3726,130 +3722,122 @@
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_354);
+    stringBuffer.append(TEXT_351);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_378);
+    stringBuffer.append(TEXT_374);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_436);
+    stringBuffer.append(TEXT_433);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_437);
+    stringBuffer.append(TEXT_434);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_438);
+    stringBuffer.append(TEXT_435);
     if (!genFeature.isBidirectional()) {
-    stringBuffer.append(TEXT_439);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_440);
+    stringBuffer.append(TEXT_436);
+    stringBuffer.append(genFeature.getAsInternalEObject(genFeature.getSafeName(), true));
+    stringBuffer.append(TEXT_243);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_441);
+    stringBuffer.append(TEXT_437);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_431);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_361);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_442);
+    stringBuffer.append(TEXT_429);
+    stringBuffer.append(genFeature.getAsInternalEObject("new" + genFeature.getCapName(), true));
+    stringBuffer.append(TEXT_251);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_255);
+    stringBuffer.append(TEXT_252);
     } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
-    stringBuffer.append(TEXT_439);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_443);
+    stringBuffer.append(TEXT_436);
+    stringBuffer.append(genFeature.getAsInternalEObject(genFeature.getSafeName(), true));
+    stringBuffer.append(TEXT_246);
     stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
     stringBuffer.append(reverseOffsetCorrection);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(targetClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_444);
+    stringBuffer.append(TEXT_438);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_431);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_361);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_432);
+    stringBuffer.append(TEXT_429);
+    stringBuffer.append(genFeature.getAsInternalEObject("new" + genFeature.getCapName(), true));
+    stringBuffer.append(TEXT_254);
     stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
     stringBuffer.append(reverseOffsetCorrection);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(targetClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_258);
+    stringBuffer.append(TEXT_255);
     }
-    stringBuffer.append(TEXT_445);
+    stringBuffer.append(TEXT_439);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getInternalTypeCast());
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_434);
+    stringBuffer.append(TEXT_431);
     if (genFeature.isUnsettable()) {
-    stringBuffer.append(TEXT_446);
+    stringBuffer.append(TEXT_440);
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_447);
+    stringBuffer.append(TEXT_441);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_448);
+    stringBuffer.append(TEXT_442);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_146);
     } else if (genClass.isESetFlag(genFeature)) {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_447);
+    stringBuffer.append(TEXT_441);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_391);
+    stringBuffer.append(TEXT_387);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_392);
+    stringBuffer.append(TEXT_388);
     }
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_120);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_393);
+    stringBuffer.append(TEXT_389);
     } else {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_447);
+    stringBuffer.append(TEXT_441);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_394);
+    stringBuffer.append(TEXT_390);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_395);
+    stringBuffer.append(TEXT_391);
     }
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_396);
+    stringBuffer.append(TEXT_392);
     }
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_449);
+    stringBuffer.append(TEXT_443);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_399);
+    stringBuffer.append(TEXT_395);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_450);
+    stringBuffer.append(TEXT_444);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_451);
+    stringBuffer.append(TEXT_445);
     }
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     } else {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_435);
+    stringBuffer.append(TEXT_432);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_399);
+    stringBuffer.append(TEXT_395);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_385);
+    stringBuffer.append(TEXT_381);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_265);
+    stringBuffer.append(TEXT_262);
     }
     }
     } else {
@@ -3858,75 +3846,75 @@
     if (genFeature.isBooleanType()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_235);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_269);
+    stringBuffer.append(TEXT_266);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_235);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_270);
+    stringBuffer.append(TEXT_267);
     stringBuffer.append(genClass.getFlagsField(genFeature));
+    stringBuffer.append(TEXT_265);
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_268);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_271);
-    stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_272);
+    stringBuffer.append(TEXT_269);
     }
     }
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_354);
+    stringBuffer.append(TEXT_351);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_120);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_453);
+    stringBuffer.append(TEXT_447);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_454);
+    stringBuffer.append(TEXT_448);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_455);
+    stringBuffer.append(TEXT_449);
     } else {
-    stringBuffer.append(TEXT_354);
+    stringBuffer.append(TEXT_351);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_456);
+    stringBuffer.append(TEXT_450);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_457);
+    stringBuffer.append(TEXT_451);
     stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_458);
+    stringBuffer.append(TEXT_452);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_459);
+    stringBuffer.append(TEXT_453);
     if (isJDK50) {
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_84);
     } else {
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_460);
+    stringBuffer.append(TEXT_454);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_86);
     }
     stringBuffer.append(TEXT_87);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_461);
+    stringBuffer.append(TEXT_455);
     }
     } else {
     if (!genModel.isVirtualDelegation() || genFeature.isPrimitiveType()) {
     if (!genModel.isSuppressNotification()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_235);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getSafeName());
@@ -3939,21 +3927,21 @@
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_387);
+    stringBuffer.append(TEXT_383);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_419);
+    stringBuffer.append(TEXT_418);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_6);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_387);
+    stringBuffer.append(TEXT_383);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_419);
+    stringBuffer.append(TEXT_418);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_6);
     }
@@ -3965,7 +3953,7 @@
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getInternalTypeCast());
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_6);
     } else {
@@ -3973,15 +3961,15 @@
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getInternalTypeCast());
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_6);
     }
     }
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_383);
+    stringBuffer.append(TEXT_379);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_384);
+    stringBuffer.append(TEXT_380);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
@@ -3991,100 +3979,100 @@
     }
     if (genFeature.isUnsettable()) {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_388);
+    stringBuffer.append(TEXT_384);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_389);
+    stringBuffer.append(TEXT_385);
     } else if (genClass.isESetFlag(genFeature)) {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_390);
+    stringBuffer.append(TEXT_386);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_391);
+    stringBuffer.append(TEXT_387);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_392);
+    stringBuffer.append(TEXT_388);
     }
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_120);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_393);
+    stringBuffer.append(TEXT_389);
     } else {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_390);
+    stringBuffer.append(TEXT_386);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_394);
+    stringBuffer.append(TEXT_390);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_395);
+    stringBuffer.append(TEXT_391);
     }
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_396);
+    stringBuffer.append(TEXT_392);
     }
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_462);
+    stringBuffer.append(TEXT_456);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_399);
+    stringBuffer.append(TEXT_395);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_463);
+    stringBuffer.append(TEXT_457);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_464);
+    stringBuffer.append(TEXT_458);
     stringBuffer.append(genFeature.getCapName());
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
     }
     stringBuffer.append(TEXT_149);
     if (genClass.isFlag(genFeature)) {
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     } else {
     stringBuffer.append(genFeature.getSafeName());
     }
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_402);
+    stringBuffer.append(TEXT_398);
     } else {
-    stringBuffer.append(TEXT_403);
+    stringBuffer.append(TEXT_399);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_404);
+    stringBuffer.append(TEXT_400);
     }
-    stringBuffer.append(TEXT_265);
+    stringBuffer.append(TEXT_262);
     }
     } else {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_462);
+    stringBuffer.append(TEXT_456);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_399);
+    stringBuffer.append(TEXT_395);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_465);
+    stringBuffer.append(TEXT_459);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_464);
+    stringBuffer.append(TEXT_458);
     stringBuffer.append(genFeature.getCapName());
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
     }
     stringBuffer.append(TEXT_149);
     if (genClass.isFlag(genFeature)) {
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     } else {
     stringBuffer.append(genFeature.getSafeName());
     }
-    stringBuffer.append(TEXT_265);
+    stringBuffer.append(TEXT_262);
     }
     }
     }
@@ -4092,7 +4080,7 @@
     if (!UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, false, false).isEmpty() || !UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false, true).isEmpty()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.resource.Resource"));
-    stringBuffer.append(TEXT_363);
+    stringBuffer.append(TEXT_359);
     for (GenFeature subsetGenFeature : UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, false, false)) {
     if (subsetGenFeature.isContainer()) {
     stringBuffer.append(TEXT_151);
@@ -4101,111 +4089,111 @@
     stringBuffer.append(subsetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(subsetGenFeature.isBasicGet() ? "basicGet" + subsetGenFeature.getAccessorName() : subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genClass.getImplementingGenModel(subsetGenFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_364);
+    stringBuffer.append(TEXT_360);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_365);
+    stringBuffer.append(TEXT_361);
     stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(TEXT_362);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_236);
+    stringBuffer.append(TEXT_233);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_367);
+    stringBuffer.append(TEXT_363);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_368);
+    stringBuffer.append(TEXT_364);
     stringBuffer.append(subsetGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_369);
+    stringBuffer.append(TEXT_365);
     }
     for (GenFeature supersetGenFeature : UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false, true)) {
-    stringBuffer.append(TEXT_370);
+    stringBuffer.append(TEXT_366);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_371);
+    stringBuffer.append(TEXT_367);
     if (supersetGenFeature.isListType()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(supersetGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(supersetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(supersetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_368);
+    stringBuffer.append(supersetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_369);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_370);
+    stringBuffer.append(supersetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_371);
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_372);
-    stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_373);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_374);
-    stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_375);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_376);
     } else {
     if (supersetGenFeature.isContainer()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(supersetGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(supersetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(supersetGenFeature.isBasicGet() ? "basicGet" + supersetGenFeature.getAccessorName() : supersetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genClass.getImplementingGenModel(supersetGenFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_377);
+    stringBuffer.append(TEXT_373);
     stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_365);
+    stringBuffer.append(TEXT_361);
     stringBuffer.append(genClass.getQualifiedFeatureID(supersetGenFeature));
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_251);
+    stringBuffer.append(TEXT_248);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_378);
+    stringBuffer.append(TEXT_374);
     stringBuffer.append(supersetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_379);
+    stringBuffer.append(TEXT_375);
     stringBuffer.append(supersetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_157);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_372);
+    }
     stringBuffer.append(TEXT_376);
     }
-    stringBuffer.append(TEXT_380);
-    }
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     }
     }
     } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_466);
+    stringBuffer.append(TEXT_460);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_280);
+    stringBuffer.append(TEXT_277);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_281);
+    stringBuffer.append(TEXT_278);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_467);
+    stringBuffer.append(TEXT_461);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_149);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_93);
     }
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     if (!isJDK50 && genFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_86);
     }
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_466);
+    stringBuffer.append(TEXT_460);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_408);
+    stringBuffer.append(TEXT_404);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_468);
+    stringBuffer.append(TEXT_462);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_149);
     if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_93);
     }
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     if (!isJDK50 && genFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_86);
@@ -4222,15 +4210,15 @@
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genOperation.getParameterNames(", "));
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_469);
+    stringBuffer.append(TEXT_463);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_341);
+    stringBuffer.append(TEXT_338);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_342);
+    stringBuffer.append(TEXT_339);
     }
     }
     //Class/setGenFeature.todo.override.javajetinc
@@ -4256,33 +4244,32 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_470);
+    stringBuffer.append(TEXT_464);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_353);
+    stringBuffer.append(TEXT_350);
     if (genModel.isDynamicDelegation()) {
-    stringBuffer.append(TEXT_471);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
+    stringBuffer.append(TEXT_465);
+    stringBuffer.append(genFeature.getAsInternalEObject("", false));
     if (genFeature.isResolveProxies()) {
-    stringBuffer.append(TEXT_349);
+    stringBuffer.append(TEXT_346);
     stringBuffer.append(genFeature.getAccessorName());
     } else {
     stringBuffer.append(genFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_472);
+    stringBuffer.append(TEXT_466);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_362);
+    stringBuffer.append(TEXT_358);
     } else if (!genFeature.isVolatile()) {
     if (genModel.isVirtualDelegation()) {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_473);
+    stringBuffer.append(TEXT_467);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_76);
     }
-    stringBuffer.append(TEXT_474);
+    stringBuffer.append(TEXT_468);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_146);
@@ -4290,7 +4277,7 @@
     if (!genModel.isSuppressNotification()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_235);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getSafeName());
@@ -4298,76 +4285,76 @@
     }
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_475);
+    stringBuffer.append(TEXT_469);
     }
     if (genModel.isVirtualDelegation()) {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_388);
+    stringBuffer.append(TEXT_384);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_476);
+    stringBuffer.append(TEXT_470);
     }
     } else if (genClass.isESetFlag(genFeature)) {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_390);
+    stringBuffer.append(TEXT_386);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_391);
+    stringBuffer.append(TEXT_387);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_392);
+    stringBuffer.append(TEXT_388);
     }
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_454);
+    stringBuffer.append(TEXT_448);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_393);
+    stringBuffer.append(TEXT_389);
     } else {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_390);
+    stringBuffer.append(TEXT_386);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_394);
+    stringBuffer.append(TEXT_390);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_395);
+    stringBuffer.append(TEXT_391);
     }
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_477);
+    stringBuffer.append(TEXT_471);
     }
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_478);
+    stringBuffer.append(TEXT_472);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_398);
+    stringBuffer.append(TEXT_394);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_479);
+    stringBuffer.append(TEXT_473);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_480);
+    stringBuffer.append(TEXT_474);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_481);
+    stringBuffer.append(TEXT_475);
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
     }
-    stringBuffer.append(TEXT_482);
+    stringBuffer.append(TEXT_476);
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_402);
+    stringBuffer.append(TEXT_398);
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_404);
+    stringBuffer.append(TEXT_400);
     }
-    stringBuffer.append(TEXT_483);
+    stringBuffer.append(TEXT_477);
     }
     } else {
-    stringBuffer.append(TEXT_484);
+    stringBuffer.append(TEXT_478);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_341);
+    stringBuffer.append(TEXT_338);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_411);
+    stringBuffer.append(TEXT_407);
     //Class/basicUnsetGenFeature.todo.override.javajetinc
     }
     stringBuffer.append(TEXT_176);
@@ -4375,7 +4362,7 @@
     }
     if (genFeature.isUnset() && (isImplementation || !genFeature.isSuppressedUnsetVisibility())) {
     if (isInterface) {
-    stringBuffer.append(TEXT_485);
+    stringBuffer.append(TEXT_479);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
     stringBuffer.append(TEXT_15);
     stringBuffer.append(genFeature.getGetAccessor());
@@ -4384,17 +4371,17 @@
     stringBuffer.append(TEXT_62);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
-    stringBuffer.append(TEXT_486);
+    stringBuffer.append(TEXT_209);
     if (!genFeature.isSuppressedIsSetVisibility()) {
-    stringBuffer.append(TEXT_218);
+    stringBuffer.append(TEXT_215);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     }
-    stringBuffer.append(TEXT_414);
+    stringBuffer.append(TEXT_413);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_21);
     if (!genFeature.isListType() && !genFeature.isSuppressedSetVisibility()) {
-    stringBuffer.append(TEXT_220);
+    stringBuffer.append(TEXT_217);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getRawImportedBoundType());
@@ -4423,36 +4410,36 @@
     stringBuffer.append(TEXT_55);
     }
     if (!isImplementation) {
-    stringBuffer.append(TEXT_487);
+    stringBuffer.append(TEXT_480);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_163);
     } else {
-    if (useInterfaceOverrideAnnotation && !genClass.hasCollidingUnsetAccessorOperation(genFeature) && !genFeature.isSuppressedUnsetVisibility()) {
+    if (useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingUnsetAccessorOperation(genFeature) && !genFeature.isSuppressedUnsetVisibility()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_488);
+    stringBuffer.append(TEXT_481);
     stringBuffer.append(genFeature.getAccessorName());
     if (genClass.hasCollidingUnsetAccessorOperation(genFeature)) {
     stringBuffer.append(TEXT_143);
     }
     stringBuffer.append(TEXT_132);
     if (genModel.isDynamicDelegation() && !genFeature.isVolatile()) {
-    stringBuffer.append(TEXT_489);
+    stringBuffer.append(TEXT_482);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     if (genClass.hasStaticFeatures()){
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_222);
     }
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else if (genModel.isReflectiveDelegation()) {
-    stringBuffer.append(TEXT_490);
+    stringBuffer.append(TEXT_483);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else if (genFeature.hasSettingDelegate()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_491);
+    stringBuffer.append(TEXT_484);
     } else if (!genFeature.isVolatile()) {
     if (genFeature.isListType()) {
     if (genModel.isVirtualDelegation()) {
@@ -4469,13 +4456,13 @@
     }
     stringBuffer.append(TEXT_136);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_492);
+    stringBuffer.append(TEXT_485);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_493);
+    stringBuffer.append(TEXT_486);
     stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_494);
+    stringBuffer.append(TEXT_487);
     } else if (genFeature.isBidirectional() || genFeature.isEffectiveContains()) {
     if (genModel.isVirtualDelegation()) {
     stringBuffer.append(TEXT_119);
@@ -4491,113 +4478,109 @@
     }
     stringBuffer.append(TEXT_136);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_495);
+    stringBuffer.append(TEXT_488);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_496);
+    stringBuffer.append(TEXT_489);
     if (!genFeature.isBidirectional()) {
-    stringBuffer.append(TEXT_497);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_440);
+    stringBuffer.append(TEXT_490);
+    stringBuffer.append(genFeature.getAsInternalEObject(genFeature.getSafeName(), true));
+    stringBuffer.append(TEXT_243);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_255);
+    stringBuffer.append(TEXT_252);
     } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
-    stringBuffer.append(TEXT_497);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_443);
+    stringBuffer.append(TEXT_490);
+    stringBuffer.append(genFeature.getAsInternalEObject(genFeature.getSafeName(), true));
+    stringBuffer.append(TEXT_246);
     stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
     stringBuffer.append(reverseOffsetCorrection);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(targetClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_258);
+    stringBuffer.append(TEXT_255);
     }
-    stringBuffer.append(TEXT_498);
+    stringBuffer.append(TEXT_491);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_499);
+    stringBuffer.append(TEXT_492);
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_447);
+    stringBuffer.append(TEXT_441);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_448);
+    stringBuffer.append(TEXT_442);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_146);
     } else if (genClass.isESetFlag(genFeature)) {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_447);
+    stringBuffer.append(TEXT_441);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_391);
+    stringBuffer.append(TEXT_387);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_392);
+    stringBuffer.append(TEXT_388);
     }
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_454);
+    stringBuffer.append(TEXT_448);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_393);
+    stringBuffer.append(TEXT_389);
     } else {
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_447);
+    stringBuffer.append(TEXT_441);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_394);
+    stringBuffer.append(TEXT_390);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_395);
+    stringBuffer.append(TEXT_391);
     }
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_477);
+    stringBuffer.append(TEXT_471);
     }
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_449);
+    stringBuffer.append(TEXT_443);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_479);
+    stringBuffer.append(TEXT_473);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_500);
+    stringBuffer.append(TEXT_493);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_451);
+    stringBuffer.append(TEXT_445);
     }
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     } else {
     if (genClass.isFlag(genFeature)) {
     if (!genModel.isSuppressNotification()) {
     if (genFeature.isBooleanType()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_235);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_269);
+    stringBuffer.append(TEXT_266);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_235);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_270);
+    stringBuffer.append(TEXT_267);
     stringBuffer.append(genClass.getFlagsField(genFeature));
+    stringBuffer.append(TEXT_265);
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_268);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_271);
-    stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_272);
+    stringBuffer.append(TEXT_269);
     }
     }
     } else if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_383);
+    stringBuffer.append(TEXT_379);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_501);
+    stringBuffer.append(TEXT_494);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_146);
@@ -4605,7 +4588,7 @@
     if (!genModel.isSuppressNotification()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_235);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genFeature.getSafeName());
@@ -4614,93 +4597,93 @@
     }
     if (!genModel.isSuppressNotification()) {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_388);
+    stringBuffer.append(TEXT_384);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_476);
+    stringBuffer.append(TEXT_470);
     } else if (genClass.isESetFlag(genFeature)) {
-    stringBuffer.append(TEXT_390);
+    stringBuffer.append(TEXT_386);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_391);
+    stringBuffer.append(TEXT_387);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_392);
+    stringBuffer.append(TEXT_388);
     } else {
-    stringBuffer.append(TEXT_390);
+    stringBuffer.append(TEXT_386);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_394);
+    stringBuffer.append(TEXT_390);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_395);
+    stringBuffer.append(TEXT_391);
     }
     }
     if (genFeature.isReferenceType()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_475);
+    stringBuffer.append(TEXT_469);
     if (!genModel.isVirtualDelegation()) {
     if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_454);
+    stringBuffer.append(TEXT_448);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_393);
+    stringBuffer.append(TEXT_389);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_477);
+    stringBuffer.append(TEXT_471);
     }
     }
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_462);
+    stringBuffer.append(TEXT_456);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_479);
+    stringBuffer.append(TEXT_473);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_480);
+    stringBuffer.append(TEXT_474);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_481);
+    stringBuffer.append(TEXT_475);
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
     }
-    stringBuffer.append(TEXT_482);
+    stringBuffer.append(TEXT_476);
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_402);
+    stringBuffer.append(TEXT_398);
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_404);
+    stringBuffer.append(TEXT_400);
     }
-    stringBuffer.append(TEXT_265);
+    stringBuffer.append(TEXT_262);
     }
     } else {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
     stringBuffer.append(TEXT_136);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_120);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_453);
+    stringBuffer.append(TEXT_447);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_454);
+    stringBuffer.append(TEXT_448);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_455);
+    stringBuffer.append(TEXT_449);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_76);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_458);
+    stringBuffer.append(TEXT_452);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_459);
+    stringBuffer.append(TEXT_453);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_502);
+    stringBuffer.append(TEXT_495);
     }
     } else if (!genModel.isVirtualDelegation() || genFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_119);
@@ -4713,64 +4696,64 @@
     if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_454);
+    stringBuffer.append(TEXT_448);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_393);
+    stringBuffer.append(TEXT_389);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_477);
+    stringBuffer.append(TEXT_471);
     }
     }
     if (!genModel.isSuppressNotification()) {
-    stringBuffer.append(TEXT_462);
+    stringBuffer.append(TEXT_456);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
-    stringBuffer.append(TEXT_479);
+    stringBuffer.append(TEXT_473);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_480);
+    stringBuffer.append(TEXT_474);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_503);
+    stringBuffer.append(TEXT_496);
     stringBuffer.append(genFeature.getEDefault());
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
     }
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_149);
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_402);
+    stringBuffer.append(TEXT_398);
     } else {
-    stringBuffer.append(TEXT_401);
+    stringBuffer.append(TEXT_397);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_404);
+    stringBuffer.append(TEXT_400);
     }
-    stringBuffer.append(TEXT_265);
+    stringBuffer.append(TEXT_262);
     }
     }
     }
     } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_466);
+    stringBuffer.append(TEXT_460);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_280);
+    stringBuffer.append(TEXT_277);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_281);
+    stringBuffer.append(TEXT_278);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_504);
+    stringBuffer.append(TEXT_497);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_466);
+    stringBuffer.append(TEXT_460);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_408);
+    stringBuffer.append(TEXT_404);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_505);
+    stringBuffer.append(TEXT_498);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     }
@@ -4784,13 +4767,13 @@
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_305);
+    stringBuffer.append(TEXT_302);
     } else {
-    stringBuffer.append(TEXT_506);
+    stringBuffer.append(TEXT_499);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_341);
+    stringBuffer.append(TEXT_338);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_342);
+    stringBuffer.append(TEXT_339);
     }
     }
     //Class/unsetGenFeature.todo.override.javajetinc
@@ -4801,7 +4784,7 @@
     }
     if (genFeature.isIsSet() && (isImplementation || !genFeature.isSuppressedIsSetVisibility())) {
     if (isInterface) {
-    stringBuffer.append(TEXT_507);
+    stringBuffer.append(TEXT_500);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
     stringBuffer.append(TEXT_15);
     stringBuffer.append(genFeature.getGetAccessor());
@@ -4809,22 +4792,22 @@
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_62);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_508);
-    stringBuffer.append(TEXT_509);
+    stringBuffer.append(TEXT_501);
+    stringBuffer.append(TEXT_502);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_211);
+    stringBuffer.append(TEXT_213);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_508);
+    stringBuffer.append(TEXT_501);
     if (genFeature.isChangeable() && !genFeature.isSuppressedUnsetVisibility()) {
-    stringBuffer.append(TEXT_219);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     }
-    stringBuffer.append(TEXT_414);
+    stringBuffer.append(TEXT_413);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_21);
     if (!genFeature.isListType() && genFeature.isChangeable() && !genFeature.isSuppressedSetVisibility()) {
-    stringBuffer.append(TEXT_220);
+    stringBuffer.append(TEXT_217);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getRawImportedBoundType());
@@ -4853,36 +4836,36 @@
     stringBuffer.append(TEXT_55);
     }
     if (!isImplementation) {
-    stringBuffer.append(TEXT_510);
+    stringBuffer.append(TEXT_503);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_163);
     } else {
-    if (useInterfaceOverrideAnnotation && !genClass.hasCollidingIsSetAccessorOperation(genFeature) && !genFeature.isSuppressedIsSetVisibility()) {
+    if (useInterfaceOverrideAnnotation  && !genClass.isMapEntry() && !genClass.hasCollidingIsSetAccessorOperation(genFeature) && !genFeature.isSuppressedIsSetVisibility()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_511);
+    stringBuffer.append(TEXT_504);
     stringBuffer.append(genFeature.getAccessorName());
     if (genClass.hasCollidingIsSetAccessorOperation(genFeature)) {
     stringBuffer.append(TEXT_143);
     }
     stringBuffer.append(TEXT_132);
     if (genModel.isDynamicDelegation() && !genFeature.isVolatile()) {
-    stringBuffer.append(TEXT_512);
+    stringBuffer.append(TEXT_505);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     if (genClass.hasStaticFeatures()){
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_222);
     }
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else if (genModel.isReflectiveDelegation()) {
-    stringBuffer.append(TEXT_513);
+    stringBuffer.append(TEXT_506);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else if (genFeature.hasSettingDelegate()) {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_514);
+    stringBuffer.append(TEXT_507);
     } else if (!genFeature.isVolatile()) {
     if (genFeature.isListType()) {
     if (genModel.isVirtualDelegation()) {
@@ -4899,48 +4882,48 @@
     }
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_515);
+    stringBuffer.append(TEXT_508);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_493);
+    stringBuffer.append(TEXT_486);
     stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_516);
+    stringBuffer.append(TEXT_509);
     } else {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_517);
+    stringBuffer.append(TEXT_510);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_146);
     } else if (genClass.isESetFlag(genFeature)) {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_392);
+    stringBuffer.append(TEXT_388);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_395);
+    stringBuffer.append(TEXT_391);
     }
     }
     } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_518);
+    stringBuffer.append(TEXT_511);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_280);
+    stringBuffer.append(TEXT_277);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_281);
+    stringBuffer.append(TEXT_278);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_519);
+    stringBuffer.append(TEXT_512);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_518);
+    stringBuffer.append(TEXT_511);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_408);
+    stringBuffer.append(TEXT_404);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_520);
+    stringBuffer.append(TEXT_513);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     }
@@ -4954,13 +4937,13 @@
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_305);
+    stringBuffer.append(TEXT_302);
     } else {
-    stringBuffer.append(TEXT_521);
+    stringBuffer.append(TEXT_514);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_341);
+    stringBuffer.append(TEXT_338);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_522);
+    stringBuffer.append(TEXT_515);
     }
     }
     //Class/isSetGenFeature.todo.override.javajetinc
@@ -4971,7 +4954,7 @@
     }
     if (isImplementation && genFeature.isListType()) {
     if (!UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)).isEmpty()) {
-    stringBuffer.append(TEXT_523);
+    stringBuffer.append(TEXT_516);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_51);
     stringBuffer.append(genFeature.getFormattedName());
@@ -4979,14 +4962,14 @@
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_63);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_524);
+    stringBuffer.append(TEXT_517);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_525);
+    stringBuffer.append(TEXT_518);
     stringBuffer.append(UML2GenModelUtil.getSubsetFeatureIDArray(genClass, genFeature, UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)));
     stringBuffer.append(TEXT_45);
     }
     if (!UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false).isEmpty()) {
-    stringBuffer.append(TEXT_526);
+    stringBuffer.append(TEXT_519);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_51);
     stringBuffer.append(genFeature.getFormattedName());
@@ -4994,9 +4977,9 @@
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_63);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_524);
+    stringBuffer.append(TEXT_517);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_527);
+    stringBuffer.append(TEXT_520);
     stringBuffer.append(UML2GenModelUtil.getSupersetFeatureIDArray(genClass, genFeature));
     stringBuffer.append(TEXT_45);
     }
@@ -5005,24 +4988,24 @@
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     if (isInterface) {
     if (!genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_528);
+    stringBuffer.append(TEXT_521);
     if (!keyGenFeatures.isEmpty()) {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_530);
+    stringBuffer.append(TEXT_523);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_531);
+    stringBuffer.append(TEXT_524);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     } else {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(genFeature.getType(genClass));
-    stringBuffer.append(TEXT_530);
+    stringBuffer.append(TEXT_523);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_532);
+    stringBuffer.append(TEXT_525);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
@@ -5030,40 +5013,40 @@
     }
     } else {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_533);
+    stringBuffer.append(TEXT_526);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     } else {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(genFeature.getType(genClass));
-    stringBuffer.append(TEXT_534);
+    stringBuffer.append(TEXT_527);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     }
     }
-    stringBuffer.append(TEXT_486);
+    stringBuffer.append(TEXT_209);
     for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_536);
+    stringBuffer.append(TEXT_529);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_537);
+    stringBuffer.append(TEXT_530);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_538);
+    stringBuffer.append(TEXT_531);
     }
-    stringBuffer.append(TEXT_539);
+    stringBuffer.append(TEXT_532);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_540);
+    stringBuffer.append(TEXT_533);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_541);
+    stringBuffer.append(TEXT_534);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_542);
+    stringBuffer.append(TEXT_535);
     }
     } else {
     stringBuffer.append(TEXT_128);
@@ -5072,7 +5055,7 @@
     if (!genFeature.isSuppressedGetVisibility()) {
     stringBuffer.append(TEXT_162);
     stringBuffer.append(genFeature.getListItemType(genClass));
-    stringBuffer.append(TEXT_543);
+    stringBuffer.append(TEXT_536);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     if (!keyGenFeatures.isEmpty()) {
@@ -5080,7 +5063,7 @@
     stringBuffer.append(TEXT_149);
     }
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_544);
+    stringBuffer.append(TEXT_537);
     }
     } else { int index = 0;
     if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
@@ -5088,7 +5071,7 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genFeature.getListItemType(genClass));
-    stringBuffer.append(TEXT_543);
+    stringBuffer.append(TEXT_536);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     if (!keyGenFeatures.isEmpty()) {
@@ -5096,21 +5079,21 @@
     stringBuffer.append(TEXT_149);
     }
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_545);
+    stringBuffer.append(TEXT_538);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
     stringBuffer.append(TEXT_155);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_546);
+    stringBuffer.append(TEXT_539);
     if (genFeature.isListType()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_547);
+    stringBuffer.append(TEXT_540);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_548);
+    stringBuffer.append(TEXT_541);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_157);
     stringBuffer.append(genFeature.getCapName());
@@ -5119,50 +5102,50 @@
     for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {
     if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_549);
+    stringBuffer.append(TEXT_542);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_550);
+    stringBuffer.append(TEXT_543);
     for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
-    stringBuffer.append(TEXT_549);
+    stringBuffer.append(TEXT_542);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_551);
+    stringBuffer.append(TEXT_544);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_174);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_552);
+    stringBuffer.append(TEXT_545);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_553);
+    stringBuffer.append(TEXT_546);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_554);
+    stringBuffer.append(TEXT_547);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_555);
+    stringBuffer.append(TEXT_548);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_556);
+    stringBuffer.append(TEXT_549);
     index++;}
-    stringBuffer.append(TEXT_557);
+    stringBuffer.append(TEXT_550);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_558);
+    stringBuffer.append(TEXT_551);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_559);
+    stringBuffer.append(TEXT_552);
     stringBuffer.append(keyGenFeature.getCapName());
     stringBuffer.append(TEXT_93);
     for (int n = nestedKeyGenFeatures.size(); n > 0; n--) { GenFeature nestedKeyGenFeature = nestedKeyGenFeatures.get(nestedKeyGenFeatures.size() - n);
     if (first) { first = false; } else {
     stringBuffer.append(TEXT_149);
     }
-    stringBuffer.append(TEXT_560);
+    stringBuffer.append(TEXT_553);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_561);
+    stringBuffer.append(TEXT_554);
     stringBuffer.append(nestedKeyGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_562);
+    stringBuffer.append(TEXT_555);
     }
-    stringBuffer.append(TEXT_563);
+    stringBuffer.append(TEXT_556);
     } else {
-    stringBuffer.append(TEXT_417);
+    stringBuffer.append(TEXT_416);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_559);
+    stringBuffer.append(TEXT_552);
     stringBuffer.append(keyGenFeature.getCapName());
     stringBuffer.append(TEXT_93);
     for (int n = 0; n < nestedKeyGenFeatures.size(); n++) {
@@ -5176,19 +5159,19 @@
     } else {
     stringBuffer.append(TEXT_136);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_438);
+    stringBuffer.append(TEXT_435);
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_564);
+    stringBuffer.append(TEXT_557);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_565);
+    stringBuffer.append(TEXT_558);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_564);
+    stringBuffer.append(TEXT_557);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_566);
+    stringBuffer.append(TEXT_559);
     stringBuffer.append(keyGenFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
@@ -5196,7 +5179,7 @@
     }
     index++;}
     }
-    stringBuffer.append(TEXT_567);
+    stringBuffer.append(TEXT_560);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_126);
     }
@@ -5204,24 +5187,24 @@
     if (genClass.getChildrenClasses(genFeature).size() == 1 || !genFeature.getTypeGenClass().isAbstract()) { GenClass childGenClass = genClass.getChildrenClasses(genFeature).get(0);
     if (isInterface) {
     if (!genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_528);
+    stringBuffer.append(TEXT_521);
     if (!keyGenFeatures.isEmpty()) {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_530);
+    stringBuffer.append(TEXT_523);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_531);
+    stringBuffer.append(TEXT_524);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     } else {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_568);
+    stringBuffer.append(TEXT_561);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_532);
+    stringBuffer.append(TEXT_525);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
@@ -5229,38 +5212,38 @@
     }
     } else {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_533);
+    stringBuffer.append(TEXT_526);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     } else {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_534);
+    stringBuffer.append(TEXT_527);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     }
     }
-    stringBuffer.append(TEXT_486);
+    stringBuffer.append(TEXT_209);
     for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_536);
+    stringBuffer.append(TEXT_529);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_537);
+    stringBuffer.append(TEXT_530);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_538);
+    stringBuffer.append(TEXT_531);
     }
-    stringBuffer.append(TEXT_569);
+    stringBuffer.append(TEXT_562);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_541);
+    stringBuffer.append(TEXT_534);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_542);
+    stringBuffer.append(TEXT_535);
     }
     } else {
     stringBuffer.append(TEXT_128);
@@ -5269,7 +5252,7 @@
     if (!genFeature.isSuppressedGetVisibility()) {
     stringBuffer.append(TEXT_162);
     stringBuffer.append(genFeature.getListItemType(genClass));
-    stringBuffer.append(TEXT_543);
+    stringBuffer.append(TEXT_536);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
@@ -5281,13 +5264,13 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genFeature.getListItemType(genClass));
-    stringBuffer.append(TEXT_543);
+    stringBuffer.append(TEXT_536);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
-    stringBuffer.append(TEXT_416);
+    stringBuffer.append(TEXT_415);
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_570);
+    stringBuffer.append(TEXT_563);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     if (!keyGenFeatures.isEmpty()) {
@@ -5303,17 +5286,17 @@
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_571);
+    stringBuffer.append(TEXT_564);
     stringBuffer.append(genFeature.getTypeGenClass().getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_146);
     if (genFeature.isListType()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_547);
+    stringBuffer.append(TEXT_540);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_548);
+    stringBuffer.append(TEXT_541);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_157);
     stringBuffer.append(genFeature.getCapName());
@@ -5322,50 +5305,50 @@
     for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {
     if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_549);
+    stringBuffer.append(TEXT_542);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_550);
+    stringBuffer.append(TEXT_543);
     for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
-    stringBuffer.append(TEXT_549);
+    stringBuffer.append(TEXT_542);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_551);
+    stringBuffer.append(TEXT_544);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_174);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_552);
+    stringBuffer.append(TEXT_545);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_553);
+    stringBuffer.append(TEXT_546);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_554);
+    stringBuffer.append(TEXT_547);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_555);
+    stringBuffer.append(TEXT_548);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_556);
+    stringBuffer.append(TEXT_549);
     index++;}
-    stringBuffer.append(TEXT_557);
+    stringBuffer.append(TEXT_550);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_558);
+    stringBuffer.append(TEXT_551);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_559);
+    stringBuffer.append(TEXT_552);
     stringBuffer.append(keyGenFeature.getCapName());
     stringBuffer.append(TEXT_93);
     for (int n = nestedKeyGenFeatures.size(); n > 0; n--) { GenFeature nestedKeyGenFeature = nestedKeyGenFeatures.get(nestedKeyGenFeatures.size() - n);
     if (first) { first = false; } else {
     stringBuffer.append(TEXT_149);
     }
-    stringBuffer.append(TEXT_560);
+    stringBuffer.append(TEXT_553);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_561);
+    stringBuffer.append(TEXT_554);
     stringBuffer.append(nestedKeyGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_562);
+    stringBuffer.append(TEXT_555);
     }
-    stringBuffer.append(TEXT_563);
+    stringBuffer.append(TEXT_556);
     } else {
-    stringBuffer.append(TEXT_417);
+    stringBuffer.append(TEXT_416);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_559);
+    stringBuffer.append(TEXT_552);
     stringBuffer.append(keyGenFeature.getCapName());
     stringBuffer.append(TEXT_93);
     for (int n = 0; n < nestedKeyGenFeatures.size(); n++) {
@@ -5379,19 +5362,19 @@
     } else {
     stringBuffer.append(TEXT_136);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_438);
+    stringBuffer.append(TEXT_435);
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_564);
+    stringBuffer.append(TEXT_557);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_565);
+    stringBuffer.append(TEXT_558);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_564);
+    stringBuffer.append(TEXT_557);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_566);
+    stringBuffer.append(TEXT_559);
     stringBuffer.append(keyGenFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
@@ -5399,7 +5382,7 @@
     }
     index++;}
     }
-    stringBuffer.append(TEXT_567);
+    stringBuffer.append(TEXT_560);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_6);
     }
@@ -5412,31 +5395,31 @@
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature) || UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
     if (isInterface) {
     if (!genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_572);
+    stringBuffer.append(TEXT_565);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_573);
+    stringBuffer.append(TEXT_566);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_574);
+    stringBuffer.append(TEXT_567);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_79);
     for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_536);
+    stringBuffer.append(TEXT_529);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_575);
+    stringBuffer.append(TEXT_568);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_576);
+    stringBuffer.append(TEXT_569);
     }
-    stringBuffer.append(TEXT_577);
+    stringBuffer.append(TEXT_570);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_573);
+    stringBuffer.append(TEXT_566);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_578);
+    stringBuffer.append(TEXT_571);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_542);
+    stringBuffer.append(TEXT_535);
     }
     } else {
     stringBuffer.append(TEXT_128);
@@ -5461,62 +5444,62 @@
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
-    stringBuffer.append(TEXT_579);
+    stringBuffer.append(TEXT_572);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false));
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_580);
+    stringBuffer.append(TEXT_573);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_581);
+    stringBuffer.append(TEXT_574);
     }
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_580);
+    stringBuffer.append(TEXT_573);
     }
     stringBuffer.append(TEXT_161);
     }
     }
     if (isInterface) {
     if (!genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_572);
+    stringBuffer.append(TEXT_565);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_573);
+    stringBuffer.append(TEXT_566);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_574);
+    stringBuffer.append(TEXT_567);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_79);
     for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_536);
+    stringBuffer.append(TEXT_529);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_575);
+    stringBuffer.append(TEXT_568);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_576);
+    stringBuffer.append(TEXT_569);
     }
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_582);
+    stringBuffer.append(TEXT_575);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_539);
+    stringBuffer.append(TEXT_532);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_576);
+    stringBuffer.append(TEXT_569);
     }
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_583);
+    stringBuffer.append(TEXT_576);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_584);
-    }
     stringBuffer.append(TEXT_577);
+    }
+    stringBuffer.append(TEXT_570);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_573);
+    stringBuffer.append(TEXT_566);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_578);
+    stringBuffer.append(TEXT_571);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_542);
+    stringBuffer.append(TEXT_535);
     }
     } else {
     stringBuffer.append(TEXT_128);
@@ -5530,15 +5513,15 @@
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_585);
+    stringBuffer.append(TEXT_578);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_586);
+    stringBuffer.append(TEXT_579);
     }
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_587);
+    stringBuffer.append(TEXT_580);
     }
     stringBuffer.append(TEXT_179);
     }
@@ -5553,48 +5536,48 @@
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_585);
+    stringBuffer.append(TEXT_578);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_586);
+    stringBuffer.append(TEXT_579);
     }
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_587);
+    stringBuffer.append(TEXT_580);
     }
-    stringBuffer.append(TEXT_416);
+    stringBuffer.append(TEXT_415);
     if (isJDK50) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_588);
+    stringBuffer.append(TEXT_581);
     stringBuffer.append(genModel.getImportedName(genFeature.getListItemType(genClass)));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_503);
+    stringBuffer.append(TEXT_496);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_589);
+    stringBuffer.append(TEXT_582);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_588);
+    stringBuffer.append(TEXT_581);
     stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    stringBuffer.append(TEXT_590);
+    stringBuffer.append(TEXT_583);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_591);
+    stringBuffer.append(TEXT_584);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_592);
+    stringBuffer.append(TEXT_585);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_593);
+    stringBuffer.append(TEXT_586);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_594);
+    stringBuffer.append(TEXT_587);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_588);
     }
     for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {
     if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;
@@ -5603,35 +5586,35 @@
     stringBuffer.append(keyGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_596);
+    stringBuffer.append(TEXT_589);
     stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_597);
+    stringBuffer.append(TEXT_590);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_555);
+    stringBuffer.append(TEXT_548);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_598);
+    stringBuffer.append(TEXT_591);
     for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
     if (!first) {
-    stringBuffer.append(TEXT_599);
+    stringBuffer.append(TEXT_592);
     }
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index + n, false));
-    stringBuffer.append(TEXT_236);
+    stringBuffer.append(TEXT_233);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index + n, false));
-    stringBuffer.append(TEXT_600);
+    stringBuffer.append(TEXT_593);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_601);
+    stringBuffer.append(TEXT_594);
     if (first) {first = false;
     } else {
     stringBuffer.append(TEXT_86);
     }
     }
-    stringBuffer.append(TEXT_602);
+    stringBuffer.append(TEXT_595);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_603);
+    stringBuffer.append(TEXT_596);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_604);
+    stringBuffer.append(TEXT_597);
     stringBuffer.append(genModel.getImportedName(keyGenFeature.getQualifiedListItemType(genClass)));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(keyGenFeature.getUncapName());
@@ -5639,48 +5622,48 @@
     if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName(keyGenFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     }
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_605);
+    stringBuffer.append(TEXT_598);
     for (GenFeature nestedKeyGenFeature : nestedKeyGenFeatures) {
     if (nestedKeyGenFeature.isStringType()) {
-    stringBuffer.append(TEXT_606);
+    stringBuffer.append(TEXT_599);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_607);
+    stringBuffer.append(TEXT_600);
     if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("java.lang.String"));
     stringBuffer.append(TEXT_86);
     }
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_608);
+    stringBuffer.append(TEXT_601);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_609);
+    stringBuffer.append(TEXT_602);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_610);
+    stringBuffer.append(TEXT_603);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_611);
+    stringBuffer.append(TEXT_604);
     } else {
-    stringBuffer.append(TEXT_606);
+    stringBuffer.append(TEXT_599);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_610);
+    stringBuffer.append(TEXT_603);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_613);
+    stringBuffer.append(TEXT_606);
     }
-    stringBuffer.append(TEXT_614);
+    stringBuffer.append(TEXT_607);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_588);
     index++;}
-    stringBuffer.append(TEXT_380);
+    stringBuffer.append(TEXT_376);
     } else {
     stringBuffer.append(TEXT_151);
     stringBuffer.append(keyGenFeature.getImportedType(genClass));
@@ -5690,133 +5673,133 @@
     stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_615);
+    stringBuffer.append(TEXT_608);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_616);
+    stringBuffer.append(TEXT_609);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_588);
     for (GenFeature nestedKeyGenFeature : nestedKeyGenFeatures) {
     if (nestedKeyGenFeature.isStringType()) {
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(TEXT_362);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_617);
+    stringBuffer.append(TEXT_610);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_618);
-    stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_189);
-    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_609);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_619);
-    stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_189);
-    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_611);
-    } else {
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_602);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_612);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_619);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_613);
+    stringBuffer.append(TEXT_604);
+    } else {
+    stringBuffer.append(TEXT_362);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_605);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_612);
+    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_606);
     }
-    stringBuffer.append(TEXT_620);
+    stringBuffer.append(TEXT_613);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_588);
     index++;}
     }
     } else {
     if (keyGenFeature.isStringType()) {
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(TEXT_362);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_617);
+    stringBuffer.append(TEXT_610);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_618);
-    stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_189);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_609);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_619);
-    stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_189);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_611);
-    } else {
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_602);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_612);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_619);
     stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_613);
-    }
-    stringBuffer.append(TEXT_620);
+    stringBuffer.append(TEXT_604);
+    } else {
+    stringBuffer.append(TEXT_362);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_605);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_606);
+    }
+    stringBuffer.append(TEXT_613);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_588);
     index++;}
     }
-    stringBuffer.append(TEXT_621);
+    stringBuffer.append(TEXT_614);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_304);
+    stringBuffer.append(TEXT_301);
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_622);
+    stringBuffer.append(TEXT_615);
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_623);
+    stringBuffer.append(TEXT_616);
     }
-    stringBuffer.append(TEXT_624);
+    stringBuffer.append(TEXT_617);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false));
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_625);
+    stringBuffer.append(TEXT_618);
     }
-    stringBuffer.append(TEXT_626);
+    stringBuffer.append(TEXT_619);
     } else {
-    stringBuffer.append(TEXT_627);
+    stringBuffer.append(TEXT_620);
     }
     stringBuffer.append(TEXT_176);
     }
     }
     }
     if (isImplementation && ((UML2GenModelUtil.isRedefinition(genFeature) && !genFeature.isIsSet()) || UML2GenModelUtil.isRedefined(genClass, genFeature))) {
-    stringBuffer.append(TEXT_628);
+    stringBuffer.append(TEXT_621);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_132);
     if (!genFeature.isUnsettable()) {
     if (UML2GenModelUtil.isRedefined(genClass, genFeature)) {
-    stringBuffer.append(TEXT_629);
+    stringBuffer.append(TEXT_622);
     } else if (genModel.isReflectiveDelegation()) {
-    stringBuffer.append(TEXT_513);
+    stringBuffer.append(TEXT_506);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else if (genFeature.isListType()) {
     if (genFeature.isWrappedFeatureMapType()) {
     if (genFeature.isVolatile()) {
-    stringBuffer.append(TEXT_518);
+    stringBuffer.append(TEXT_511);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_630);
+    stringBuffer.append(TEXT_623);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_631);
+    stringBuffer.append(TEXT_624);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_632);
+    stringBuffer.append(TEXT_625);
     }
     } else {
     if (genClass.isField(genFeature)) {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_633);
+    stringBuffer.append(TEXT_626);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
     stringBuffer.append(TEXT_119);
@@ -5827,15 +5810,15 @@
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_145);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_634);
+    stringBuffer.append(TEXT_627);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_633);
+    stringBuffer.append(TEXT_626);
     } else {
-    stringBuffer.append(TEXT_635);
+    stringBuffer.append(TEXT_628);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_636);
+    stringBuffer.append(TEXT_629);
     }
     }
     }
@@ -5843,74 +5826,74 @@
     if (genClass.isField(genFeature)) {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_637);
+    stringBuffer.append(TEXT_630);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_638);
+    stringBuffer.append(TEXT_631);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_639);
+    stringBuffer.append(TEXT_632);
     } else {
-    stringBuffer.append(TEXT_640);
+    stringBuffer.append(TEXT_633);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_641);
+    stringBuffer.append(TEXT_634);
     }
     }
     } else if (genFeature.isReferenceType()) {
     if (genClass.isField(genFeature)) {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_637);
+    stringBuffer.append(TEXT_630);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_638);
+    stringBuffer.append(TEXT_631);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_639);
+    stringBuffer.append(TEXT_632);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_641);
+    stringBuffer.append(TEXT_634);
     }
     }
     } else if (genFeature.isPrimitiveType() || genFeature.isEnumType()) {
     if (genClass.isField(genFeature)) {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_642);
+    stringBuffer.append(TEXT_635);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_643);
+    stringBuffer.append(TEXT_636);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     } else {
-    stringBuffer.append(TEXT_644);
+    stringBuffer.append(TEXT_637);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_645);
+    stringBuffer.append(TEXT_638);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_502);
+    stringBuffer.append(TEXT_495);
     }
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_378);
+    stringBuffer.append(TEXT_374);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     }
     } else {
     if (genFeature.isEnumType() && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_638);
+    stringBuffer.append(TEXT_631);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_646);
+    stringBuffer.append(TEXT_639);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_647);
+    stringBuffer.append(TEXT_640);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     }
@@ -5919,11 +5902,11 @@
     if (genClass.isField(genFeature)) {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_648);
+    stringBuffer.append(TEXT_641);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_619);
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_146);
     } else {
@@ -5938,31 +5921,31 @@
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_634);
+    stringBuffer.append(TEXT_627);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_648);
+    stringBuffer.append(TEXT_641);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_619);
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_146);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_649);
+    stringBuffer.append(TEXT_642);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_619);
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_650);
+    stringBuffer.append(TEXT_643);
     }
     }
     }
     } else {
     if (genModel.isReflectiveDelegation()) {
-    stringBuffer.append(TEXT_513);
+    stringBuffer.append(TEXT_506);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else if (!genFeature.isVolatile()) {
@@ -5980,47 +5963,47 @@
     }
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_515);
+    stringBuffer.append(TEXT_508);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_493);
+    stringBuffer.append(TEXT_486);
     stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_516);
+    stringBuffer.append(TEXT_509);
     } else {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_517);
+    stringBuffer.append(TEXT_510);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_146);
     } else if (genClass.isESetFlag(genFeature)) {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_392);
+    stringBuffer.append(TEXT_388);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_395);
+    stringBuffer.append(TEXT_391);
     }
     }
     } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_518);
+    stringBuffer.append(TEXT_511);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_280);
+    stringBuffer.append(TEXT_277);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_281);
+    stringBuffer.append(TEXT_278);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_519);
+    stringBuffer.append(TEXT_512);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_518);
+    stringBuffer.append(TEXT_511);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_408);
+    stringBuffer.append(TEXT_404);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_520);
+    stringBuffer.append(TEXT_513);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     }
@@ -6031,13 +6014,13 @@
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_305);
+    stringBuffer.append(TEXT_302);
     } else {
-    stringBuffer.append(TEXT_521);
+    stringBuffer.append(TEXT_514);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_341);
+    stringBuffer.append(TEXT_338);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_522);
+    stringBuffer.append(TEXT_515);
     }
     }
     //isSetGenFeature.todo.override.javajetinc
@@ -6050,114 +6033,114 @@
     }}.run();
     for (GenOperation genOperation : (isImplementation ? genClass.getImplementedGenOperations() : genClass.getDeclaredGenOperations())) {
     if (isImplementation && !UML2GenModelUtil.hasOperationsClass(genClass, genOperation) && UML2GenModelUtil.hasOCLBody(genOperation)) {
-    stringBuffer.append(TEXT_651);
+    stringBuffer.append(TEXT_644);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_652);
+    stringBuffer.append(TEXT_645);
     stringBuffer.append(genOperation.getFormattedName());
-    stringBuffer.append(TEXT_653);
+    stringBuffer.append(TEXT_646);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_654);
+    stringBuffer.append(TEXT_647);
     stringBuffer.append(genModel.getImportedName("java.lang.String"));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(UML2GenModelUtil.getUpperName(genOperation.getName()));
     stringBuffer.append(genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false)));
-    stringBuffer.append(TEXT_655);
+    stringBuffer.append(TEXT_648);
     stringBuffer.append(UML2GenModelUtil.getOCLBody(genOperation));
     stringBuffer.append(TEXT_40);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_7);
     if (genOperation.isInvariant()) {
-    stringBuffer.append(TEXT_656);
+    stringBuffer.append(TEXT_649);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_652);
+    stringBuffer.append(TEXT_645);
     stringBuffer.append(genOperation.getFormattedName());
-    stringBuffer.append(TEXT_657);
+    stringBuffer.append(TEXT_650);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_658);
+    stringBuffer.append(TEXT_651);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.Constraint"));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(UML2GenModelUtil.getUpperName(genOperation.getName()));
     stringBuffer.append(genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false)));
-    stringBuffer.append(TEXT_659);
-    } else {
-    stringBuffer.append(TEXT_660);
-    stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_93);
-    stringBuffer.append(genOperation.getParameterTypes(", "));
     stringBuffer.append(TEXT_652);
-    stringBuffer.append(genOperation.getFormattedName());
-    stringBuffer.append(TEXT_661);
+    } else {
+    stringBuffer.append(TEXT_653);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_658);
+    stringBuffer.append(TEXT_645);
+    stringBuffer.append(genOperation.getFormattedName());
+    stringBuffer.append(TEXT_654);
+    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(TEXT_93);
+    stringBuffer.append(genOperation.getParameterTypes(", "));
+    stringBuffer.append(TEXT_651);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.expressions.OCLExpression"));
     if (isJDK50) {
-    stringBuffer.append(TEXT_662);
+    stringBuffer.append(TEXT_655);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClassifier"));
-    stringBuffer.append(TEXT_663);
+    stringBuffer.append(TEXT_656);
     }
     stringBuffer.append(TEXT_70);
     stringBuffer.append(UML2GenModelUtil.getUpperName(genOperation.getName()));
     stringBuffer.append(genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false)));
-    stringBuffer.append(TEXT_664);
+    stringBuffer.append(TEXT_657);
     }
     }
     if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF26_VALUE && isImplementation) {
     if (genOperation.isInvariant() && genOperation.hasInvariantExpression()) {
-    stringBuffer.append(TEXT_665);
+    stringBuffer.append(TEXT_658);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_652);
+    stringBuffer.append(TEXT_645);
     stringBuffer.append(genOperation.getFormattedName());
-    stringBuffer.append(TEXT_657);
+    stringBuffer.append(TEXT_650);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_654);
+    stringBuffer.append(TEXT_647);
     stringBuffer.append(genModel.getImportedName("java.lang.String"));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
-    stringBuffer.append(TEXT_666);
+    stringBuffer.append(TEXT_659);
     stringBuffer.append(genOperation.getInvariantExpression("\t\t"));
     stringBuffer.append(TEXT_40);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_7);
     } else if (genOperation.hasInvocationDelegate()) {
-    stringBuffer.append(TEXT_667);
+    stringBuffer.append(TEXT_660);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_652);
+    stringBuffer.append(TEXT_645);
     stringBuffer.append(genOperation.getFormattedName());
-    stringBuffer.append(TEXT_653);
+    stringBuffer.append(TEXT_646);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_654);
+    stringBuffer.append(TEXT_647);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EOperation"));
-    stringBuffer.append(TEXT_668);
+    stringBuffer.append(TEXT_661);
     stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
-    stringBuffer.append(TEXT_669);
+    stringBuffer.append(TEXT_662);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EOperation"));
     stringBuffer.append(TEXT_67);
     stringBuffer.append(genOperation.getQualifiedOperationAccessor());
-    stringBuffer.append(TEXT_670);
+    stringBuffer.append(TEXT_663);
     }
     }
     if (isInterface) {
-    stringBuffer.append(TEXT_528);
+    stringBuffer.append(TEXT_521);
     if (UML2GenModelUtil.isRedefinition(genOperation)) {
-    stringBuffer.append(TEXT_671);
+    stringBuffer.append(TEXT_664);
     for (GenOperation redefinedGenOperation : UML2GenModelUtil.getRedefinedGenOperations(genOperation)) {
     stringBuffer.append(TEXT_204);
     stringBuffer.append(redefinedGenOperation.getGenClass().getQualifiedInterfaceName());
@@ -6165,15 +6148,15 @@
     stringBuffer.append(redefinedGenOperation.getName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(redefinedGenOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_652);
+    stringBuffer.append(TEXT_645);
     stringBuffer.append(redefinedGenOperation.getFormattedName());
-    stringBuffer.append(TEXT_672);
+    stringBuffer.append(TEXT_665);
     }
-    stringBuffer.append(TEXT_673);
+    stringBuffer.append(TEXT_666);
     }
-    stringBuffer.append(TEXT_486);
+    stringBuffer.append(TEXT_209);
     if (genOperation.hasDocumentation() || genOperation.hasParameterDocumentation()) {
-    stringBuffer.append(TEXT_674);
+    stringBuffer.append(TEXT_667);
     if (genOperation.hasDocumentation()) {
     stringBuffer.append(TEXT_53);
     stringBuffer.append(genOperation.getDocumentation(genModel.getIndentation(stringBuffer)));
@@ -6181,28 +6164,28 @@
     for (GenParameter genParameter : genOperation.getGenParameters()) {
     if (genParameter.hasDocumentation()) { String documentation = genParameter.getDocumentation("");
     if (documentation.contains("\n") || documentation.contains("\r")) {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(genParameter.getName());
-    stringBuffer.append(TEXT_675);
+    stringBuffer.append(TEXT_668);
     stringBuffer.append(genParameter.getDocumentation(genModel.getIndentation(stringBuffer)));
     } else {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(genParameter.getName());
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genParameter.getDocumentation(genModel.getIndentation(stringBuffer)));
     }
     }
     }
-    stringBuffer.append(TEXT_215);
+    stringBuffer.append(TEXT_211);
     }
     if (!genModel.isSuppressEMFModelTags()) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genOperation.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;
-    stringBuffer.append(TEXT_221);
+    stringBuffer.append(TEXT_218);
     stringBuffer.append(modelInfo);
     } else {
-    stringBuffer.append(TEXT_222);
+    stringBuffer.append(TEXT_219);
     stringBuffer.append(modelInfo);
     }} if (first) {
-    stringBuffer.append(TEXT_223);
+    stringBuffer.append(TEXT_220);
     }}
     stringBuffer.append(TEXT_112);
     } else {
@@ -6237,33 +6220,33 @@
     stringBuffer.append(genOperation.getParameters(isImplementation, genClass));
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genOperation.getThrows(genClass));
-    stringBuffer.append(TEXT_676);
+    stringBuffer.append(TEXT_669);
     if (genOperation.hasBody()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genOperation.getBody(genModel.getIndentation(stringBuffer)));
     } else if (genOperation.isInvariant() && (genOperation.hasInvariantExpression() || !genOperation.hasInvocationDelegate())) {GenClass opClass = genOperation.getGenClass(); String diagnostics = genOperation.getGenParameters().get(0).getName(); String context = genOperation.getGenParameters().get(1).getName();
     if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF26_VALUE && genOperation.hasInvariantExpression()) {
-    stringBuffer.append(TEXT_677);
+    stringBuffer.append(TEXT_670);
     stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
-    stringBuffer.append(TEXT_678);
+    stringBuffer.append(TEXT_671);
     stringBuffer.append(genClass.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_679);
+    stringBuffer.append(TEXT_672);
     stringBuffer.append(diagnostics);
-    stringBuffer.append(TEXT_680);
+    stringBuffer.append(TEXT_673);
     stringBuffer.append(context);
-    stringBuffer.append(TEXT_681);
+    stringBuffer.append(TEXT_674);
     stringBuffer.append(genOperation.getValidationDelegate());
-    stringBuffer.append(TEXT_682);
+    stringBuffer.append(TEXT_675);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_683);
+    stringBuffer.append(TEXT_676);
     stringBuffer.append(genOperation.getQualifiedOperationAccessor());
-    stringBuffer.append(TEXT_680);
+    stringBuffer.append(TEXT_673);
     stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
-    stringBuffer.append(TEXT_684);
+    stringBuffer.append(TEXT_677);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Diagnostic"));
-    stringBuffer.append(TEXT_685);
+    stringBuffer.append(TEXT_678);
     stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
-    stringBuffer.append(TEXT_686);
+    stringBuffer.append(TEXT_679);
     stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(opClass.getOperationID(genOperation));
@@ -6274,7 +6257,7 @@
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     stringBuffer.append(diagnostics);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(context);
@@ -6283,74 +6266,74 @@
     if (UML2GenModelUtil.hasOCLBody(genOperation)) { String oclInv = UML2GenModelUtil.getUpperName(genOperation.getName()) + (genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false))) + "__EOCL_INV";
     stringBuffer.append(TEXT_136);
     stringBuffer.append(oclInv);
-    stringBuffer.append(TEXT_687);
+    stringBuffer.append(TEXT_680);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
-    stringBuffer.append(TEXT_688);
+    stringBuffer.append(TEXT_681);
     stringBuffer.append(opClass.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_689);
+    stringBuffer.append(TEXT_682);
     stringBuffer.append(oclInv);
-    stringBuffer.append(TEXT_690);
+    stringBuffer.append(TEXT_683);
     stringBuffer.append(UML2GenModelUtil.getUpperName(genOperation.getName()));
     stringBuffer.append(genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false)));
-    stringBuffer.append(TEXT_691);
+    stringBuffer.append(TEXT_684);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ParserException"));
-    stringBuffer.append(TEXT_692);
+    stringBuffer.append(TEXT_685);
     stringBuffer.append(oclInv);
-    stringBuffer.append(TEXT_693);
+    stringBuffer.append(TEXT_686);
     } else {
-    stringBuffer.append(TEXT_694);
+    stringBuffer.append(TEXT_687);
     }
-    stringBuffer.append(TEXT_695);
+    stringBuffer.append(TEXT_688);
     stringBuffer.append(diagnostics);
-    stringBuffer.append(TEXT_371);
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_367);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(diagnostics);
-    stringBuffer.append(TEXT_696);
+    stringBuffer.append(TEXT_689);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicDiagnostic"));
-    stringBuffer.append(TEXT_697);
+    stringBuffer.append(TEXT_690);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Diagnostic"));
-    stringBuffer.append(TEXT_698);
+    stringBuffer.append(TEXT_691);
     stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
-    stringBuffer.append(TEXT_699);
+    stringBuffer.append(TEXT_692);
     stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(opClass.getOperationID(genOperation));
-    stringBuffer.append(TEXT_700);
+    stringBuffer.append(TEXT_693);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.plugin.EcorePlugin"));
-    stringBuffer.append(TEXT_701);
+    stringBuffer.append(TEXT_694);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_702);
+    stringBuffer.append(TEXT_695);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectValidator"));
-    stringBuffer.append(TEXT_703);
+    stringBuffer.append(TEXT_696);
     stringBuffer.append(context);
-    stringBuffer.append(TEXT_704);
+    stringBuffer.append(TEXT_697);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
-    stringBuffer.append(TEXT_705);
+    stringBuffer.append(TEXT_698);
     //genOperation.diagnostics.override.javajetinc
-    stringBuffer.append(TEXT_706);
+    stringBuffer.append(TEXT_699);
     }
     }
     } else if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF26_VALUE && genOperation.hasInvocationDelegate()) { int size = genOperation.getGenParameters().size();
-    stringBuffer.append(TEXT_707);
+    stringBuffer.append(TEXT_700);
     if (genOperation.isVoid()) {
     stringBuffer.append(TEXT_151);
     stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
-    stringBuffer.append(TEXT_708);
+    stringBuffer.append(TEXT_701);
     if (size > 0) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
-    stringBuffer.append(TEXT_709);
+    stringBuffer.append(TEXT_702);
     stringBuffer.append(size);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genOperation.getParametersArray(genClass));
     stringBuffer.append(TEXT_86);
     } else {
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_318);
     }
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_621);
+    stringBuffer.append(TEXT_614);
     if (!isJDK50 && genOperation.isPrimitiveType()) {
     stringBuffer.append(TEXT_93);
     }
@@ -6358,31 +6341,31 @@
     stringBuffer.append(genOperation.getObjectType(genClass));
     stringBuffer.append(TEXT_86);
     stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
-    stringBuffer.append(TEXT_708);
+    stringBuffer.append(TEXT_701);
     if (size > 0) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
-    stringBuffer.append(TEXT_709);
+    stringBuffer.append(TEXT_702);
     stringBuffer.append(size);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genOperation.getParametersArray(genClass));
     stringBuffer.append(TEXT_86);
     } else {
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_318);
     }
     stringBuffer.append(TEXT_86);
     if (!isJDK50 && genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_227);
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(genOperation.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
     stringBuffer.append(TEXT_6);
     }
-    stringBuffer.append(TEXT_710);
+    stringBuffer.append(TEXT_703);
     stringBuffer.append(genModel.getImportedName(isGWT ? "org.eclipse.emf.common.util.InvocationTargetException" : "java.lang.reflect.InvocationTargetException"));
-    stringBuffer.append(TEXT_711);
+    stringBuffer.append(TEXT_704);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.WrappedException"));
-    stringBuffer.append(TEXT_712);
+    stringBuffer.append(TEXT_705);
     } else {
     if (UML2GenModelUtil.hasOperationsClass(genClass, genOperation)) {
     if (genOperation.isVoid()) {
@@ -6390,7 +6373,7 @@
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_713);
+    stringBuffer.append(TEXT_706);
     if (genOperation.getGenParameters().size() > 0) {
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genOperation.getParameterNames(", "));
@@ -6400,36 +6383,36 @@
     if (UML2GenModelUtil.isCacheAdapterSupport(genModel) && UML2GenModelUtil.isCached(genOperation)) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
-    stringBuffer.append(TEXT_293);
+    stringBuffer.append(TEXT_290);
     if (genModel.useGenerics() && genOperation.isUncheckedCast()) {
-    stringBuffer.append(TEXT_294);
+    stringBuffer.append(TEXT_291);
     }
     stringBuffer.append(TEXT_151);
     stringBuffer.append(genOperation.getObjectType(genClass));
-    stringBuffer.append(TEXT_295);
+    stringBuffer.append(TEXT_292);
     stringBuffer.append(genOperation.getObjectType(genClass));
+    stringBuffer.append(TEXT_293);
+    if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
+    stringBuffer.append(TEXT_294);
+    }
+    stringBuffer.append(TEXT_295);
+    stringBuffer.append(genOperation.getQualifiedOperationAccessor());
     stringBuffer.append(TEXT_296);
     if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
-    stringBuffer.append(TEXT_297);
+    stringBuffer.append(TEXT_294);
     }
-    stringBuffer.append(TEXT_298);
+    stringBuffer.append(TEXT_295);
     stringBuffer.append(genOperation.getQualifiedOperationAccessor());
-    stringBuffer.append(TEXT_299);
-    if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
     stringBuffer.append(TEXT_297);
-    }
-    stringBuffer.append(TEXT_298);
-    stringBuffer.append(genOperation.getQualifiedOperationAccessor());
-    stringBuffer.append(TEXT_300);
     if (genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genOperation.getObjectType(genClass));
     stringBuffer.append(TEXT_93);
     }
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_713);
+    stringBuffer.append(TEXT_706);
     if (genOperation.getGenParameters().size() > 0) {
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genOperation.getParameterNames(", "));
@@ -6438,19 +6421,19 @@
     if (genOperation.isPrimitiveType()) {
     stringBuffer.append(TEXT_86);
     }
-    stringBuffer.append(TEXT_303);
+    stringBuffer.append(TEXT_300);
     if (genOperation.isPrimitiveType()) {
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
-    stringBuffer.append(TEXT_304);
+    stringBuffer.append(TEXT_301);
     }
     stringBuffer.append(TEXT_172);
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_713);
+    stringBuffer.append(TEXT_706);
     if (genOperation.getGenParameters().size() > 0) {
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genOperation.getParameterNames(", "));
@@ -6470,37 +6453,37 @@
 		int index = genOperation.getGenClass().getAllGenOperations().indexOf(redefinedGenOperation);
     stringBuffer.append(TEXT_136);
     stringBuffer.append(oclQry);
-    stringBuffer.append(TEXT_687);
+    stringBuffer.append(TEXT_680);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
-    stringBuffer.append(TEXT_714);
+    stringBuffer.append(TEXT_707);
     stringBuffer.append(genOperation.getGenClass().getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genOperation.getGenClass().getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_715);
+    stringBuffer.append(TEXT_708);
     stringBuffer.append(index);
-    stringBuffer.append(TEXT_716);
+    stringBuffer.append(TEXT_709);
     stringBuffer.append(oclQry);
-    stringBuffer.append(TEXT_717);
+    stringBuffer.append(TEXT_710);
     stringBuffer.append(UML2GenModelUtil.getUpperName(genOperation.getName()));
     stringBuffer.append(genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false)));
-    stringBuffer.append(TEXT_691);
+    stringBuffer.append(TEXT_684);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ParserException"));
-    stringBuffer.append(TEXT_718);
+    stringBuffer.append(TEXT_711);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
-    stringBuffer.append(TEXT_719);
+    stringBuffer.append(TEXT_712);
     stringBuffer.append(oclQry);
     stringBuffer.append(TEXT_146);
     if (!genOperation.getGenParameters().isEmpty()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.EvaluationEnvironment"));
     if (isJDK50) {
-    stringBuffer.append(TEXT_720);
+    stringBuffer.append(TEXT_713);
     }
-    stringBuffer.append(TEXT_721);
+    stringBuffer.append(TEXT_714);
     for (GenParameter genParameter : genOperation.getGenParameters()) {
-    stringBuffer.append(TEXT_722);
+    stringBuffer.append(TEXT_715);
     stringBuffer.append(genParameter.getName());
-    stringBuffer.append(TEXT_702);
+    stringBuffer.append(TEXT_695);
     stringBuffer.append(genParameter.getName());
     stringBuffer.append(TEXT_146);
     stringBuffer.append(genModel.getNonNLS());
@@ -6508,34 +6491,34 @@
     }
     if (genOperation.isListType()) {
     if (isJDK50) {
-    stringBuffer.append(TEXT_723);
+    stringBuffer.append(TEXT_716);
     }
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genModel.getImportedName("java.util.Collection"));
-    stringBuffer.append(TEXT_662);
+    stringBuffer.append(TEXT_655);
     stringBuffer.append(genOperation.getListItemType(null));
-    stringBuffer.append(TEXT_724);
+    stringBuffer.append(TEXT_717);
     stringBuffer.append(genModel.getImportedName("java.util.Collection"));
-    stringBuffer.append(TEXT_662);
+    stringBuffer.append(TEXT_655);
     stringBuffer.append(genOperation.getListItemType(null));
-    stringBuffer.append(TEXT_725);
+    stringBuffer.append(TEXT_718);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
-    stringBuffer.append(TEXT_726);
+    stringBuffer.append(TEXT_719);
     stringBuffer.append(genOperation.getListItemType(null));
-    stringBuffer.append(TEXT_727);
+    stringBuffer.append(TEXT_720);
     } else if (genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_286);
+    stringBuffer.append(TEXT_283);
     stringBuffer.append(genOperation.getObjectType(null));
-    stringBuffer.append(TEXT_728);
+    stringBuffer.append(TEXT_721);
     stringBuffer.append(genOperation.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genOperation.getImportedType(null));
-    stringBuffer.append(TEXT_729);
+    stringBuffer.append(TEXT_722);
     }
     } else {
-    stringBuffer.append(TEXT_730);
+    stringBuffer.append(TEXT_723);
     }
     }
     stringBuffer.append(TEXT_176);
@@ -6556,51 +6539,51 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_731);
+    stringBuffer.append(TEXT_724);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_732);
+    stringBuffer.append(TEXT_725);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_733);
+    stringBuffer.append(TEXT_726);
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_734);
+    stringBuffer.append(TEXT_727);
     for (GenFeature genFeature : genClass.getEInverseAddGenFeatures()) {
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_736);
+    stringBuffer.append(TEXT_729);
     if (genFeature.isListType()) { String cast = "("  + genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList") + (!genModel.useGenerics() ? ")" : "<" + genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject") + ">)(" + genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList") + "<?>)");
     if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {
-    stringBuffer.append(TEXT_642);
+    stringBuffer.append(TEXT_635);
     stringBuffer.append(cast);
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
-    stringBuffer.append(TEXT_737);
+    stringBuffer.append(TEXT_730);
     stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_738);
+    stringBuffer.append(TEXT_731);
     } else {
-    stringBuffer.append(TEXT_644);
+    stringBuffer.append(TEXT_637);
     stringBuffer.append(cast);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_739);
+    stringBuffer.append(TEXT_732);
     }
     } else if (genFeature.isContainer()) {
-    stringBuffer.append(TEXT_740);
+    stringBuffer.append(TEXT_733);
     if (genFeature.isBasicSet()) {
-    stringBuffer.append(TEXT_741);
+    stringBuffer.append(TEXT_734);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_279);
+    stringBuffer.append(TEXT_276);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_742);
+    stringBuffer.append(TEXT_735);
     } else {
-    stringBuffer.append(TEXT_743);
+    stringBuffer.append(TEXT_736);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_362);
+    stringBuffer.append(TEXT_358);
     }
     } else {
     if (genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getSafeName());
@@ -6611,55 +6594,62 @@
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_146);
     } else if (genFeature.isVolatile() || genClass.getImplementingGenModel(genFeature).isDynamicDelegation()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     if (genFeature.isResolveProxies()) {
-    stringBuffer.append(TEXT_349);
+    stringBuffer.append(TEXT_346);
     stringBuffer.append(genFeature.getAccessorName());
     } else {
     stringBuffer.append(genFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     }
-    stringBuffer.append(TEXT_606);
+    stringBuffer.append(TEXT_599);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_438);
+    stringBuffer.append(TEXT_435);
     if (genFeature.isEffectiveContains()) {
-    stringBuffer.append(TEXT_744);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_440);
+    stringBuffer.append(TEXT_737);
+    stringBuffer.append(genFeature.getAsInternalEObject(genFeature.getSafeName(), true));
+    stringBuffer.append(TEXT_243);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_255);
+    stringBuffer.append(TEXT_252);
     } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
-    stringBuffer.append(TEXT_744);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_443);
+    stringBuffer.append(TEXT_737);
+    stringBuffer.append(genFeature.getAsInternalEObject(genFeature.getSafeName(), true));
+    stringBuffer.append(TEXT_246);
     stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
     stringBuffer.append(reverseOffsetCorrection);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(targetClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_258);
+    stringBuffer.append(TEXT_255);
     }
-    stringBuffer.append(TEXT_741);
+    stringBuffer.append(TEXT_734);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_279);
+    stringBuffer.append(TEXT_276);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_742);
+    stringBuffer.append(TEXT_735);
     }
     }
-    stringBuffer.append(TEXT_329);
-    if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_745);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_738);
     } else {
-    stringBuffer.append(TEXT_746);
+    stringBuffer.append(TEXT_326);
+    }
+    if (genModel.isMinimalReflectiveMethods()) {
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_739);
+    } else {
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_740);
+    }
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_326);
     }
     stringBuffer.append(TEXT_176);
     }
@@ -6670,67 +6660,78 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_747);
+    stringBuffer.append(TEXT_741);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_732);
+    stringBuffer.append(TEXT_725);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_733);
+    stringBuffer.append(TEXT_726);
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_734);
+    stringBuffer.append(TEXT_727);
     for (GenFeature genFeature : genClass.getEInverseRemoveGenFeatures()) {
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_736);
+    stringBuffer.append(TEXT_729);
     if (genFeature.isListType()) {
     if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {
-    stringBuffer.append(TEXT_642);
+    stringBuffer.append(TEXT_635);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
     stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_347);
+    stringBuffer.append(TEXT_344);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
-    stringBuffer.append(TEXT_737);
+    stringBuffer.append(TEXT_730);
     stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_748);
+    stringBuffer.append(TEXT_742);
     } else if (genFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_642);
+    stringBuffer.append(TEXT_635);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
     stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_347);
+    stringBuffer.append(TEXT_344);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_630);
+    stringBuffer.append(TEXT_623);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_749);
+    stringBuffer.append(TEXT_743);
     } else {
-    stringBuffer.append(TEXT_642);
+    stringBuffer.append(TEXT_635);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
     stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_750);
+    stringBuffer.append(TEXT_744);
     }
     } else if (genFeature.isContainer() && !genFeature.isBasicSet()) {
-    stringBuffer.append(TEXT_751);
+    stringBuffer.append(TEXT_745);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_362);
+    stringBuffer.append(TEXT_358);
     } else if (genFeature.isUnsettable()) {
-    stringBuffer.append(TEXT_752);
+    stringBuffer.append(TEXT_746);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_753);
+    stringBuffer.append(TEXT_747);
     } else {
-    stringBuffer.append(TEXT_741);
+    stringBuffer.append(TEXT_734);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_754);
+    stringBuffer.append(TEXT_748);
     }
     }
-    stringBuffer.append(TEXT_329);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_738);
+    } else { // {
+    stringBuffer.append(TEXT_326);
+    }
     if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_755);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_749);
     } else {
-    stringBuffer.append(TEXT_756);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_750);
     }
+    if (forceDefaultCase) { // {
+    stringBuffer.append(TEXT_326);
+    } // }
     stringBuffer.append(TEXT_176);
     }
     if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEBasicRemoveFromContainerGenFeatures())) {
@@ -6740,28 +6741,39 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_757);
+    stringBuffer.append(TEXT_751);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_758);
+    stringBuffer.append(TEXT_752);
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_734);
+    stringBuffer.append(TEXT_727);
     for (GenFeature genFeature : genClass.getEBasicRemoveFromContainerGenFeatures()) {
     GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_759);
+    stringBuffer.append(TEXT_753);
     stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
     stringBuffer.append(reverseOffsetCorrection);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(targetClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_258);
+    stringBuffer.append(TEXT_255);
     }
-    stringBuffer.append(TEXT_329);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_738);
+    } else { // {
+    stringBuffer.append(TEXT_326);
+    }
     if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_760);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_754);
     } else {
-    stringBuffer.append(TEXT_761);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_755);
     }
+    if (forceDefaultCase) { // {
+    stringBuffer.append(TEXT_326);
+    } // }
     stringBuffer.append(TEXT_176);
     }
     if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEGetGenFeatures())) {
@@ -6769,81 +6781,92 @@
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_762);
+    stringBuffer.append(TEXT_756);
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_734);
+    stringBuffer.append(TEXT_727);
     for (GenFeature genFeature : genClass.getEGetGenFeatures()) {
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_736);
+    stringBuffer.append(TEXT_729);
     if (genFeature.isPrimitiveType()) {
     if (isJDK50) {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_764);
+    stringBuffer.append(TEXT_758);
     } else {
-    stringBuffer.append(TEXT_765);
+    stringBuffer.append(TEXT_759);
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_650);
+    stringBuffer.append(TEXT_643);
     }
     } else if (genFeature.isResolveProxies() && !genFeature.isListType()) {
-    stringBuffer.append(TEXT_766);
+    stringBuffer.append(TEXT_760);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_767);
+    stringBuffer.append(TEXT_761);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genFeature.isMapType()) {
     if (genFeature.isEffectiveSuppressEMFTypes()) {
-    stringBuffer.append(TEXT_768);
+    stringBuffer.append(TEXT_762);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
-    stringBuffer.append(TEXT_737);
+    stringBuffer.append(TEXT_730);
     stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_769);
+    stringBuffer.append(TEXT_763);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else {
-    stringBuffer.append(TEXT_770);
+    stringBuffer.append(TEXT_764);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_771);
+    stringBuffer.append(TEXT_765);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_772);
+    stringBuffer.append(TEXT_766);
     }
     } else if (genFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_768);
+    stringBuffer.append(TEXT_762);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_630);
+    stringBuffer.append(TEXT_623);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_773);
+    stringBuffer.append(TEXT_767);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genFeature.isFeatureMapType()) {
-    stringBuffer.append(TEXT_770);
+    stringBuffer.append(TEXT_764);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_774);
+    stringBuffer.append(TEXT_768);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_67);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_775);
+    stringBuffer.append(TEXT_769);
     } else {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     }
     }
-    stringBuffer.append(TEXT_329);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_738);
+    } else { // {
+    stringBuffer.append(TEXT_326);
+    }
     if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_776);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_770);
     } else {
-    stringBuffer.append(TEXT_777);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_771);
     }
+    if (forceDefaultCase) { // {
+    stringBuffer.append(TEXT_326);
+    } // }
     stringBuffer.append(TEXT_176);
     }
     if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getESetGenFeatures())) {
@@ -6858,70 +6881,70 @@
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_778);
+    stringBuffer.append(TEXT_772);
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_734);
+    stringBuffer.append(TEXT_727);
     for (GenFeature genFeature : genClass.getESetGenFeatures()) {
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_736);
+    stringBuffer.append(TEXT_729);
     if (genFeature.isListType()) {
     if (genFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_779);
+    stringBuffer.append(TEXT_773);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_280);
+    stringBuffer.append(TEXT_277);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_630);
+    stringBuffer.append(TEXT_623);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_780);
+    stringBuffer.append(TEXT_774);
     } else if (genFeature.isFeatureMapType()) {
-    stringBuffer.append(TEXT_779);
+    stringBuffer.append(TEXT_773);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_67);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_781);
+    stringBuffer.append(TEXT_775);
     } else if (genFeature.isMapType()) {
     if (genFeature.isEffectiveSuppressEMFTypes()) {
-    stringBuffer.append(TEXT_779);
+    stringBuffer.append(TEXT_773);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_782);
+    stringBuffer.append(TEXT_776);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
-    stringBuffer.append(TEXT_737);
+    stringBuffer.append(TEXT_730);
     stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_783);
+    stringBuffer.append(TEXT_777);
     } else {
-    stringBuffer.append(TEXT_779);
+    stringBuffer.append(TEXT_773);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_784);
+    stringBuffer.append(TEXT_778);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_781);
+    stringBuffer.append(TEXT_775);
     }
     } else {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_785);
+    stringBuffer.append(TEXT_779);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_786);
+    stringBuffer.append(TEXT_780);
     stringBuffer.append(genModel.getImportedName("java.util.Collection"));
     if (isJDK50) {
-    stringBuffer.append(TEXT_787);
+    stringBuffer.append(TEXT_781);
     stringBuffer.append(genFeature.getListItemType(genClass));
-    stringBuffer.append(TEXT_663);
+    stringBuffer.append(TEXT_656);
     }
-    stringBuffer.append(TEXT_788);
+    stringBuffer.append(TEXT_782);
     }
     } else if (!isJDK50 && genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_789);
+    stringBuffer.append(TEXT_783);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_790);
+    stringBuffer.append(TEXT_784);
     stringBuffer.append(genFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_791);
+    stringBuffer.append(TEXT_785);
     stringBuffer.append(genFeature.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_650);
+    stringBuffer.append(TEXT_643);
     } else {
-    stringBuffer.append(TEXT_789);
+    stringBuffer.append(TEXT_783);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     if (genFeature.getTypeGenDataType() == null || !genFeature.getTypeGenDataType().isObjectType() || !genFeature.getRawType().equals(genFeature.getType(genClass))) {
@@ -6929,16 +6952,33 @@
     stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_86);
     }
-    stringBuffer.append(TEXT_792);
+    stringBuffer.append(TEXT_786);
     }
-    stringBuffer.append(TEXT_793);
+    stringBuffer.append(TEXT_787);
     }
-    stringBuffer.append(TEXT_329);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_738);
+    } else { // {
+    stringBuffer.append(TEXT_326);
+    }
     if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_794);
-    } else {
-    stringBuffer.append(TEXT_795);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_788);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_787);
     }
+    } else {
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_789);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_787);
+    }
+    }
+    if (forceDefaultCase) { // {
+    stringBuffer.append(TEXT_326);
+    } // }
     stringBuffer.append(TEXT_176);
     }
     if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEUnsetGenFeatures())) {
@@ -6946,60 +6986,77 @@
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_796);
+    stringBuffer.append(TEXT_790);
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_734);
+    stringBuffer.append(TEXT_727);
     for (GenFeature genFeature : genClass.getEUnsetGenFeatures()) {
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_736);
+    stringBuffer.append(TEXT_729);
     if (genFeature.isListType() && !genFeature.isUnsettable()) {
     if (genFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_779);
+    stringBuffer.append(TEXT_773);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_630);
+    stringBuffer.append(TEXT_623);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_797);
+    stringBuffer.append(TEXT_791);
     } else {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_798);
+    stringBuffer.append(TEXT_792);
     }
     } else if (genFeature.isUnsettable()) {
-    stringBuffer.append(TEXT_799);
+    stringBuffer.append(TEXT_793);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (!genFeature.hasEDefault()) {
-    stringBuffer.append(TEXT_789);
+    stringBuffer.append(TEXT_783);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_279);
+    stringBuffer.append(TEXT_276);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_800);
+    stringBuffer.append(TEXT_794);
     } else if (genFeature.hasSettingDelegate()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_491);
+    stringBuffer.append(TEXT_484);
     } else {
-    stringBuffer.append(TEXT_789);
+    stringBuffer.append(TEXT_783);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_793);
+    stringBuffer.append(TEXT_787);
     }
-    stringBuffer.append(TEXT_329);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_738);
+    } else { // {
+    stringBuffer.append(TEXT_326);
+    }
     if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_801);
-    } else {
-    stringBuffer.append(TEXT_802);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_795);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_787);
     }
+    } else {
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_796);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_787);
+    }
+    }
+    if (forceDefaultCase) { // {
+    stringBuffer.append(TEXT_326);
+    } // }
     stringBuffer.append(TEXT_176);
     //Class/eUnset.override.javajetinc
     }
     if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEIsSetGenFeatures())) {
     stringBuffer.append(TEXT_7);
-    stringBuffer.append(TEXT_803);
+    stringBuffer.append(TEXT_797);
     if (genModel.useGenerics()) {
     for (GenFeature genFeature : genClass.getEIsSetGenFeatures()) {
     if (genFeature.isListType() && !genFeature.isUnsettable() && !genFeature.isWrappedFeatureMapType() && !genClass.isField(genFeature) && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
@@ -7010,51 +7067,51 @@
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_804);
+    stringBuffer.append(TEXT_798);
     for (GenFeature genFeature : genClass.getEIsSetGenFeatures()) { String safeNameAccessor = genFeature.getSafeName(); if ("featureID".equals(safeNameAccessor)) { safeNameAccessor = "this." + safeNameAccessor; }
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_736);
+    stringBuffer.append(TEXT_729);
     if (UML2GenModelUtil.isUnion(genFeature) || UML2GenModelUtil.isRedefinition(genFeature) || UML2GenModelUtil.isRedefined(genClass, genFeature)) {
-    stringBuffer.append(TEXT_805);
+    stringBuffer.append(TEXT_799);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else {
     if (genFeature.hasSettingDelegate()) {
     if (genFeature.isUnsettable()) {
-    stringBuffer.append(TEXT_805);
+    stringBuffer.append(TEXT_799);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_514);
+    stringBuffer.append(TEXT_507);
     }
     } else if (genFeature.isListType() && !genFeature.isUnsettable()) {
     if (genFeature.isWrappedFeatureMapType()) {
     if (genFeature.isVolatile()) {
-    stringBuffer.append(TEXT_806);
+    stringBuffer.append(TEXT_800);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_630);
+    stringBuffer.append(TEXT_623);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_631);
+    stringBuffer.append(TEXT_624);
     } else {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_632);
+    stringBuffer.append(TEXT_625);
     }
     } else {
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_633);
+    stringBuffer.append(TEXT_626);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(safeNameAccessor);
@@ -7063,115 +7120,115 @@
     stringBuffer.append(TEXT_145);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_807);
+    stringBuffer.append(TEXT_801);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_633);
+    stringBuffer.append(TEXT_626);
     } else {
-    stringBuffer.append(TEXT_808);
+    stringBuffer.append(TEXT_802);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_636);
+    stringBuffer.append(TEXT_629);
     }
     }
     }
     } else if (genFeature.isUnsettable()) {
-    stringBuffer.append(TEXT_805);
+    stringBuffer.append(TEXT_799);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else if (genFeature.isResolveProxies()) {
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_637);
+    stringBuffer.append(TEXT_630);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_809);
+    stringBuffer.append(TEXT_803);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_639);
+    stringBuffer.append(TEXT_632);
     } else {
-    stringBuffer.append(TEXT_810);
+    stringBuffer.append(TEXT_804);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_641);
+    stringBuffer.append(TEXT_634);
     }
     }
     } else if (!genFeature.hasEDefault()) {
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_637);
+    stringBuffer.append(TEXT_630);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_809);
+    stringBuffer.append(TEXT_803);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_639);
+    stringBuffer.append(TEXT_632);
     } else {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_641);
+    stringBuffer.append(TEXT_634);
     }
     }
     } else if (genFeature.isPrimitiveType() || genFeature.isEnumType()) {
     if (genClass.isField(genFeature)) {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_642);
+    stringBuffer.append(TEXT_635);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_643);
+    stringBuffer.append(TEXT_636);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     } else {
-    stringBuffer.append(TEXT_644);
+    stringBuffer.append(TEXT_637);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_645);
+    stringBuffer.append(TEXT_638);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_502);
+    stringBuffer.append(TEXT_495);
     }
     } else {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_378);
+    stringBuffer.append(TEXT_374);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     }
     } else {
     if (genFeature.isEnumType() && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_809);
+    stringBuffer.append(TEXT_803);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_646);
+    stringBuffer.append(TEXT_639);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     } else {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_647);
+    stringBuffer.append(TEXT_640);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     }
     }
     } else {//datatype
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_648);
+    stringBuffer.append(TEXT_641);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_619);
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_146);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(safeNameAccessor);
@@ -7181,35 +7238,35 @@
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_807);
+    stringBuffer.append(TEXT_801);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_648);
+    stringBuffer.append(TEXT_641);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_619);
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_763);
+    stringBuffer.append(TEXT_757);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_649);
+    stringBuffer.append(TEXT_642);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_619);
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_650);
+    stringBuffer.append(TEXT_643);
     }
     }
     }
     }
     }
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_811);
+    stringBuffer.append(TEXT_805);
     } else {
-    stringBuffer.append(TEXT_812);
+    stringBuffer.append(TEXT_806);
     }
     stringBuffer.append(TEXT_176);
     //Class/eIsSet.override.javajetinc
@@ -7220,122 +7277,122 @@
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_813);
+    stringBuffer.append(TEXT_807);
     stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_814);
+    stringBuffer.append(TEXT_808);
     for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {
-    stringBuffer.append(TEXT_815);
+    stringBuffer.append(TEXT_809);
     stringBuffer.append(mixinGenClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_816);
+    stringBuffer.append(TEXT_810);
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_243);
+    stringBuffer.append(TEXT_240);
     for (GenFeature genFeature : mixinGenClass.getGenFeatures()) {
-    stringBuffer.append(TEXT_817);
+    stringBuffer.append(TEXT_811);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_818);
+    stringBuffer.append(TEXT_812);
     stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_6);
     }
-    stringBuffer.append(TEXT_819);
+    stringBuffer.append(TEXT_813);
     }
-    stringBuffer.append(TEXT_820);
+    stringBuffer.append(TEXT_814);
     }
-    stringBuffer.append(TEXT_821);
+    stringBuffer.append(TEXT_815);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_822);
+    stringBuffer.append(TEXT_816);
     stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_814);
+    stringBuffer.append(TEXT_808);
     for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {
-    stringBuffer.append(TEXT_815);
+    stringBuffer.append(TEXT_809);
     stringBuffer.append(mixinGenClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_823);
-    for (GenFeature genFeature : mixinGenClass.getGenFeatures()) {
     stringBuffer.append(TEXT_817);
+    for (GenFeature genFeature : mixinGenClass.getGenFeatures()) {
+    stringBuffer.append(TEXT_811);
     stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_818);
+    stringBuffer.append(TEXT_812);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_6);
     }
-    stringBuffer.append(TEXT_819);
+    stringBuffer.append(TEXT_813);
     }
     if (genClass.hasOffsetCorrection() && !genClass.getGenFeatures().isEmpty()) {
-    stringBuffer.append(TEXT_815);
+    stringBuffer.append(TEXT_809);
     stringBuffer.append(genClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_824);
-    stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_243);
-    for (GenFeature genFeature : genClass.getGenFeatures()) {
-    stringBuffer.append(TEXT_817);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_818);
+    stringBuffer.append(negativeOffsetCorrection);
+    stringBuffer.append(TEXT_240);
+    for (GenFeature genFeature : genClass.getGenFeatures()) {
+    stringBuffer.append(TEXT_811);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_812);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_6);
     }
-    stringBuffer.append(TEXT_819);
+    stringBuffer.append(TEXT_813);
     }
-    stringBuffer.append(TEXT_825);
+    stringBuffer.append(TEXT_819);
     }
     if (genModel.isOperationReflection() && isImplementation && (!genClass.getMixinGenOperations().isEmpty() || !genClass.getOverrideGenOperations(genClass.getExtendedGenOperations(), genClass.getImplementedGenOperations()).isEmpty() || genClass.hasOffsetCorrection() && !genClass.getGenOperations().isEmpty())) {
     stringBuffer.append(TEXT_128);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_826);
+    stringBuffer.append(TEXT_820);
     stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_814);
+    stringBuffer.append(TEXT_808);
     for (GenClass extendedGenClass : genClass.getExtendedGenClasses()) { List<GenOperation> extendedImplementedGenOperations = extendedGenClass.getImplementedGenOperations(); List<GenOperation> implementedGenOperations = genClass.getImplementedGenOperations();
     if (!genClass.getOverrideGenOperations(extendedImplementedGenOperations, implementedGenOperations).isEmpty()) {
-    stringBuffer.append(TEXT_815);
+    stringBuffer.append(TEXT_809);
     stringBuffer.append(extendedGenClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_827);
+    stringBuffer.append(TEXT_821);
     for (GenOperation genOperation : extendedImplementedGenOperations) { GenOperation overrideGenOperation = genClass.getOverrideGenOperation(genOperation);
     if (implementedGenOperations.contains(overrideGenOperation)) {
-    stringBuffer.append(TEXT_817);
+    stringBuffer.append(TEXT_811);
     stringBuffer.append(extendedGenClass.getQualifiedOperationID(genOperation));
-    stringBuffer.append(TEXT_818);
+    stringBuffer.append(TEXT_812);
     stringBuffer.append(genClass.getQualifiedOperationID(overrideGenOperation));
     stringBuffer.append(positiveOperationOffsetCorrection);
     stringBuffer.append(TEXT_6);
     }
     }
-    stringBuffer.append(TEXT_828);
+    stringBuffer.append(TEXT_822);
     }
     }
     for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {
-    stringBuffer.append(TEXT_815);
+    stringBuffer.append(TEXT_809);
     stringBuffer.append(mixinGenClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_827);
+    stringBuffer.append(TEXT_821);
     for (GenOperation genOperation : mixinGenClass.getGenOperations()) { GenOperation overrideGenOperation = genClass.getOverrideGenOperation(genOperation);
-    stringBuffer.append(TEXT_817);
+    stringBuffer.append(TEXT_811);
     stringBuffer.append(mixinGenClass.getQualifiedOperationID(genOperation));
-    stringBuffer.append(TEXT_818);
+    stringBuffer.append(TEXT_812);
     stringBuffer.append(genClass.getQualifiedOperationID(overrideGenOperation != null ? overrideGenOperation : genOperation));
     stringBuffer.append(positiveOperationOffsetCorrection);
     stringBuffer.append(TEXT_6);
     }
-    stringBuffer.append(TEXT_819);
+    stringBuffer.append(TEXT_813);
     }
     if (genClass.hasOffsetCorrection() && !genClass.getGenOperations().isEmpty()) {
-    stringBuffer.append(TEXT_815);
+    stringBuffer.append(TEXT_809);
     stringBuffer.append(genClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_829);
+    stringBuffer.append(TEXT_823);
     stringBuffer.append(negativeOperationOffsetCorrection);
-    stringBuffer.append(TEXT_243);
+    stringBuffer.append(TEXT_240);
     for (GenOperation genOperation : genClass.getGenOperations()) {
-    stringBuffer.append(TEXT_817);
+    stringBuffer.append(TEXT_811);
     stringBuffer.append(genClass.getQualifiedOperationID(genOperation));
-    stringBuffer.append(TEXT_818);
+    stringBuffer.append(TEXT_812);
     stringBuffer.append(genClass.getQualifiedOperationID(genOperation));
     stringBuffer.append(positiveOperationOffsetCorrection);
     stringBuffer.append(TEXT_6);
     }
-    stringBuffer.append(TEXT_819);
+    stringBuffer.append(TEXT_813);
     }
-    stringBuffer.append(TEXT_830);
+    stringBuffer.append(TEXT_824);
     }
     if (isImplementation && genModel.isVirtualDelegation()) { String eVirtualValuesField = genClass.getEVirtualValuesField();
     if (eVirtualValuesField != null) {
@@ -7343,15 +7400,15 @@
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_831);
+    stringBuffer.append(TEXT_825);
     stringBuffer.append(eVirtualValuesField);
-    stringBuffer.append(TEXT_832);
+    stringBuffer.append(TEXT_826);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_833);
+    stringBuffer.append(TEXT_827);
     stringBuffer.append(eVirtualValuesField);
-    stringBuffer.append(TEXT_834);
+    stringBuffer.append(TEXT_828);
     }
     { List<String> eVirtualIndexBitFields = genClass.getEVirtualIndexBitFields(new ArrayList<String>());
     if (!eVirtualIndexBitFields.isEmpty()) { List<String> allEVirtualIndexBitFields = genClass.getAllEVirtualIndexBitFields(new ArrayList<String>());
@@ -7359,27 +7416,27 @@
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_835);
+    stringBuffer.append(TEXT_829);
     for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(i);
-    stringBuffer.append(TEXT_836);
+    stringBuffer.append(TEXT_830);
     stringBuffer.append(allEVirtualIndexBitFields.get(i));
     stringBuffer.append(TEXT_6);
     }
-    stringBuffer.append(TEXT_837);
+    stringBuffer.append(TEXT_831);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_838);
+    stringBuffer.append(TEXT_832);
     for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(i);
-    stringBuffer.append(TEXT_839);
+    stringBuffer.append(TEXT_833);
     stringBuffer.append(allEVirtualIndexBitFields.get(i));
-    stringBuffer.append(TEXT_840);
+    stringBuffer.append(TEXT_834);
     }
-    stringBuffer.append(TEXT_841);
+    stringBuffer.append(TEXT_835);
     }
     }
     }
@@ -7391,32 +7448,32 @@
     if (genModel.useGenerics()) {
     boolean isUnchecked = false; boolean isRaw = false; LOOP: for (GenOperation genOperation : (genModel.isMinimalReflectiveMethods() ? genClass.getImplementedGenOperations() : genClass.getAllGenOperations())) { for (GenParameter genParameter : genOperation.getGenParameters()) { if (genParameter.isUncheckedCast()) { if (genParameter.getTypeGenDataType() == null || !genParameter.getTypeGenDataType().isObjectType()) { isUnchecked = true; } if (genParameter.usesOperationTypeParameters() && !genParameter.getEcoreParameter().getEGenericType().getETypeArguments().isEmpty()) { isRaw = true; break LOOP; }}}}
     if (isUnchecked) {
-    stringBuffer.append(TEXT_842);
+    stringBuffer.append(TEXT_836);
     if (!isRaw) {
-    stringBuffer.append(TEXT_843);
+    stringBuffer.append(TEXT_837);
     } else {
-    stringBuffer.append(TEXT_844);
+    stringBuffer.append(TEXT_838);
     }
     stringBuffer.append(TEXT_86);
     }
     }
-    stringBuffer.append(TEXT_845);
+    stringBuffer.append(TEXT_839);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EList"));
     stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_846);
+    stringBuffer.append(TEXT_840);
     stringBuffer.append(genModel.getImportedName(isGWT ? "org.eclipse.emf.common.util.InvocationTargetException" : "java.lang.reflect.InvocationTargetException"));
-    stringBuffer.append(TEXT_847);
+    stringBuffer.append(TEXT_841);
     stringBuffer.append(negativeOperationOffsetCorrection);
-    stringBuffer.append(TEXT_734);
+    stringBuffer.append(TEXT_727);
     for (GenOperation genOperation : (genModel.isMinimalReflectiveMethods() ? genClass.getImplementedGenOperations() : genClass.getAllGenOperations())) { List<GenParameter> genParameters = genOperation.getGenParameters(); int size = genParameters.size();  boolean hasCheckedException = genOperation.hasCheckedException(); String indent = hasCheckedException ? "\t" : ""; GenOperation overrideGenOperation = genClass.getOverrideGenOperation(genOperation);
-    stringBuffer.append(TEXT_735);
+    stringBuffer.append(TEXT_728);
     stringBuffer.append(genClass.getQualifiedOperationID(overrideGenOperation != null ? overrideGenOperation : genOperation));
-    stringBuffer.append(TEXT_736);
+    stringBuffer.append(TEXT_729);
     if (hasCheckedException) {
-    stringBuffer.append(TEXT_848);
+    stringBuffer.append(TEXT_842);
     /*}*/}
     if (genOperation.isVoid()) {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(indent);
     stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_93);
@@ -7429,11 +7486,11 @@
     stringBuffer.append(genParameter.usesOperationTypeParameters() ? genParameter.getRawImportedType() : genParameter.getObjectType(genClass));
     stringBuffer.append(TEXT_86);
     }
-    stringBuffer.append(TEXT_849);
+    stringBuffer.append(TEXT_843);
     stringBuffer.append(i);
     stringBuffer.append(TEXT_86);
     if (!isJDK50 && genParameter.isPrimitiveType()) {
-    stringBuffer.append(TEXT_227);
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(genParameter.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
@@ -7441,15 +7498,15 @@
     stringBuffer.append(TEXT_149);
     }
     }
-    stringBuffer.append(TEXT_850);
+    stringBuffer.append(TEXT_844);
     stringBuffer.append(indent);
-    stringBuffer.append(TEXT_851);
+    stringBuffer.append(TEXT_845);
     } else {
-    stringBuffer.append(TEXT_244);
+    stringBuffer.append(TEXT_241);
     stringBuffer.append(indent);
-    stringBuffer.append(TEXT_852);
+    stringBuffer.append(TEXT_846);
     if (!isJDK50 && genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_301);
+    stringBuffer.append(TEXT_298);
     stringBuffer.append(genOperation.getObjectType(genClass));
     stringBuffer.append(TEXT_93);
     }
@@ -7464,11 +7521,11 @@
     stringBuffer.append(genParameter.usesOperationTypeParameters() ? genParameter.getRawImportedType() : genParameter.getObjectType(genClass));
     stringBuffer.append(TEXT_86);
     }
-    stringBuffer.append(TEXT_849);
+    stringBuffer.append(TEXT_843);
     stringBuffer.append(i);
     stringBuffer.append(TEXT_86);
     if (!isJDK50 && genParameter.isPrimitiveType()) {
-    stringBuffer.append(TEXT_227);
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(genParameter.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_21);
     }
@@ -7483,19 +7540,30 @@
     stringBuffer.append(TEXT_6);
     }
     if (hasCheckedException) {/*{*/
-    stringBuffer.append(TEXT_853);
+    stringBuffer.append(TEXT_847);
     stringBuffer.append(genModel.getImportedName("java.lang.Throwable"));
-    stringBuffer.append(TEXT_854);
+    stringBuffer.append(TEXT_848);
     stringBuffer.append(genModel.getImportedName(isGWT ? "org.eclipse.emf.common.util.InvocationTargetException" : "java.lang.reflect.InvocationTargetException"));
-    stringBuffer.append(TEXT_855);
+    stringBuffer.append(TEXT_849);
     }
     }
-    stringBuffer.append(TEXT_329);
+    if (forceDefaultCase) {
+    stringBuffer.append(TEXT_738);
+    } else { // {
+    stringBuffer.append(TEXT_326);
+    }
     if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_856);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_850);
     } else {
-    stringBuffer.append(TEXT_857);
+    stringBuffer.append(TEXT_7);
+    stringBuffer.append(indentDefaultCase);
+    stringBuffer.append(TEXT_851);
     }
+    if (forceDefaultCase) { // {
+    stringBuffer.append(TEXT_326);
+    } // }
     stringBuffer.append(TEXT_176);
     }
     if (!genClass.hasImplementedToStringGenOperation() && isImplementation && !genModel.isReflectiveDelegation() && !genModel.isDynamicDelegation() && !genClass.getToStringGenFeatures().isEmpty()) {
@@ -7503,33 +7571,33 @@
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_124);
     }
-    stringBuffer.append(TEXT_858);
+    stringBuffer.append(TEXT_852);
     stringBuffer.append(genModel.useGenerics() ? "StringBuilder" : "StringBuffer");
-    stringBuffer.append(TEXT_859);
+    stringBuffer.append(TEXT_853);
     stringBuffer.append(genModel.useGenerics() ? "StringBuilder" : "StringBuffer");
-    stringBuffer.append(TEXT_860);
+    stringBuffer.append(TEXT_854);
     { boolean first = true;
     for (GenFeature genFeature : genClass.getToStringGenFeatures()) {
     if (first) { first = false;
-    stringBuffer.append(TEXT_861);
+    stringBuffer.append(TEXT_855);
     stringBuffer.append(genFeature.getName());
-    stringBuffer.append(TEXT_862);
+    stringBuffer.append(TEXT_856);
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_863);
+    stringBuffer.append(TEXT_857);
     stringBuffer.append(genFeature.getName());
-    stringBuffer.append(TEXT_862);
+    stringBuffer.append(TEXT_856);
     stringBuffer.append(genModel.getNonNLS());
     }
     if (genFeature.isUnsettable() && !genFeature.isListType()) {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_864);
+    stringBuffer.append(TEXT_858);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_865);
+    stringBuffer.append(TEXT_859);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_866);
+    stringBuffer.append(TEXT_860);
     stringBuffer.append(genModel.getNonNLS());
     } else {
     if (genClass.isFlag(genFeature)) {
@@ -7538,40 +7606,40 @@
     if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_867);
+    stringBuffer.append(TEXT_861);
     } else {
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_404);
+    stringBuffer.append(TEXT_400);
     }
-    stringBuffer.append(TEXT_868);
+    stringBuffer.append(TEXT_862);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_869);
+    stringBuffer.append(TEXT_863);
     stringBuffer.append(genModel.getNonNLS());
     } else {
     stringBuffer.append(TEXT_136);
     if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_867);
+    stringBuffer.append(TEXT_861);
     } else {
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_404);
+    stringBuffer.append(TEXT_400);
     }
-    stringBuffer.append(TEXT_870);
+    stringBuffer.append(TEXT_864);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_270);
+    stringBuffer.append(TEXT_267);
     stringBuffer.append(genClass.getFlagsField(genFeature));
+    stringBuffer.append(TEXT_265);
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_268);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_271);
-    stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_871);
+    stringBuffer.append(TEXT_865);
     stringBuffer.append(genModel.getNonNLS());
     }
     } else {
@@ -7579,50 +7647,50 @@
     if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_867);
+    stringBuffer.append(TEXT_861);
     } else {
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_404);
+    stringBuffer.append(TEXT_400);
     }
-    stringBuffer.append(TEXT_870);
+    stringBuffer.append(TEXT_864);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_872);
+    stringBuffer.append(TEXT_866);
     stringBuffer.append(genModel.getNonNLS());
     }
     }
     } else {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_873);
+    stringBuffer.append(TEXT_867);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     if (!genFeature.isListType() && !genFeature.isReferenceType()){
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getEDefault());
     }
-    stringBuffer.append(TEXT_265);
+    stringBuffer.append(TEXT_262);
     } else {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_874);
+    stringBuffer.append(TEXT_868);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_875);
+    stringBuffer.append(TEXT_869);
     } else {
-    stringBuffer.append(TEXT_876);
+    stringBuffer.append(TEXT_870);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_270);
+    stringBuffer.append(TEXT_267);
     stringBuffer.append(genClass.getFlagsField(genFeature));
+    stringBuffer.append(TEXT_265);
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_268);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_271);
-    stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_877);
+    stringBuffer.append(TEXT_871);
     }
     } else {
-    stringBuffer.append(TEXT_876);
+    stringBuffer.append(TEXT_870);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_146);
     }
@@ -7630,7 +7698,7 @@
     }
     }
     }
-    stringBuffer.append(TEXT_878);
+    stringBuffer.append(TEXT_872);
     }
     if (isImplementation && genClass.isMapEntry()) { GenFeature keyFeature = genClass.getMapEntryKeyFeature(); GenFeature valueFeature = genClass.getMapEntryValueFeature();
     String objectType = genModel.getImportedName("java.lang.Object");
@@ -7642,120 +7710,144 @@
     stringBuffer.append(TEXT_43);
     stringBuffer.append(genModel.getImportedName("com.google.gwt.user.client.rpc.GwtTransient"));
     }
-    stringBuffer.append(TEXT_879);
+    stringBuffer.append(TEXT_873);
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
+    stringBuffer.append(TEXT_874);
     stringBuffer.append(objectType);
+    stringBuffer.append(TEXT_875);
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
+    stringBuffer.append(TEXT_876);
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
+    stringBuffer.append(TEXT_131);
+    stringBuffer.append(keyType);
+    stringBuffer.append(TEXT_877);
+    if (!isJDK50 && keyFeature.isPrimitiveType()) {
+    stringBuffer.append(TEXT_275);
+    stringBuffer.append(keyFeature.getObjectType(genClass));
+    stringBuffer.append(TEXT_878);
+    } else {
+    stringBuffer.append(TEXT_879);
+    }
+    stringBuffer.append(TEXT_123);
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_880);
     stringBuffer.append(keyType);
     stringBuffer.append(TEXT_881);
-    if (!isJDK50 && keyFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_278);
-    stringBuffer.append(keyFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_882);
-    } else {
-    stringBuffer.append(TEXT_883);
-    }
-    stringBuffer.append(TEXT_884);
-    stringBuffer.append(keyType);
-    stringBuffer.append(TEXT_885);
     if (keyFeature.isListType()) {
-    stringBuffer.append(TEXT_886);
+    stringBuffer.append(TEXT_882);
     if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("java.util.Collection"));
     stringBuffer.append(TEXT_86);
     }
-    stringBuffer.append(TEXT_887);
+    stringBuffer.append(TEXT_883);
     } else if (isJDK50) {
-    stringBuffer.append(TEXT_888);
+    stringBuffer.append(TEXT_884);
     } else if (keyFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_889);
+    stringBuffer.append(TEXT_885);
     stringBuffer.append(keyFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_890);
+    stringBuffer.append(TEXT_886);
     stringBuffer.append(keyFeature.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_650);
+    stringBuffer.append(TEXT_643);
+    } else {
+    stringBuffer.append(TEXT_887);
+    stringBuffer.append(keyFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_888);
+    }
+    stringBuffer.append(TEXT_123);
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
+    stringBuffer.append(TEXT_131);
+    stringBuffer.append(valueType);
+    stringBuffer.append(TEXT_889);
+    if (!isJDK50 && valueFeature.isPrimitiveType()) {
+    stringBuffer.append(TEXT_275);
+    stringBuffer.append(valueFeature.getObjectType(genClass));
+    stringBuffer.append(TEXT_890);
     } else {
     stringBuffer.append(TEXT_891);
-    stringBuffer.append(keyFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_892);
     }
+    stringBuffer.append(TEXT_123);
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
+    stringBuffer.append(TEXT_131);
+    stringBuffer.append(valueType);
+    stringBuffer.append(TEXT_892);
+    stringBuffer.append(valueType);
     stringBuffer.append(TEXT_893);
     stringBuffer.append(valueType);
     stringBuffer.append(TEXT_894);
-    if (!isJDK50 && valueFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_278);
-    stringBuffer.append(valueFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_895);
-    } else {
-    stringBuffer.append(TEXT_896);
-    }
-    stringBuffer.append(TEXT_893);
-    stringBuffer.append(valueType);
-    stringBuffer.append(TEXT_897);
-    stringBuffer.append(valueType);
-    stringBuffer.append(TEXT_898);
-    stringBuffer.append(valueType);
-    stringBuffer.append(TEXT_899);
     if (valueFeature.isListType()) {
-    stringBuffer.append(TEXT_900);
+    stringBuffer.append(TEXT_895);
     if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("java.util.Collection"));
     stringBuffer.append(TEXT_86);
     }
-    stringBuffer.append(TEXT_901);
+    stringBuffer.append(TEXT_896);
     } else if (isJDK50) {
-    stringBuffer.append(TEXT_902);
+    stringBuffer.append(TEXT_897);
     } else if (valueFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_903);
+    stringBuffer.append(TEXT_898);
     stringBuffer.append(valueFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_904);
+    stringBuffer.append(TEXT_899);
     stringBuffer.append(valueFeature.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_650);
+    stringBuffer.append(TEXT_643);
     } else {
-    stringBuffer.append(TEXT_905);
+    stringBuffer.append(TEXT_900);
     stringBuffer.append(valueFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_906);
+    stringBuffer.append(TEXT_901);
     }
-    stringBuffer.append(TEXT_907);
+    stringBuffer.append(TEXT_902);
     if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_73);
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(eMapType);
-    stringBuffer.append(TEXT_908);
+    stringBuffer.append(TEXT_903);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
-    stringBuffer.append(TEXT_909);
+    stringBuffer.append(TEXT_904);
     stringBuffer.append(eMapType);
-    stringBuffer.append(TEXT_910);
+    stringBuffer.append(TEXT_905);
     }
     if (isImplementation) {
     if (!UML2GenModelUtil.isOperationsClasses(genPackage) && UML2GenModelUtil.hasOCLOperationBodies(genClass) && (!UML2GenModelUtil.hasOCLOperationBodies(genClass.getClassExtendsGenClass()) || UML2GenModelUtil.isOperationsClasses(genClass.getClassExtendsGenClass().getGenPackage()))) {
-    stringBuffer.append(TEXT_911);
+    stringBuffer.append(TEXT_906);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
-    stringBuffer.append(TEXT_912);
+    stringBuffer.append(TEXT_907);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
-    stringBuffer.append(TEXT_913);
+    stringBuffer.append(TEXT_908);
     }
     if (genClass.isModelRoot()) {
     if (UML2GenModelUtil.isFactoryMethods(genClass)) {
-    stringBuffer.append(TEXT_914);
+    stringBuffer.append(TEXT_909);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
-    stringBuffer.append(TEXT_915);
+    stringBuffer.append(TEXT_910);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_916);
+    stringBuffer.append(TEXT_911);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));
-    stringBuffer.append(TEXT_917);
+    stringBuffer.append(TEXT_912);
     }
     if (UML2GenModelUtil.isCacheAdapterSupport(genClass)) {
-    stringBuffer.append(TEXT_918);
+    stringBuffer.append(TEXT_913);
     stringBuffer.append(genClass.getFormattedName());
-    stringBuffer.append(TEXT_919);
+    stringBuffer.append(TEXT_914);
     stringBuffer.append(genClass.getFormattedName());
-    stringBuffer.append(TEXT_920);
+    stringBuffer.append(TEXT_915);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
-    stringBuffer.append(TEXT_921);
+    stringBuffer.append(TEXT_916);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
-    stringBuffer.append(TEXT_922);
+    stringBuffer.append(TEXT_917);
     }
     }
     for (GenFeature genFeature : UML2GenModelUtil.getImplementedUnionGenFeatures(genClass)) {
@@ -7770,22 +7862,22 @@
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_923);
+    stringBuffer.append(TEXT_918);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_416);
+    stringBuffer.append(TEXT_415);
     if (genClass.getExtendedGenFeatures().contains(genFeature)) {
     if (UML2GenModelUtil.isDerivedUnionListType(genClass.getClassExtendsGenClass(), genFeature)) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_924);
+    stringBuffer.append(TEXT_919);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_650);
+    stringBuffer.append(TEXT_643);
     } else {
-    stringBuffer.append(TEXT_925);
+    stringBuffer.append(TEXT_920);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_923);
+    stringBuffer.append(TEXT_918);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_146);
     }
@@ -7795,40 +7887,40 @@
     if (subsetGenFeature.isListType()) {
     if (subsetGenFeature.isResolveProxies() || UML2GenModelUtil.isUnion(subsetGenFeature)) {
     if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
-    stringBuffer.append(TEXT_332);
+    stringBuffer.append(TEXT_329);
     stringBuffer.append(subsetGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_926);
+    stringBuffer.append(TEXT_921);
     stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_662);
+    stringBuffer.append(TEXT_655);
     stringBuffer.append(genModel.getImportedName(subsetGenFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_663);
+    stringBuffer.append(TEXT_656);
     }
-    stringBuffer.append(TEXT_927);
+    stringBuffer.append(TEXT_922);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_928);
+    stringBuffer.append(TEXT_923);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_929);
+    stringBuffer.append(TEXT_924);
     } else {
     if (genClass.isField(subsetGenFeature)) {
-    stringBuffer.append(TEXT_335);
+    stringBuffer.append(TEXT_332);
     stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
-    stringBuffer.append(TEXT_930);
+    stringBuffer.append(TEXT_925);
     stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_662);
+    stringBuffer.append(TEXT_655);
     stringBuffer.append(genModel.getImportedName(subsetGenFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_663);
+    stringBuffer.append(TEXT_656);
     }
-    stringBuffer.append(TEXT_927);
+    stringBuffer.append(TEXT_922);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_928);
+    stringBuffer.append(TEXT_923);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_929);
+    stringBuffer.append(TEXT_924);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(subsetGenFeature.getImportedType(genClass));
@@ -7836,73 +7928,73 @@
     stringBuffer.append(subsetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_931);
+    stringBuffer.append(TEXT_926);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_932);
+    stringBuffer.append(TEXT_927);
     stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_662);
+    stringBuffer.append(TEXT_655);
     stringBuffer.append(genModel.getImportedName(subsetGenFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_663);
+    stringBuffer.append(TEXT_656);
     }
-    stringBuffer.append(TEXT_927);
+    stringBuffer.append(TEXT_922);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
+    stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_928);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_924);
+    }
+    }
+    } else {
+    if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
+    stringBuffer.append(TEXT_329);
+    stringBuffer.append(subsetGenFeature.getAccessorName());
+    stringBuffer.append(TEXT_929);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_930);
+    stringBuffer.append(subsetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_931);
+    } else {
+    if (genClass.isField(subsetGenFeature)) {
+    stringBuffer.append(TEXT_332);
+    stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
+    stringBuffer.append(TEXT_932);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_930);
+    stringBuffer.append(subsetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_931);
+    } else {
+    stringBuffer.append(TEXT_119);
+    stringBuffer.append(subsetGenFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_70);
+    stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_76);
+    stringBuffer.append(subsetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_926);
     stringBuffer.append(subsetGenFeature.getSafeName());
     stringBuffer.append(TEXT_933);
     stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_930);
+    stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_556);
+    }
+    }
+    }
+    } else {
+    if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
+    stringBuffer.append(TEXT_329);
+    stringBuffer.append(subsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_929);
-    }
-    }
-    } else {
-    if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
-    stringBuffer.append(TEXT_332);
-    stringBuffer.append(subsetGenFeature.getAccessorName());
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_934);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_935);
-    stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_936);
+    if (subsetGenFeature.isBasicGet()) {
+    stringBuffer.append(TEXT_346);
+    stringBuffer.append(subsetGenFeature.getAccessorName());
     } else {
-    if (genClass.isField(subsetGenFeature)) {
-    stringBuffer.append(TEXT_335);
-    stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
-    stringBuffer.append(TEXT_937);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_935);
     stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_936);
-    } else {
-    stringBuffer.append(TEXT_119);
-    stringBuffer.append(subsetGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_70);
-    stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_76);
-    stringBuffer.append(subsetGenFeature.getGetAccessor());
+    }
     stringBuffer.append(TEXT_931);
-    stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_938);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_935);
-    stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_563);
-    }
-    }
-    }
-    } else {
-    if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
-    stringBuffer.append(TEXT_332);
-    stringBuffer.append(subsetGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_934);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_939);
-    if (subsetGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_349);
-    stringBuffer.append(subsetGenFeature.getAccessorName());
-    } else {
-    stringBuffer.append(subsetGenFeature.getGetAccessor());
-    }
-    stringBuffer.append(TEXT_936);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(subsetGenFeature.getImportedType(genClass));
@@ -7910,18 +8002,18 @@
     stringBuffer.append(subsetGenFeature.getSafeName());
     stringBuffer.append(TEXT_76);
     if (subsetGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_349);
+    stringBuffer.append(TEXT_346);
     stringBuffer.append(subsetGenFeature.getAccessorName());
     } else {
     stringBuffer.append(subsetGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_337);
+    stringBuffer.append(TEXT_334);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_495);
+    stringBuffer.append(TEXT_488);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_939);
+    stringBuffer.append(TEXT_934);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_563);
+    stringBuffer.append(TEXT_556);
     }
     }
     }
@@ -7938,19 +8030,19 @@
     stringBuffer.append(TEXT_124);
     }
     }
-    stringBuffer.append(TEXT_511);
+    stringBuffer.append(TEXT_504);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_132);
     if (!UML2GenModelUtil.getIsSetSubsetGenFeatures(genClass, genFeature).isEmpty()) { boolean first = true;
     if (first && genClass.getExtendedGenFeatures().contains(genFeature)) { first = false;
-    stringBuffer.append(TEXT_940);
+    stringBuffer.append(TEXT_935);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     }
     for (Iterator<GenFeature> isSetSubsetGenFeatures = UML2GenModelUtil.getIsSetSubsetGenFeatures(genClass, genFeature).iterator(); isSetSubsetGenFeatures.hasNext();) { GenFeature isSetSubsetGenFeature = isSetSubsetGenFeatures.next();
     if (first) { first = false;
     if (isSetSubsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(isSetSubsetGenFeature) || UML2GenModelUtil.isRedefinition(isSetSubsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, isSetSubsetGenFeature)) {
-    stringBuffer.append(TEXT_941);
+    stringBuffer.append(TEXT_936);
     stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     if (!isSetSubsetGenFeatures.hasNext()) {
@@ -7958,27 +8050,27 @@
     }
     } else if (UML2GenModelUtil.isDuplicate(isSetSubsetGenFeature) && !UML2GenModelUtil.isRedefinition(isSetSubsetGenFeature)) {
     if (isSetSubsetGenFeature.isListType()) {
-    stringBuffer.append(TEXT_635);
+    stringBuffer.append(TEXT_628);
     stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_942);
+    stringBuffer.append(TEXT_937);
     if (!isSetSubsetGenFeatures.hasNext()) {
     stringBuffer.append(TEXT_6);
     }
     } else {
     stringBuffer.append(TEXT_172);
     if (isSetSubsetGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_349);
+    stringBuffer.append(TEXT_346);
     stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     } else {
     stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_943);
+    stringBuffer.append(TEXT_938);
     if (!isSetSubsetGenFeatures.hasNext()) {
     stringBuffer.append(TEXT_6);
     }
     }
     } else {
-    stringBuffer.append(TEXT_513);
+    stringBuffer.append(TEXT_506);
     stringBuffer.append(genClass.getQualifiedFeatureID(isSetSubsetGenFeature));
     stringBuffer.append(TEXT_86);
     if (!isSetSubsetGenFeatures.hasNext()) {
@@ -7987,7 +8079,7 @@
     }
     } else {
     if (isSetSubsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(isSetSubsetGenFeature) || UML2GenModelUtil.isRedefinition(isSetSubsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, isSetSubsetGenFeature)) {
-    stringBuffer.append(TEXT_944);
+    stringBuffer.append(TEXT_939);
     stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_21);
     if (!isSetSubsetGenFeatures.hasNext()) {
@@ -7995,27 +8087,27 @@
     }
     } else if (UML2GenModelUtil.isDuplicate(isSetSubsetGenFeature) && !UML2GenModelUtil.isRedefinition(isSetSubsetGenFeature)) {
     if (isSetSubsetGenFeature.isListType()) {
-    stringBuffer.append(TEXT_945);
+    stringBuffer.append(TEXT_940);
     stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_942);
+    stringBuffer.append(TEXT_937);
     if (!isSetSubsetGenFeatures.hasNext()) {
     stringBuffer.append(TEXT_6);
     }
     } else {
-    stringBuffer.append(TEXT_946);
+    stringBuffer.append(TEXT_941);
     if (isSetSubsetGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_349);
+    stringBuffer.append(TEXT_346);
     stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     } else {
     stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_943);
+    stringBuffer.append(TEXT_938);
     if (!isSetSubsetGenFeatures.hasNext()) {
     stringBuffer.append(TEXT_6);
     }
     }
     } else {
-    stringBuffer.append(TEXT_947);
+    stringBuffer.append(TEXT_942);
     stringBuffer.append(genClass.getQualifiedFeatureID(isSetSubsetGenFeature));
     stringBuffer.append(TEXT_86);
     if (!isSetSubsetGenFeatures.hasNext()) {
@@ -8026,11 +8118,11 @@
     }
     } else {
     if (genClass.getExtendedGenFeatures().contains(genFeature)) {
-    stringBuffer.append(TEXT_940);
+    stringBuffer.append(TEXT_935);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     } else {
-    stringBuffer.append(TEXT_948);
+    stringBuffer.append(TEXT_943);
     }
     }
     stringBuffer.append(TEXT_176);
@@ -8039,10 +8131,13 @@
     if (genFeature.isGet()) {
     stringBuffer.append(TEXT_128);
     if (isJDK50) { //getGenFeature.annotations.insert.javajetinc
+    // Check that the annotation wouldn't be emitted also by the base Ecore template (bug 547424). 
+    if (!(useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingGetAccessorOperation(genFeature) && !genFeature.isSuppressedGetVisibility())) {
     if (genClass.getExtendedGenFeatures().contains(genFeature) || (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
     stringBuffer.append(TEXT_124);
     }
     }
+    }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
@@ -8051,23 +8146,23 @@
     if (genFeature.isListType()) {
     if (redefinitionGenFeature.isListType()) {
     if (genModel.useGenerics() && !redefinitionGenFeature.getListItemType(genClass).equals(genFeature.getListItemType(genClass))) {
-    stringBuffer.append(TEXT_949);
+    stringBuffer.append(TEXT_944);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(redefinitionGenFeature.getUncapName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_347);
+    stringBuffer.append(TEXT_344);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EList") + "<?>");
     stringBuffer.append(TEXT_86);
     stringBuffer.append(redefinitionGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_950);
+    stringBuffer.append(TEXT_945);
     stringBuffer.append(redefinitionGenFeature.getUncapName());
     stringBuffer.append(TEXT_6);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(redefinitionGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     }
     } else {
     stringBuffer.append(TEXT_119);
@@ -8082,42 +8177,42 @@
     if (genModel.useGenerics()) {
     stringBuffer.append("<" + genFeature.getListItemType(genClass) + ">");
     }
-    stringBuffer.append(TEXT_951);
+    stringBuffer.append(TEXT_946);
     stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(redefinitionGenFeature.getUncapName());
     stringBuffer.append(TEXT_76);
     stringBuffer.append(redefinitionGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_337);
+    stringBuffer.append(TEXT_334);
     stringBuffer.append(redefinitionGenFeature.getUncapName());
-    stringBuffer.append(TEXT_495);
+    stringBuffer.append(TEXT_488);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_939);
+    stringBuffer.append(TEXT_934);
     stringBuffer.append(redefinitionGenFeature.getUncapName());
-    stringBuffer.append(TEXT_952);
+    stringBuffer.append(TEXT_947);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.UnionEObjectEList"));
     if (genModel.useGenerics()) {
     stringBuffer.append("<" + genFeature.getListItemType(genClass) + ">");
     }
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_259);
     if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_318);
     } else {
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     }
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_953);
+    stringBuffer.append(TEXT_948);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_954);
+    stringBuffer.append(TEXT_949);
     }
     } else {
     if (redefinitionGenFeature.isListType()) {
-    stringBuffer.append(TEXT_627);
+    stringBuffer.append(TEXT_620);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(redefinitionGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     }
     }
     stringBuffer.append(TEXT_176);
@@ -8131,20 +8226,20 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_343);
+    stringBuffer.append(TEXT_340);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_132);
     if (redefinitionGenFeature.isListType()) {
-    stringBuffer.append(TEXT_627);
+    stringBuffer.append(TEXT_620);
     } else {
     stringBuffer.append(TEXT_172);
     if (redefinitionGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_349);
+    stringBuffer.append(TEXT_346);
     stringBuffer.append(redefinitionGenFeature.getAccessorName());
     } else {
     stringBuffer.append(redefinitionGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_232);
     }
     stringBuffer.append(TEXT_176);
     }
@@ -8165,49 +8260,49 @@
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
-    stringBuffer.append(TEXT_353);
+    stringBuffer.append(TEXT_350);
     if (!redefinitionGenFeature.isSet() || redefinitionGenFeature.isListType()) {
-    stringBuffer.append(TEXT_955);
+    stringBuffer.append(TEXT_950);
     } else {
     if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
+    stringBuffer.append(TEXT_351);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_352);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_353);
+    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_354);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_355);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_356);
-    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_357);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_358);
-    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_359);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     }
     if (redefinitionGenFeature.isBasicSet()) {
-    stringBuffer.append(TEXT_956);
+    stringBuffer.append(TEXT_951);
     stringBuffer.append(redefinitionGenFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     }
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_362);
+    stringBuffer.append(TEXT_358);
     } else {
-    stringBuffer.append(TEXT_548);
+    stringBuffer.append(TEXT_541);
     stringBuffer.append(redefinitionGenFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     }
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_957);
+    stringBuffer.append(TEXT_952);
     }
     }
     stringBuffer.append(TEXT_176);
@@ -8215,44 +8310,47 @@
     if (genFeature.isSet()) {
     stringBuffer.append(TEXT_128);
     if (isJDK50) { //setGenFeature.annotations.insert.javajetinc
+    // Check that the annotation wouldn't be emitted also by the base Ecore template (bug 547424). 
+    if (!(useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingSetAccessorOperation(genFeature) && !genFeature.isSuppressedSetVisibility())) {
     if (!genClass.getExtendedGenFeatures().contains(genFeature) && (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
     stringBuffer.append(TEXT_124);
     }
     }
+    }
     stringBuffer.append(TEXT_159);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_155);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_416);
+    stringBuffer.append(TEXT_415);
     if (!redefinitionGenFeature.isSet() || redefinitionGenFeature.isListType()) {
-    stringBuffer.append(TEXT_955);
+    stringBuffer.append(TEXT_950);
     } else {
     if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
+    stringBuffer.append(TEXT_351);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_352);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_353);
+    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_354);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_355);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_356);
-    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_357);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_358);
-    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_359);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_326);
     }
-    stringBuffer.append(TEXT_548);
+    stringBuffer.append(TEXT_541);
     stringBuffer.append(redefinitionGenFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     }
-    stringBuffer.append(TEXT_421);
+    stringBuffer.append(TEXT_410);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_146);
     }
@@ -8260,7 +8358,7 @@
     }
     if (isImplementation && genFeature.isListType()) {
     if (!UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)).isEmpty()) {
-    stringBuffer.append(TEXT_523);
+    stringBuffer.append(TEXT_516);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_51);
     stringBuffer.append(genFeature.getFormattedName());
@@ -8268,14 +8366,14 @@
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_63);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_524);
+    stringBuffer.append(TEXT_517);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_525);
+    stringBuffer.append(TEXT_518);
     stringBuffer.append(UML2GenModelUtil.getSubsetFeatureIDArray(genClass, genFeature, UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)));
     stringBuffer.append(TEXT_45);
     }
     if (!UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false).isEmpty()) {
-    stringBuffer.append(TEXT_526);
+    stringBuffer.append(TEXT_519);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_51);
     stringBuffer.append(genFeature.getFormattedName());
@@ -8283,9 +8381,9 @@
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_63);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_524);
+    stringBuffer.append(TEXT_517);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_527);
+    stringBuffer.append(TEXT_520);
     stringBuffer.append(UML2GenModelUtil.getSupersetFeatureIDArray(genClass, genFeature));
     stringBuffer.append(TEXT_45);
     }
@@ -8294,24 +8392,24 @@
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     if (isInterface) {
     if (!genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_528);
+    stringBuffer.append(TEXT_521);
     if (!keyGenFeatures.isEmpty()) {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_530);
+    stringBuffer.append(TEXT_523);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_531);
+    stringBuffer.append(TEXT_524);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     } else {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(genFeature.getType(genClass));
-    stringBuffer.append(TEXT_530);
+    stringBuffer.append(TEXT_523);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_532);
+    stringBuffer.append(TEXT_525);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
@@ -8319,40 +8417,40 @@
     }
     } else {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_533);
+    stringBuffer.append(TEXT_526);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     } else {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(genFeature.getType(genClass));
-    stringBuffer.append(TEXT_534);
+    stringBuffer.append(TEXT_527);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     }
     }
-    stringBuffer.append(TEXT_486);
+    stringBuffer.append(TEXT_209);
     for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_536);
+    stringBuffer.append(TEXT_529);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_537);
+    stringBuffer.append(TEXT_530);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_538);
+    stringBuffer.append(TEXT_531);
     }
-    stringBuffer.append(TEXT_539);
+    stringBuffer.append(TEXT_532);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_540);
+    stringBuffer.append(TEXT_533);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_541);
+    stringBuffer.append(TEXT_534);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_542);
+    stringBuffer.append(TEXT_535);
     }
     } else {
     stringBuffer.append(TEXT_128);
@@ -8361,7 +8459,7 @@
     if (!genFeature.isSuppressedGetVisibility()) {
     stringBuffer.append(TEXT_162);
     stringBuffer.append(genFeature.getListItemType(genClass));
-    stringBuffer.append(TEXT_543);
+    stringBuffer.append(TEXT_536);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     if (!keyGenFeatures.isEmpty()) {
@@ -8369,7 +8467,7 @@
     stringBuffer.append(TEXT_149);
     }
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_544);
+    stringBuffer.append(TEXT_537);
     }
     } else { int index = 0;
     if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
@@ -8377,7 +8475,7 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genFeature.getListItemType(genClass));
-    stringBuffer.append(TEXT_543);
+    stringBuffer.append(TEXT_536);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     if (!keyGenFeatures.isEmpty()) {
@@ -8385,21 +8483,21 @@
     stringBuffer.append(TEXT_149);
     }
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_545);
+    stringBuffer.append(TEXT_538);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
     stringBuffer.append(TEXT_155);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_546);
+    stringBuffer.append(TEXT_539);
     if (genFeature.isListType()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_547);
+    stringBuffer.append(TEXT_540);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_548);
+    stringBuffer.append(TEXT_541);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_157);
     stringBuffer.append(genFeature.getCapName());
@@ -8408,50 +8506,50 @@
     for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {
     if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_549);
+    stringBuffer.append(TEXT_542);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_550);
+    stringBuffer.append(TEXT_543);
     for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
-    stringBuffer.append(TEXT_549);
+    stringBuffer.append(TEXT_542);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_551);
+    stringBuffer.append(TEXT_544);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_174);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_552);
+    stringBuffer.append(TEXT_545);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_553);
+    stringBuffer.append(TEXT_546);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_554);
+    stringBuffer.append(TEXT_547);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_555);
+    stringBuffer.append(TEXT_548);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_556);
+    stringBuffer.append(TEXT_549);
     index++;}
-    stringBuffer.append(TEXT_557);
+    stringBuffer.append(TEXT_550);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_558);
+    stringBuffer.append(TEXT_551);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_559);
+    stringBuffer.append(TEXT_552);
     stringBuffer.append(keyGenFeature.getCapName());
     stringBuffer.append(TEXT_93);
     for (int n = nestedKeyGenFeatures.size(); n > 0; n--) { GenFeature nestedKeyGenFeature = nestedKeyGenFeatures.get(nestedKeyGenFeatures.size() - n);
     if (first) { first = false; } else {
     stringBuffer.append(TEXT_149);
     }
-    stringBuffer.append(TEXT_560);
+    stringBuffer.append(TEXT_553);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_561);
+    stringBuffer.append(TEXT_554);
     stringBuffer.append(nestedKeyGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_562);
+    stringBuffer.append(TEXT_555);
     }
-    stringBuffer.append(TEXT_563);
+    stringBuffer.append(TEXT_556);
     } else {
-    stringBuffer.append(TEXT_417);
+    stringBuffer.append(TEXT_416);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_559);
+    stringBuffer.append(TEXT_552);
     stringBuffer.append(keyGenFeature.getCapName());
     stringBuffer.append(TEXT_93);
     for (int n = 0; n < nestedKeyGenFeatures.size(); n++) {
@@ -8465,19 +8563,19 @@
     } else {
     stringBuffer.append(TEXT_136);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_438);
+    stringBuffer.append(TEXT_435);
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_564);
+    stringBuffer.append(TEXT_557);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_565);
+    stringBuffer.append(TEXT_558);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_564);
+    stringBuffer.append(TEXT_557);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_566);
+    stringBuffer.append(TEXT_559);
     stringBuffer.append(keyGenFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
@@ -8485,7 +8583,7 @@
     }
     index++;}
     }
-    stringBuffer.append(TEXT_567);
+    stringBuffer.append(TEXT_560);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_126);
     }
@@ -8493,24 +8591,24 @@
     if (genClass.getChildrenClasses(genFeature).size() == 1 || !genFeature.getTypeGenClass().isAbstract()) { GenClass childGenClass = genClass.getChildrenClasses(genFeature).get(0);
     if (isInterface) {
     if (!genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_528);
+    stringBuffer.append(TEXT_521);
     if (!keyGenFeatures.isEmpty()) {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_530);
+    stringBuffer.append(TEXT_523);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_531);
+    stringBuffer.append(TEXT_524);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     } else {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_568);
+    stringBuffer.append(TEXT_561);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_532);
+    stringBuffer.append(TEXT_525);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
@@ -8518,38 +8616,38 @@
     }
     } else {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_533);
+    stringBuffer.append(TEXT_526);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     } else {
-    stringBuffer.append(TEXT_529);
+    stringBuffer.append(TEXT_522);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_534);
+    stringBuffer.append(TEXT_527);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_189);
     }
     }
-    stringBuffer.append(TEXT_486);
+    stringBuffer.append(TEXT_209);
     for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_536);
+    stringBuffer.append(TEXT_529);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_537);
+    stringBuffer.append(TEXT_530);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_538);
+    stringBuffer.append(TEXT_531);
     }
-    stringBuffer.append(TEXT_569);
+    stringBuffer.append(TEXT_562);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_541);
+    stringBuffer.append(TEXT_534);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_542);
+    stringBuffer.append(TEXT_535);
     }
     } else {
     stringBuffer.append(TEXT_128);
@@ -8558,7 +8656,7 @@
     if (!genFeature.isSuppressedGetVisibility()) {
     stringBuffer.append(TEXT_162);
     stringBuffer.append(genFeature.getListItemType(genClass));
-    stringBuffer.append(TEXT_543);
+    stringBuffer.append(TEXT_536);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
@@ -8570,13 +8668,13 @@
     }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genFeature.getListItemType(genClass));
-    stringBuffer.append(TEXT_543);
+    stringBuffer.append(TEXT_536);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
-    stringBuffer.append(TEXT_416);
+    stringBuffer.append(TEXT_415);
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_570);
+    stringBuffer.append(TEXT_563);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     if (!keyGenFeatures.isEmpty()) {
@@ -8592,17 +8690,17 @@
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_571);
+    stringBuffer.append(TEXT_564);
     stringBuffer.append(genFeature.getTypeGenClass().getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_146);
     if (genFeature.isListType()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_547);
+    stringBuffer.append(TEXT_540);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_548);
+    stringBuffer.append(TEXT_541);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_157);
     stringBuffer.append(genFeature.getCapName());
@@ -8611,50 +8709,50 @@
     for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {
     if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_549);
+    stringBuffer.append(TEXT_542);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_550);
+    stringBuffer.append(TEXT_543);
     for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
-    stringBuffer.append(TEXT_549);
+    stringBuffer.append(TEXT_542);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_551);
+    stringBuffer.append(TEXT_544);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_174);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_552);
+    stringBuffer.append(TEXT_545);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_553);
+    stringBuffer.append(TEXT_546);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_554);
+    stringBuffer.append(TEXT_547);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_555);
+    stringBuffer.append(TEXT_548);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_556);
+    stringBuffer.append(TEXT_549);
     index++;}
-    stringBuffer.append(TEXT_557);
+    stringBuffer.append(TEXT_550);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_558);
+    stringBuffer.append(TEXT_551);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_559);
+    stringBuffer.append(TEXT_552);
     stringBuffer.append(keyGenFeature.getCapName());
     stringBuffer.append(TEXT_93);
     for (int n = nestedKeyGenFeatures.size(); n > 0; n--) { GenFeature nestedKeyGenFeature = nestedKeyGenFeatures.get(nestedKeyGenFeatures.size() - n);
     if (first) { first = false; } else {
     stringBuffer.append(TEXT_149);
     }
-    stringBuffer.append(TEXT_560);
+    stringBuffer.append(TEXT_553);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_561);
+    stringBuffer.append(TEXT_554);
     stringBuffer.append(nestedKeyGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_562);
+    stringBuffer.append(TEXT_555);
     }
-    stringBuffer.append(TEXT_563);
+    stringBuffer.append(TEXT_556);
     } else {
-    stringBuffer.append(TEXT_417);
+    stringBuffer.append(TEXT_416);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_559);
+    stringBuffer.append(TEXT_552);
     stringBuffer.append(keyGenFeature.getCapName());
     stringBuffer.append(TEXT_93);
     for (int n = 0; n < nestedKeyGenFeatures.size(); n++) {
@@ -8668,19 +8766,19 @@
     } else {
     stringBuffer.append(TEXT_136);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_438);
+    stringBuffer.append(TEXT_435);
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_564);
+    stringBuffer.append(TEXT_557);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_565);
+    stringBuffer.append(TEXT_558);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_564);
+    stringBuffer.append(TEXT_557);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_566);
+    stringBuffer.append(TEXT_559);
     stringBuffer.append(keyGenFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
@@ -8688,7 +8786,7 @@
     }
     index++;}
     }
-    stringBuffer.append(TEXT_567);
+    stringBuffer.append(TEXT_560);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_6);
     }
@@ -8701,31 +8799,31 @@
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature) || UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
     if (isInterface) {
     if (!genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_572);
+    stringBuffer.append(TEXT_565);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_573);
+    stringBuffer.append(TEXT_566);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_574);
+    stringBuffer.append(TEXT_567);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_79);
     for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_536);
+    stringBuffer.append(TEXT_529);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_575);
+    stringBuffer.append(TEXT_568);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_576);
+    stringBuffer.append(TEXT_569);
     }
-    stringBuffer.append(TEXT_577);
+    stringBuffer.append(TEXT_570);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_573);
+    stringBuffer.append(TEXT_566);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_578);
+    stringBuffer.append(TEXT_571);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_542);
+    stringBuffer.append(TEXT_535);
     }
     } else {
     stringBuffer.append(TEXT_128);
@@ -8750,62 +8848,62 @@
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
-    stringBuffer.append(TEXT_579);
+    stringBuffer.append(TEXT_572);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false));
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_580);
+    stringBuffer.append(TEXT_573);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_581);
+    stringBuffer.append(TEXT_574);
     }
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_580);
+    stringBuffer.append(TEXT_573);
     }
     stringBuffer.append(TEXT_161);
     }
     }
     if (isInterface) {
     if (!genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_572);
+    stringBuffer.append(TEXT_565);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_573);
+    stringBuffer.append(TEXT_566);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_574);
+    stringBuffer.append(TEXT_567);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_188);
     stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_79);
     for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_535);
+    stringBuffer.append(TEXT_528);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_536);
+    stringBuffer.append(TEXT_529);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_575);
+    stringBuffer.append(TEXT_568);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_576);
+    stringBuffer.append(TEXT_569);
     }
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_582);
+    stringBuffer.append(TEXT_575);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_539);
+    stringBuffer.append(TEXT_532);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_576);
+    stringBuffer.append(TEXT_569);
     }
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_583);
+    stringBuffer.append(TEXT_576);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_584);
-    }
     stringBuffer.append(TEXT_577);
+    }
+    stringBuffer.append(TEXT_570);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_573);
+    stringBuffer.append(TEXT_566);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_578);
+    stringBuffer.append(TEXT_571);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_542);
+    stringBuffer.append(TEXT_535);
     }
     } else {
     stringBuffer.append(TEXT_128);
@@ -8819,15 +8917,15 @@
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_585);
+    stringBuffer.append(TEXT_578);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_586);
+    stringBuffer.append(TEXT_579);
     }
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_587);
+    stringBuffer.append(TEXT_580);
     }
     stringBuffer.append(TEXT_179);
     }
@@ -8842,48 +8940,48 @@
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_585);
+    stringBuffer.append(TEXT_578);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_586);
+    stringBuffer.append(TEXT_579);
     }
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_587);
+    stringBuffer.append(TEXT_580);
     }
-    stringBuffer.append(TEXT_416);
+    stringBuffer.append(TEXT_415);
     if (isJDK50) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_588);
+    stringBuffer.append(TEXT_581);
     stringBuffer.append(genModel.getImportedName(genFeature.getListItemType(genClass)));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_503);
+    stringBuffer.append(TEXT_496);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_589);
+    stringBuffer.append(TEXT_582);
     } else {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_588);
+    stringBuffer.append(TEXT_581);
     stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    stringBuffer.append(TEXT_590);
+    stringBuffer.append(TEXT_583);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_591);
+    stringBuffer.append(TEXT_584);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_144);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_592);
+    stringBuffer.append(TEXT_585);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_593);
+    stringBuffer.append(TEXT_586);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_594);
+    stringBuffer.append(TEXT_587);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_588);
     }
     for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {
     if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;
@@ -8892,35 +8990,35 @@
     stringBuffer.append(keyGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_596);
+    stringBuffer.append(TEXT_589);
     stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_597);
+    stringBuffer.append(TEXT_590);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_555);
+    stringBuffer.append(TEXT_548);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_598);
+    stringBuffer.append(TEXT_591);
     for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
     if (!first) {
-    stringBuffer.append(TEXT_599);
+    stringBuffer.append(TEXT_592);
     }
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index + n, false));
-    stringBuffer.append(TEXT_236);
+    stringBuffer.append(TEXT_233);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index + n, false));
-    stringBuffer.append(TEXT_600);
+    stringBuffer.append(TEXT_593);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_601);
+    stringBuffer.append(TEXT_594);
     if (first) {first = false;
     } else {
     stringBuffer.append(TEXT_86);
     }
     }
-    stringBuffer.append(TEXT_602);
+    stringBuffer.append(TEXT_595);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_603);
+    stringBuffer.append(TEXT_596);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_604);
+    stringBuffer.append(TEXT_597);
     stringBuffer.append(genModel.getImportedName(keyGenFeature.getQualifiedListItemType(genClass)));
     stringBuffer.append(TEXT_70);
     stringBuffer.append(keyGenFeature.getUncapName());
@@ -8928,48 +9026,48 @@
     if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName(keyGenFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_452);
+    stringBuffer.append(TEXT_446);
     }
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_605);
+    stringBuffer.append(TEXT_598);
     for (GenFeature nestedKeyGenFeature : nestedKeyGenFeatures) {
     if (nestedKeyGenFeature.isStringType()) {
-    stringBuffer.append(TEXT_606);
+    stringBuffer.append(TEXT_599);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_607);
+    stringBuffer.append(TEXT_600);
     if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("java.lang.String"));
     stringBuffer.append(TEXT_86);
     }
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_608);
+    stringBuffer.append(TEXT_601);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_609);
+    stringBuffer.append(TEXT_602);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_610);
+    stringBuffer.append(TEXT_603);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_611);
+    stringBuffer.append(TEXT_604);
     } else {
-    stringBuffer.append(TEXT_606);
+    stringBuffer.append(TEXT_599);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_610);
+    stringBuffer.append(TEXT_603);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_613);
+    stringBuffer.append(TEXT_606);
     }
-    stringBuffer.append(TEXT_614);
+    stringBuffer.append(TEXT_607);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_588);
     index++;}
-    stringBuffer.append(TEXT_380);
+    stringBuffer.append(TEXT_376);
     } else {
     stringBuffer.append(TEXT_151);
     stringBuffer.append(keyGenFeature.getImportedType(genClass));
@@ -8979,133 +9077,133 @@
     stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_615);
+    stringBuffer.append(TEXT_608);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_616);
+    stringBuffer.append(TEXT_609);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_588);
     for (GenFeature nestedKeyGenFeature : nestedKeyGenFeatures) {
     if (nestedKeyGenFeature.isStringType()) {
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(TEXT_362);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_617);
+    stringBuffer.append(TEXT_610);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_618);
-    stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_189);
-    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_609);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_619);
-    stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_189);
-    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_611);
-    } else {
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_602);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_612);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_619);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_613);
+    stringBuffer.append(TEXT_604);
+    } else {
+    stringBuffer.append(TEXT_362);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_605);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_612);
+    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_606);
     }
-    stringBuffer.append(TEXT_620);
+    stringBuffer.append(TEXT_613);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_588);
     index++;}
     }
     } else {
     if (keyGenFeature.isStringType()) {
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(TEXT_362);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_617);
+    stringBuffer.append(TEXT_610);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_618);
-    stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_189);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_609);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_619);
-    stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_189);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_611);
-    } else {
-    stringBuffer.append(TEXT_366);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_602);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_612);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_619);
     stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_189);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_613);
-    }
-    stringBuffer.append(TEXT_620);
+    stringBuffer.append(TEXT_604);
+    } else {
+    stringBuffer.append(TEXT_362);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_605);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_595);
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_606);
+    }
+    stringBuffer.append(TEXT_613);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_588);
     index++;}
     }
-    stringBuffer.append(TEXT_621);
+    stringBuffer.append(TEXT_614);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_304);
+    stringBuffer.append(TEXT_301);
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_622);
+    stringBuffer.append(TEXT_615);
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_623);
+    stringBuffer.append(TEXT_616);
     }
-    stringBuffer.append(TEXT_624);
+    stringBuffer.append(TEXT_617);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false));
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_625);
+    stringBuffer.append(TEXT_618);
     }
-    stringBuffer.append(TEXT_626);
+    stringBuffer.append(TEXT_619);
     } else {
-    stringBuffer.append(TEXT_627);
+    stringBuffer.append(TEXT_620);
     }
     stringBuffer.append(TEXT_176);
     }
     }
     }
     if (isImplementation && ((UML2GenModelUtil.isRedefinition(genFeature) && !genFeature.isIsSet()) || UML2GenModelUtil.isRedefined(genClass, genFeature))) {
-    stringBuffer.append(TEXT_628);
+    stringBuffer.append(TEXT_621);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_132);
     if (!genFeature.isUnsettable()) {
     if (UML2GenModelUtil.isRedefined(genClass, genFeature)) {
-    stringBuffer.append(TEXT_629);
+    stringBuffer.append(TEXT_622);
     } else if (genModel.isReflectiveDelegation()) {
-    stringBuffer.append(TEXT_513);
+    stringBuffer.append(TEXT_506);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else if (genFeature.isListType()) {
     if (genFeature.isWrappedFeatureMapType()) {
     if (genFeature.isVolatile()) {
-    stringBuffer.append(TEXT_518);
+    stringBuffer.append(TEXT_511);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_630);
+    stringBuffer.append(TEXT_623);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_631);
+    stringBuffer.append(TEXT_624);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_632);
+    stringBuffer.append(TEXT_625);
     }
     } else {
     if (genClass.isField(genFeature)) {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_633);
+    stringBuffer.append(TEXT_626);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
     stringBuffer.append(TEXT_119);
@@ -9116,15 +9214,15 @@
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_145);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_634);
+    stringBuffer.append(TEXT_627);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_612);
+    stringBuffer.append(TEXT_605);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_633);
+    stringBuffer.append(TEXT_626);
     } else {
-    stringBuffer.append(TEXT_635);
+    stringBuffer.append(TEXT_628);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_636);
+    stringBuffer.append(TEXT_629);
     }
     }
     }
@@ -9132,74 +9230,74 @@
     if (genClass.isField(genFeature)) {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_637);
+    stringBuffer.append(TEXT_630);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_638);
+    stringBuffer.append(TEXT_631);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_639);
+    stringBuffer.append(TEXT_632);
     } else {
-    stringBuffer.append(TEXT_640);
+    stringBuffer.append(TEXT_633);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_641);
+    stringBuffer.append(TEXT_634);
     }
     }
     } else if (genFeature.isReferenceType()) {
     if (genClass.isField(genFeature)) {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_637);
+    stringBuffer.append(TEXT_630);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_638);
+    stringBuffer.append(TEXT_631);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_639);
+    stringBuffer.append(TEXT_632);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_641);
+    stringBuffer.append(TEXT_634);
     }
     }
     } else if (genFeature.isPrimitiveType() || genFeature.isEnumType()) {
     if (genClass.isField(genFeature)) {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_642);
+    stringBuffer.append(TEXT_635);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_643);
+    stringBuffer.append(TEXT_636);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     } else {
-    stringBuffer.append(TEXT_644);
+    stringBuffer.append(TEXT_637);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_645);
+    stringBuffer.append(TEXT_638);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_502);
+    stringBuffer.append(TEXT_495);
     }
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_378);
+    stringBuffer.append(TEXT_374);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     }
     } else {
     if (genFeature.isEnumType() && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_638);
+    stringBuffer.append(TEXT_631);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_646);
+    stringBuffer.append(TEXT_639);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_647);
+    stringBuffer.append(TEXT_640);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_6);
     }
@@ -9208,11 +9306,11 @@
     if (genClass.isField(genFeature)) {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_648);
+    stringBuffer.append(TEXT_641);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_619);
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_146);
     } else {
@@ -9227,31 +9325,31 @@
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_149);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_634);
+    stringBuffer.append(TEXT_627);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_648);
+    stringBuffer.append(TEXT_641);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_619);
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_146);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_418);
+    stringBuffer.append(TEXT_417);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_649);
+    stringBuffer.append(TEXT_642);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_619);
+    stringBuffer.append(TEXT_612);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_650);
+    stringBuffer.append(TEXT_643);
     }
     }
     }
     } else {
     if (genModel.isReflectiveDelegation()) {
-    stringBuffer.append(TEXT_513);
+    stringBuffer.append(TEXT_506);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else if (!genFeature.isVolatile()) {
@@ -9269,47 +9367,47 @@
     }
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_515);
+    stringBuffer.append(TEXT_508);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_493);
+    stringBuffer.append(TEXT_486);
     stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_516);
+    stringBuffer.append(TEXT_509);
     } else {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_517);
+    stringBuffer.append(TEXT_510);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_146);
     } else if (genClass.isESetFlag(genFeature)) {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_264);
     stringBuffer.append(genClass.getESetFlagsField(genFeature));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_265);
     stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_392);
+    stringBuffer.append(TEXT_388);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_395);
+    stringBuffer.append(TEXT_391);
     }
     }
     } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_518);
+    stringBuffer.append(TEXT_511);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_280);
+    stringBuffer.append(TEXT_277);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_281);
+    stringBuffer.append(TEXT_278);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_519);
+    stringBuffer.append(TEXT_512);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_518);
+    stringBuffer.append(TEXT_511);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_408);
+    stringBuffer.append(TEXT_404);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_520);
+    stringBuffer.append(TEXT_513);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_146);
     }
@@ -9320,13 +9418,13 @@
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_189);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_305);
+    stringBuffer.append(TEXT_302);
     } else {
-    stringBuffer.append(TEXT_521);
+    stringBuffer.append(TEXT_514);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_341);
+    stringBuffer.append(TEXT_338);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_522);
+    stringBuffer.append(TEXT_515);
     }
     }
     //isSetGenFeature.todo.override.javajetinc
@@ -9351,7 +9449,7 @@
     stringBuffer.append(genOperation.getParameters(isImplementation, genClass));
     stringBuffer.append(TEXT_86);
     stringBuffer.append(genOperation.getThrows(genClass));
-    stringBuffer.append(TEXT_676);
+    stringBuffer.append(TEXT_669);
     if (genOperation.isVoid()) {
     stringBuffer.append(TEXT_119);
     stringBuffer.append(redefinitionGenOperation.getName());
@@ -9360,7 +9458,7 @@
     stringBuffer.append(TEXT_146);
     } else {
     if (redefinitionGenOperation.isVoid()) {
-    stringBuffer.append(TEXT_955);
+    stringBuffer.append(TEXT_950);
     } else {
     stringBuffer.append(TEXT_172);
     stringBuffer.append(redefinitionGenOperation.getName());
@@ -9372,7 +9470,7 @@
     stringBuffer.append(TEXT_176);
     }
     }
-    stringBuffer.append(TEXT_958);
+    stringBuffer.append(TEXT_953);
     stringBuffer.append(isInterface ? " " + genClass.getInterfaceName() : genClass.getClassName());
     // TODO fix the space above
     genModel.emitSortedImports();
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.annotations.insert.javajetinc b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.annotations.insert.javajetinc
index e88bb0a..1e71680 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.annotations.insert.javajetinc
+++ b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.annotations.insert.javajetinc
@@ -1 +1,4 @@
-<%@ include file="basicGetGenFeature.annotations.insert.javajetinc" fail="silent" %>
\ No newline at end of file
+<%// Check that the annotation wouldn't be emitted also by the base Ecore template (bug 547424). %>
+<%if (!(useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingGetAccessorOperation(genFeature) && !genFeature.isSuppressedGetVisibility())) {%>
+<%@ include file="basicGetGenFeature.annotations.insert.javajetinc" fail="silent" %>
+<%}%>
\ No newline at end of file
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/setGenFeature.annotations.insert.javajetinc b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/setGenFeature.annotations.insert.javajetinc
index ff28fb0..7a508b4 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/setGenFeature.annotations.insert.javajetinc
+++ b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/setGenFeature.annotations.insert.javajetinc
@@ -1 +1,4 @@
-<%@ include file="basicSetGenFeature.annotations.insert.javajetinc" fail="silent" %>
\ No newline at end of file
+<%// Check that the annotation wouldn't be emitted also by the base Ecore template (bug 547424). %>
+<%if (!(useInterfaceOverrideAnnotation && !genClass.isMapEntry() && !genClass.hasCollidingSetAccessorOperation(genFeature) && !genFeature.isSuppressedSetVisibility())) {%>
+<%@ include file="basicSetGenFeature.annotations.insert.javajetinc" fail="silent" %>
+<%}%>
\ No newline at end of file