[204200] Regenerating based on changes in EMF.
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/GenModelPackage.java b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/GenModelPackage.java
index eb48cd3..4e3eda6 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/GenModelPackage.java
+++ b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/GenModelPackage.java
@@ -9,7 +9,7 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200
  *
- * $Id: GenModelPackage.java,v 1.27 2008/01/03 14:46:03 khussey Exp $
+ * $Id: GenModelPackage.java,v 1.28 2008/01/08 21:48:40 khussey Exp $
  */
 package org.eclipse.uml2.codegen.ecore.genmodel;
 
@@ -1176,6 +1176,15 @@
 	int GEN_MODEL__TESTS_PLUGIN_VARIABLES = org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage.GEN_MODEL__TESTS_PLUGIN_VARIABLES;
 
 	/**
+	 * The feature id for the '<em><b>Optimized Has Children</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GEN_MODEL__OPTIMIZED_HAS_CHILDREN = org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage.GEN_MODEL__OPTIMIZED_HAS_CHILDREN;
+
+	/**
 	 * The feature id for the '<em><b>Gen Packages</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/impl/GenModelPackageImpl.java b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/impl/GenModelPackageImpl.java
index 75034e7..6ed6c6a 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/impl/GenModelPackageImpl.java
+++ b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/genmodel/impl/GenModelPackageImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation, Embarcadero Technologies, and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,8 +7,9 @@
  *
  * Contributors:
  *   IBM - initial API and implementation
+ *   Kenn Hussey (Embarcadero Technologies) - 204200
  *
- * $Id: GenModelPackageImpl.java,v 1.5 2006/12/14 15:45:13 khussey Exp $
+ * $Id: GenModelPackageImpl.java,v 1.6 2008/01/08 21:48:40 khussey Exp $
  */
 package org.eclipse.uml2.codegen.ecore.genmodel.impl;
 
@@ -203,7 +204,6 @@
 		// Initialize simple dependencies
 		org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage.eINSTANCE
 			.eClass();
-		EcorePackage.eINSTANCE.eClass();
 
 		// Create package meta-data objects
 		theGenModelPackage.createPackageContents();
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 7e1d0ee..2869c9d 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
@@ -46,261 +46,266 @@
   protected final String TEXT_27 = NL + "\t\t}" + NL + "\t\treturn itemPropertyDescriptors;" + NL + "\t}" + NL;
   protected final String TEXT_28 = NL + "\t/**" + NL + "\t * This adds a property descriptor for the ";
   protected final String TEXT_29 = " feature." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void add";
-  protected final String TEXT_30 = "PropertyDescriptor(Object object)" + NL + "\t{" + NL + "\t\titemPropertyDescriptors.add" + NL + "\t\t\t(createItemPropertyDescriptor" + NL + "\t\t\t\t(((";
-  protected final String TEXT_31 = ")adapterFactory).getRootAdapterFactory()," + NL + "\t\t\t\t getResourceLocator()," + NL + "\t\t\t\t getString(\"_UI_";
-  protected final String TEXT_32 = "_";
-  protected final String TEXT_33 = "_feature\"),";
-  protected final String TEXT_34 = NL + "\t\t\t\t getString(\"_UI_PropertyDescriptor_description\", \"_UI_";
-  protected final String TEXT_35 = "_";
-  protected final String TEXT_36 = "_feature\", \"_UI_";
-  protected final String TEXT_37 = "_type\"),";
-  protected final String TEXT_38 = NL + "\t\t\t\t getString(\"_UI_";
-  protected final String TEXT_39 = "_";
-  protected final String TEXT_40 = "_description\"),";
-  protected final String TEXT_41 = NL + "\t\t\t\t ";
-  protected final String TEXT_42 = "," + NL + "\t\t\t\t ";
+  protected final String TEXT_30 = "PropertyDescriptor(Object object)" + NL + "\t{";
+  protected final String TEXT_31 = NL + "\t\titemPropertyDescriptors.add" + NL + "\t\t\t(createItemPropertyDescriptor" + NL + "\t\t\t\t(((";
+  protected final String TEXT_32 = ")adapterFactory).getRootAdapterFactory()," + NL + "\t\t\t\t getResourceLocator()," + NL + "\t\t\t\t getString(\"_UI_";
+  protected final String TEXT_33 = "_";
+  protected final String TEXT_34 = "_feature\"),";
+  protected final String TEXT_35 = NL + "\t\t\t\t getString(\"_UI_PropertyDescriptor_description\", \"_UI_";
+  protected final String TEXT_36 = "_";
+  protected final String TEXT_37 = "_feature\", \"_UI_";
+  protected final String TEXT_38 = "_type\"),";
+  protected final String TEXT_39 = NL + "\t\t\t\t getString(\"_UI_";
+  protected final String TEXT_40 = "_";
+  protected final String TEXT_41 = "_description\"),";
+  protected final String TEXT_42 = NL + "\t\t\t\t ";
   protected final String TEXT_43 = "," + NL + "\t\t\t\t ";
   protected final String TEXT_44 = "," + NL + "\t\t\t\t ";
-  protected final String TEXT_45 = ",";
-  protected final String TEXT_46 = NL + "\t\t\t\t null,";
-  protected final String TEXT_47 = NL + "\t\t\t\t ";
-  protected final String TEXT_48 = ".";
-  protected final String TEXT_49 = ",";
-  protected final String TEXT_50 = NL + "\t\t\t\t null,";
-  protected final String TEXT_51 = NL + "\t\t\t\t getString(\"";
-  protected final String TEXT_52 = "\"),";
-  protected final String TEXT_53 = NL + "\t\t\t\t null));";
-  protected final String TEXT_54 = NL + "\t\t\t\t new String[] {";
-  protected final String TEXT_55 = NL + "\t\t\t\t\t\"";
-  protected final String TEXT_56 = "\"";
-  protected final String TEXT_57 = ",";
-  protected final String TEXT_58 = NL + "\t\t\t\t }));";
-  protected final String TEXT_59 = NL + "\t}" + NL;
-  protected final String TEXT_60 = NL + "\t/**" + NL + "\t * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an" + NL + "\t * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or" + NL + "\t * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_61 = NL + "\t@Override";
-  protected final String TEXT_62 = NL + "\tpublic ";
-  protected final String TEXT_63 = " getChildrenFeatures(Object object)" + NL + "\t{" + NL + "\t\tif (childrenFeatures == null)" + NL + "\t\t{" + NL + "\t\t\tsuper.getChildrenFeatures(object);";
-  protected final String TEXT_64 = NL + "\t\t\tchildrenFeatures.add(";
-  protected final String TEXT_65 = ");";
-  protected final String TEXT_66 = NL + "\t\t}" + NL + "\t\treturn childrenFeatures;" + NL + "\t}" + NL;
-  protected final String TEXT_67 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_68 = NL + "\t@Override";
-  protected final String TEXT_69 = NL + "\tprotected ";
-  protected final String TEXT_70 = " getChildFeature(Object object, Object child)" + NL + "\t{" + NL + "\t\t// Check the type of the specified child object and return the proper feature to use for" + NL + "\t\t// adding (see {@link AddCommand}) it as a child." + NL + "" + NL + "\t\treturn super.getChildFeature(object, child);" + NL + "\t}" + NL;
-  protected final String TEXT_71 = NL + "\t/**" + NL + "\t * This returns ";
-  protected final String TEXT_72 = ".gif." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_45 = "," + NL + "\t\t\t\t ";
+  protected final String TEXT_46 = ",";
+  protected final String TEXT_47 = NL + "\t\t\t\t null,";
+  protected final String TEXT_48 = NL + "\t\t\t\t ";
+  protected final String TEXT_49 = ".";
+  protected final String TEXT_50 = ",";
+  protected final String TEXT_51 = NL + "\t\t\t\t null,";
+  protected final String TEXT_52 = NL + "\t\t\t\t getString(\"";
+  protected final String TEXT_53 = "\"),";
+  protected final String TEXT_54 = NL + "\t\t\t\t null));";
+  protected final String TEXT_55 = NL + "\t\t\t\t new String[] {";
+  protected final String TEXT_56 = NL + "\t\t\t\t\t\"";
+  protected final String TEXT_57 = "\"";
+  protected final String TEXT_58 = ",";
+  protected final String TEXT_59 = NL + "\t\t\t\t }));";
+  protected final String TEXT_60 = NL + "\t}" + NL;
+  protected final String TEXT_61 = NL + "\t/**" + NL + "\t * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an" + NL + "\t * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or" + NL + "\t * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_62 = NL + "\t@Override";
+  protected final String TEXT_63 = NL + "\tpublic ";
+  protected final String TEXT_64 = " getChildrenFeatures(Object object)" + NL + "\t{" + NL + "\t\tif (childrenFeatures == null)" + NL + "\t\t{" + NL + "\t\t\tsuper.getChildrenFeatures(object);";
+  protected final String TEXT_65 = NL + "\t\t\tchildrenFeatures.add(";
+  protected final String TEXT_66 = ");";
+  protected final String TEXT_67 = NL + "\t\t}" + NL + "\t\treturn childrenFeatures;" + NL + "\t}" + NL;
+  protected final String TEXT_68 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_69 = NL + "\t@Override";
+  protected final String TEXT_70 = NL + "\tprotected ";
+  protected final String TEXT_71 = " getChildFeature(Object object, Object child)" + NL + "\t{" + NL + "\t\t// Check the type of the specified child object and return the proper feature to use for" + NL + "\t\t// adding (see {@link AddCommand}) it as a child." + NL + "" + NL + "\t\treturn super.getChildFeature(object, child);" + NL + "\t}" + NL;
+  protected final String TEXT_72 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
   protected final String TEXT_73 = NL + "\t@Override";
-  protected final String TEXT_74 = NL + "\tpublic Object getImage(Object object)" + NL + "\t{" + NL + "\t\treturn overlayImage(object, getResourceLocator().getImage(\"full/obj16/";
-  protected final String TEXT_75 = "\"));";
-  protected final String TEXT_76 = NL + "\t}" + NL;
-  protected final String TEXT_77 = NL + "\t/**" + NL + "\t * This returns the label text for the adapted class." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_74 = NL + "\tpublic boolean hasChildren(Object object)" + NL + "\t{" + NL + "\t\treturn hasChildren(object, ";
+  protected final String TEXT_75 = ");" + NL + "\t}" + NL;
+  protected final String TEXT_76 = NL + "\t/**" + NL + "\t * This returns ";
+  protected final String TEXT_77 = ".gif." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
   protected final String TEXT_78 = NL + "\t@Override";
-  protected final String TEXT_79 = NL + "\tpublic String getText(Object object)" + NL + "\t{";
-  protected final String TEXT_80 = NL + "\t\t";
-  protected final String TEXT_81 = "<?, ?>";
-  protected final String TEXT_82 = " ";
-  protected final String TEXT_83 = " = (";
-  protected final String TEXT_84 = "<?, ?>";
-  protected final String TEXT_85 = ")object;";
-  protected final String TEXT_86 = NL + "\t\treturn \"\" + ";
-  protected final String TEXT_87 = ".getKey() + \" -> \" + ";
-  protected final String TEXT_88 = ".getValue();";
-  protected final String TEXT_89 = NL + "\t\tString key = crop(\"\" + ";
-  protected final String TEXT_90 = ".getKey());";
-  protected final String TEXT_91 = NL + "\t\tString key = \"\" + ";
-  protected final String TEXT_92 = ".getKey();";
-  protected final String TEXT_93 = NL + "\t\tString value = crop(\"\" + ";
-  protected final String TEXT_94 = ".getValue());";
-  protected final String TEXT_95 = NL + "\t\tString value = \"\" + ";
-  protected final String TEXT_96 = ".getValue();";
-  protected final String TEXT_97 = NL + "\t\treturn key + \" -> \" + value;";
-  protected final String TEXT_98 = NL + "\t\t";
-  protected final String TEXT_99 = " ";
-  protected final String TEXT_100 = " = (";
-  protected final String TEXT_101 = ")object;" + NL + "\t\treturn getString(\"_UI_";
-  protected final String TEXT_102 = "_type\") + \" \" + ";
-  protected final String TEXT_103 = ".";
-  protected final String TEXT_104 = "();";
-  protected final String TEXT_105 = NL + "\t\tString label = crop(((";
-  protected final String TEXT_106 = ")object).";
-  protected final String TEXT_107 = "());";
-  protected final String TEXT_108 = NL + "\t\tString label = ((";
-  protected final String TEXT_109 = ")object).";
-  protected final String TEXT_110 = "();";
-  protected final String TEXT_111 = NL + "\t\t";
-  protected final String TEXT_112 = " labelValue = ((";
-  protected final String TEXT_113 = ")object).eGet(";
-  protected final String TEXT_114 = ");";
-  protected final String TEXT_115 = NL + "\t\t";
-  protected final String TEXT_116 = " labelValue = ((";
-  protected final String TEXT_117 = ")object).";
-  protected final String TEXT_118 = "();";
-  protected final String TEXT_119 = NL + "\t\tString label = labelValue == null ? null : labelValue.toString();";
-  protected final String TEXT_120 = NL + "\t\treturn label == null || label.length() == 0 ?" + NL + "\t\t\tgetString(\"_UI_";
-  protected final String TEXT_121 = "_type\") :";
-  protected final String TEXT_122 = NL + "\t\t\tgetString(\"_UI_";
-  protected final String TEXT_123 = "_type\") + \" \" + label;";
-  protected final String TEXT_124 = NL + "\t\treturn getString(\"_UI_";
-  protected final String TEXT_125 = "_type\");";
-  protected final String TEXT_126 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This handles model notifications by calling {@link #updateChildren} to update any cached" + NL + "\t * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_127 = NL + "\t@Override";
-  protected final String TEXT_128 = NL + "\tpublic void notifyChanged(Notification notification)" + NL + "\t{" + NL + "\t\tupdateChildren(notification);";
-  protected final String TEXT_129 = NL + NL + "\t\tswitch (notification.getFeatureID(";
-  protected final String TEXT_130 = ".class))" + NL + "\t\t{";
-  protected final String TEXT_131 = NL + "\t\t\tcase ";
-  protected final String TEXT_132 = ":";
-  protected final String TEXT_133 = NL + "\t\t\t\tfireNotifyChanged(new ";
-  protected final String TEXT_134 = "(notification, notification.getNotifier(), false, true));" + NL + "\t\t\t\treturn;";
-  protected final String TEXT_135 = NL + "\t\t\tcase ";
-  protected final String TEXT_136 = ":";
-  protected final String TEXT_137 = NL + "\t\t\t\tfireNotifyChanged(new ";
-  protected final String TEXT_138 = "(notification, notification.getNotifier(), true, false));" + NL + "\t\t\t\treturn;";
-  protected final String TEXT_139 = NL + "\t\t\tcase ";
-  protected final String TEXT_140 = ":";
-  protected final String TEXT_141 = NL + "\t\t\t\tfireNotifyChanged(new ";
-  protected final String TEXT_142 = "(notification, notification.getNotifier(), true, true));" + NL + "\t\t\t\treturn;";
-  protected final String TEXT_143 = NL + "\t\t}";
-  protected final String TEXT_144 = NL + "\t\tsuper.notifyChanged(notification);" + NL + "\t}" + NL;
-  protected final String TEXT_145 = 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_146 = NL + "\t@Override";
-  protected final String TEXT_147 = NL + "\tprotected void collectNewChildDescriptors(";
-  protected final String TEXT_148 = " newChildDescriptors, Object object)" + NL + "\t{" + NL + "\t\tsuper.collectNewChildDescriptors(newChildDescriptors, object);";
-  protected final String TEXT_149 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
-  protected final String TEXT_150 = ",";
-  protected final String TEXT_151 = NL + "\t\t\t\t ";
-  protected final String TEXT_152 = ".create(";
-  protected final String TEXT_153 = ")));";
-  protected final String TEXT_154 = NL + "\t\t\t\t ";
-  protected final String TEXT_155 = ".create";
-  protected final String TEXT_156 = "()));";
-  protected final String TEXT_157 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
-  protected final String TEXT_158 = "," + NL + "\t\t\t\t ";
-  protected final String TEXT_159 = ".createEntry" + NL + "\t\t\t\t\t(";
-  protected final String TEXT_160 = ",";
-  protected final String TEXT_161 = NL + "\t\t\t\t\t ";
-  protected final String TEXT_162 = ".create(";
-  protected final String TEXT_163 = "))));";
-  protected final String TEXT_164 = NL + "\t\t\t\t\t ";
-  protected final String TEXT_165 = ".create";
-  protected final String TEXT_166 = "())));";
-  protected final String TEXT_167 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
-  protected final String TEXT_168 = "," + NL + "\t\t\t\t ";
-  protected final String TEXT_169 = ".createEntry" + NL + "\t\t\t\t\t(";
-  protected final String TEXT_170 = ",";
-  protected final String TEXT_171 = NL + "\t\t\t\t\t ";
-  protected final String TEXT_172 = ")));";
-  protected final String TEXT_173 = NL + "\t\t\t\t\t ";
-  protected final String TEXT_174 = ")));";
-  protected final String TEXT_175 = NL + "\t\t\t\t\t ";
-  protected final String TEXT_176 = ".createFromString(";
-  protected final String TEXT_177 = ", ";
-  protected final String TEXT_178 = "))));";
-  protected final String TEXT_179 = " // TODO: ensure this is a valid literal value";
-  protected final String TEXT_180 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
-  protected final String TEXT_181 = ",";
-  protected final String TEXT_182 = NL + "\t\t\t\t ";
-  protected final String TEXT_183 = ".create(";
-  protected final String TEXT_184 = ")));";
-  protected final String TEXT_185 = NL + "\t\t\t\t ";
-  protected final String TEXT_186 = ".create";
-  protected final String TEXT_187 = "()));";
-  protected final String TEXT_188 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
-  protected final String TEXT_189 = ",";
+  protected final String TEXT_79 = NL + "\tpublic Object getImage(Object object)" + NL + "\t{" + NL + "\t\treturn overlayImage(object, getResourceLocator().getImage(\"full/obj16/";
+  protected final String TEXT_80 = "\"));";
+  protected final String TEXT_81 = NL + "\t}" + NL;
+  protected final String TEXT_82 = NL + "\t/**" + NL + "\t * This returns the label text for the adapted class." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_83 = NL + "\t@Override";
+  protected final String TEXT_84 = NL + "\tpublic String getText(Object object)" + NL + "\t{";
+  protected final String TEXT_85 = NL + "\t\t";
+  protected final String TEXT_86 = "<?, ?>";
+  protected final String TEXT_87 = " ";
+  protected final String TEXT_88 = " = (";
+  protected final String TEXT_89 = "<?, ?>";
+  protected final String TEXT_90 = ")object;";
+  protected final String TEXT_91 = NL + "\t\treturn \"\" + ";
+  protected final String TEXT_92 = ".getKey() + \" -> \" + ";
+  protected final String TEXT_93 = ".getValue();";
+  protected final String TEXT_94 = NL + "\t\tString key = crop(\"\" + ";
+  protected final String TEXT_95 = ".getKey());";
+  protected final String TEXT_96 = NL + "\t\tString key = \"\" + ";
+  protected final String TEXT_97 = ".getKey();";
+  protected final String TEXT_98 = NL + "\t\tString value = crop(\"\" + ";
+  protected final String TEXT_99 = ".getValue());";
+  protected final String TEXT_100 = NL + "\t\tString value = \"\" + ";
+  protected final String TEXT_101 = ".getValue();";
+  protected final String TEXT_102 = NL + "\t\treturn key + \" -> \" + value;";
+  protected final String TEXT_103 = NL + "\t\t";
+  protected final String TEXT_104 = " ";
+  protected final String TEXT_105 = " = (";
+  protected final String TEXT_106 = ")object;" + NL + "\t\treturn getString(\"_UI_";
+  protected final String TEXT_107 = "_type\") + \" \" + ";
+  protected final String TEXT_108 = ".";
+  protected final String TEXT_109 = "();";
+  protected final String TEXT_110 = NL + "\t\tString label = crop(((";
+  protected final String TEXT_111 = ")object).";
+  protected final String TEXT_112 = "());";
+  protected final String TEXT_113 = NL + "\t\tString label = ((";
+  protected final String TEXT_114 = ")object).";
+  protected final String TEXT_115 = "();";
+  protected final String TEXT_116 = NL + "\t\t";
+  protected final String TEXT_117 = " labelValue = ((";
+  protected final String TEXT_118 = ")object).eGet(";
+  protected final String TEXT_119 = ");";
+  protected final String TEXT_120 = NL + "\t\t";
+  protected final String TEXT_121 = " labelValue = ((";
+  protected final String TEXT_122 = ")object).";
+  protected final String TEXT_123 = "();";
+  protected final String TEXT_124 = NL + "\t\tString label = labelValue == null ? null : labelValue.toString();";
+  protected final String TEXT_125 = NL + "\t\treturn label == null || label.length() == 0 ?" + NL + "\t\t\tgetString(\"_UI_";
+  protected final String TEXT_126 = "_type\") :";
+  protected final String TEXT_127 = NL + "\t\t\tgetString(\"_UI_";
+  protected final String TEXT_128 = "_type\") + \" \" + label;";
+  protected final String TEXT_129 = NL + "\t\treturn getString(\"_UI_";
+  protected final String TEXT_130 = "_type\");";
+  protected final String TEXT_131 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This handles model notifications by calling {@link #updateChildren} to update any cached" + NL + "\t * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_132 = NL + "\t@Override";
+  protected final String TEXT_133 = NL + "\tpublic void notifyChanged(Notification notification)" + NL + "\t{" + NL + "\t\tupdateChildren(notification);";
+  protected final String TEXT_134 = NL + NL + "\t\tswitch (notification.getFeatureID(";
+  protected final String TEXT_135 = ".class))" + NL + "\t\t{";
+  protected final String TEXT_136 = NL + "\t\t\tcase ";
+  protected final String TEXT_137 = ":";
+  protected final String TEXT_138 = NL + "\t\t\t\tfireNotifyChanged(new ";
+  protected final String TEXT_139 = "(notification, notification.getNotifier(), false, true));" + NL + "\t\t\t\treturn;";
+  protected final String TEXT_140 = NL + "\t\t\tcase ";
+  protected final String TEXT_141 = ":";
+  protected final String TEXT_142 = NL + "\t\t\t\tfireNotifyChanged(new ";
+  protected final String TEXT_143 = "(notification, notification.getNotifier(), true, false));" + NL + "\t\t\t\treturn;";
+  protected final String TEXT_144 = NL + "\t\t\tcase ";
+  protected final String TEXT_145 = ":";
+  protected final String TEXT_146 = NL + "\t\t\t\tfireNotifyChanged(new ";
+  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 + "\t@Override";
+  protected final String TEXT_152 = NL + "\tprotected void collectNewChildDescriptors(";
+  protected final String TEXT_153 = " newChildDescriptors, Object object)" + NL + "\t{" + NL + "\t\tsuper.collectNewChildDescriptors(newChildDescriptors, object);";
+  protected final String TEXT_154 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
+  protected final String TEXT_155 = ",";
+  protected final String TEXT_156 = NL + "\t\t\t\t ";
+  protected final String TEXT_157 = ".create(";
+  protected final String TEXT_158 = ")));";
+  protected final String TEXT_159 = NL + "\t\t\t\t ";
+  protected final String TEXT_160 = ".create";
+  protected final String TEXT_161 = "()));";
+  protected final String TEXT_162 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
+  protected final String TEXT_163 = "," + NL + "\t\t\t\t ";
+  protected final String TEXT_164 = ".createEntry" + NL + "\t\t\t\t\t(";
+  protected final String TEXT_165 = ",";
+  protected final String TEXT_166 = NL + "\t\t\t\t\t ";
+  protected final String TEXT_167 = ".create(";
+  protected final String TEXT_168 = "))));";
+  protected final String TEXT_169 = NL + "\t\t\t\t\t ";
+  protected final String TEXT_170 = ".create";
+  protected final String TEXT_171 = "())));";
+  protected final String TEXT_172 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
+  protected final String TEXT_173 = "," + NL + "\t\t\t\t ";
+  protected final String TEXT_174 = ".createEntry" + NL + "\t\t\t\t\t(";
+  protected final String TEXT_175 = ",";
+  protected final String TEXT_176 = NL + "\t\t\t\t\t ";
+  protected final String TEXT_177 = ")));";
+  protected final String TEXT_178 = NL + "\t\t\t\t\t ";
+  protected final String TEXT_179 = ")));";
+  protected final String TEXT_180 = NL + "\t\t\t\t\t ";
+  protected final String TEXT_181 = ".createFromString(";
+  protected final String TEXT_182 = ", ";
+  protected final String TEXT_183 = "))));";
+  protected final String TEXT_184 = " // TODO: ensure this is a valid literal value";
+  protected final String TEXT_185 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
+  protected final String TEXT_186 = ",";
+  protected final String TEXT_187 = NL + "\t\t\t\t ";
+  protected final String TEXT_188 = ".create(";
+  protected final String TEXT_189 = ")));";
   protected final String TEXT_190 = NL + "\t\t\t\t ";
-  protected final String TEXT_191 = "));";
-  protected final String TEXT_192 = NL + "\t\t\t\t ";
-  protected final String TEXT_193 = "));";
-  protected final String TEXT_194 = NL + "\t\t\t\t ";
-  protected final String TEXT_195 = ".createFromString(";
-  protected final String TEXT_196 = ", ";
-  protected final String TEXT_197 = ")));";
-  protected final String TEXT_198 = " // TODO: ensure this is a valid literal value";
-  protected final String TEXT_199 = NL + "\t}" + NL;
-  protected final String TEXT_200 = 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_201 = NL + "\t@Override";
-  protected final String TEXT_202 = NL + "\tpublic String getCreateChildText(Object owner, Object feature, Object child, ";
-  protected final String TEXT_203 = " selection)" + NL + "\t{" + NL + "\t\tObject childFeature = feature;" + NL + "\t\tObject childObject = child;" + NL;
-  protected final String TEXT_204 = NL + "\t\tif (childFeature instanceof ";
-  protected final String TEXT_205 = " && ";
-  protected final String TEXT_206 = ".isFeatureMap((EStructuralFeature)childFeature))" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_207 = ".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_208 = NL + "\t\tboolean qualify =";
-  protected final String TEXT_209 = NL + "\t\t\tchildFeature == ";
-  protected final String TEXT_210 = 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_211 = 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_212 = NL + "\t/**" + NL + "\t * This returns the icon image 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_213 = NL + "\t@Override";
-  protected final String TEXT_214 = NL + "\tpublic Object getCreateChildImage(Object owner, Object feature, Object child, ";
-  protected final String TEXT_215 = " selection)" + NL + "\t{" + NL + "\t\tif (feature instanceof ";
-  protected final String TEXT_216 = " && ";
-  protected final String TEXT_217 = ".isFeatureMap((";
-  protected final String TEXT_218 = ")feature))" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_219 = ".Entry entry = (";
-  protected final String TEXT_220 = ".Entry)child;" + NL + "\t\t\tfeature = entry.getEStructuralFeature();" + NL + "\t\t\tchild = entry.getValue();        " + NL + "\t\t}" + NL + "" + NL + "\t\tif (feature instanceof ";
-  protected final String TEXT_221 = " && child instanceof ";
-  protected final String TEXT_222 = ")" + NL + "\t\t{" + NL + "\t\t\tString name = \"full/obj16/\" + ((EObject)child).eClass().getName();";
-  protected final String TEXT_223 = NL + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\treturn getResourceLocator().getImage(name);" + NL + "\t\t\t}" + NL + "\t\t\tcatch (Exception e)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_224 = ".INSTANCE.log(e);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\treturn super.getCreateChildImage(owner, feature, child, selection);" + NL + "\t}" + NL;
-  protected final String TEXT_225 = 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_226 = NL + "\t@Override";
-  protected final String TEXT_227 = NL + "\tpublic ResourceLocator getResourceLocator()" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_228 = ".INSTANCE;" + NL + "\t}" + NL;
-  protected final String TEXT_229 = 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_230 = NL + "\t@Override";
-  protected final String TEXT_231 = NL + "\tprotected ";
-  protected final String TEXT_232 = " createAddCommand(";
-  protected final String TEXT_233 = " domain, ";
-  protected final String TEXT_234 = " owner, ";
-  protected final String TEXT_235 = " feature, ";
-  protected final String TEXT_236 = " collection, int index) {";
-  protected final String TEXT_237 = NL + "\t\tif (feature == ";
-  protected final String TEXT_238 = ") {" + NL + "\t\t\treturn new ";
-  protected final String TEXT_239 = "(domain, owner, feature, ";
-  protected final String TEXT_240 = ", collection, index);" + NL + "\t\t}";
-  protected final String TEXT_241 = NL + "\t\treturn super.createAddCommand(domain, owner, feature, collection, index);" + NL + "\t}" + NL;
-  protected final String TEXT_242 = 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_243 = NL + "\t@Override";
-  protected final String TEXT_244 = NL + "\tprotected ";
-  protected final String TEXT_245 = " createRemoveCommand(";
-  protected final String TEXT_246 = " domain, ";
-  protected final String TEXT_247 = " owner, ";
-  protected final String TEXT_248 = " feature, ";
-  protected final String TEXT_249 = " collection) {";
-  protected final String TEXT_250 = NL + "\t\tif (feature == ";
-  protected final String TEXT_251 = ") {" + NL + "\t\t\treturn new ";
-  protected final String TEXT_252 = "(domain, owner, feature, ";
-  protected final String TEXT_253 = ", collection);" + NL + "\t\t}";
-  protected final String TEXT_254 = NL + "\t\treturn super.createRemoveCommand(domain, owner, feature, collection);" + NL + "\t}" + NL;
-  protected final String TEXT_255 = 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, org.eclipse.emf.ecore.EObject, java.util.Collection)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_256 = NL + "\t@Override";
-  protected final String TEXT_257 = NL + "\tprotected ";
-  protected final String TEXT_258 = " createReplaceCommand(";
-  protected final String TEXT_259 = " domain, ";
-  protected final String TEXT_260 = " owner, ";
-  protected final String TEXT_261 = " feature, ";
-  protected final String TEXT_262 = " value, ";
-  protected final String TEXT_263 = " collection) {";
-  protected final String TEXT_264 = NL + "\t\tif (feature == ";
-  protected final String TEXT_265 = ") {" + NL + "\t\t\treturn new ";
-  protected final String TEXT_266 = "(domain, owner, feature, ";
-  protected final String TEXT_267 = ", ";
-  protected final String TEXT_268 = ", value, collection);" + NL + "\t\t}";
-  protected final String TEXT_269 = NL + "\t\treturn super.createReplaceCommand(domain, owner, feature, value, collection);" + NL + "\t}" + NL;
-  protected final String TEXT_270 = 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_271 = NL + "\t@Override";
-  protected final String TEXT_272 = NL + "\tprotected ";
-  protected final String TEXT_273 = " createSetCommand(";
-  protected final String TEXT_274 = " domain, ";
-  protected final String TEXT_275 = " owner, ";
-  protected final String TEXT_276 = " feature, Object value) {";
-  protected final String TEXT_277 = NL + "\t\tif (feature == ";
-  protected final String TEXT_278 = ") {" + NL + "\t\t\treturn new ";
-  protected final String TEXT_279 = "(domain, owner, feature, ";
-  protected final String TEXT_280 = ", ";
-  protected final String TEXT_281 = ", value);" + NL + "\t\t}";
-  protected final String TEXT_282 = NL + "\t\treturn super.createSetCommand(domain, owner, feature, value);" + NL + "\t}" + NL;
-  protected final String TEXT_283 = NL + "}";
-  protected final String TEXT_284 = NL;
+  protected final String TEXT_191 = ".create";
+  protected final String TEXT_192 = "()));";
+  protected final String TEXT_193 = NL + NL + "\t\tnewChildDescriptors.add" + NL + "\t\t\t(createChildParameter" + NL + "\t\t\t\t(";
+  protected final String TEXT_194 = ",";
+  protected final String TEXT_195 = NL + "\t\t\t\t ";
+  protected final String TEXT_196 = "));";
+  protected final String TEXT_197 = NL + "\t\t\t\t ";
+  protected final String TEXT_198 = "));";
+  protected final String TEXT_199 = NL + "\t\t\t\t ";
+  protected final String TEXT_200 = ".createFromString(";
+  protected final String TEXT_201 = ", ";
+  protected final String TEXT_202 = ")));";
+  protected final String TEXT_203 = " // TODO: ensure this is a valid literal value";
+  protected final String TEXT_204 = NL + "\t}" + NL;
+  protected final String TEXT_205 = 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_206 = NL + "\t@Override";
+  protected final String TEXT_207 = NL + "\tpublic String getCreateChildText(Object owner, Object feature, Object child, ";
+  protected final String TEXT_208 = " selection)" + NL + "\t{" + NL + "\t\tObject childFeature = feature;" + NL + "\t\tObject childObject = child;" + NL;
+  protected final String TEXT_209 = NL + "\t\tif (childFeature instanceof ";
+  protected final String TEXT_210 = " && ";
+  protected final String TEXT_211 = ".isFeatureMap((EStructuralFeature)childFeature))" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_212 = ".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_213 = NL + "\t\tboolean qualify =";
+  protected final String TEXT_214 = NL + "\t\t\tchildFeature == ";
+  protected final String TEXT_215 = 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_216 = 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_217 = NL + "\t/**" + NL + "\t * This returns the icon image 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_218 = NL + "\t@Override";
+  protected final String TEXT_219 = NL + "\tpublic Object getCreateChildImage(Object owner, Object feature, Object child, ";
+  protected final String TEXT_220 = " selection)" + NL + "\t{" + NL + "\t\tif (feature instanceof ";
+  protected final String TEXT_221 = " && ";
+  protected final String TEXT_222 = ".isFeatureMap((";
+  protected final String TEXT_223 = ")feature))" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_224 = ".Entry entry = (";
+  protected final String TEXT_225 = ".Entry)child;" + NL + "\t\t\tfeature = entry.getEStructuralFeature();" + NL + "\t\t\tchild = entry.getValue();        " + NL + "\t\t}" + NL + "" + NL + "\t\tif (feature instanceof ";
+  protected final String TEXT_226 = " && child instanceof ";
+  protected final String TEXT_227 = ")" + NL + "\t\t{" + NL + "\t\t\tString name = \"full/obj16/\" + ((EObject)child).eClass().getName();";
+  protected final String TEXT_228 = NL + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\treturn getResourceLocator().getImage(name);" + NL + "\t\t\t}" + NL + "\t\t\tcatch (Exception e)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_229 = ".INSTANCE.log(e);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\treturn super.getCreateChildImage(owner, feature, child, selection);" + NL + "\t}" + NL;
+  protected final String TEXT_230 = 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_231 = NL + "\t@Override";
+  protected final String TEXT_232 = NL + "\tpublic ResourceLocator getResourceLocator()" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_233 = ".INSTANCE;" + NL + "\t}" + NL;
+  protected final String TEXT_234 = 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_235 = NL + "\t@Override";
+  protected final String TEXT_236 = NL + "\tprotected ";
+  protected final String TEXT_237 = " createAddCommand(";
+  protected final String TEXT_238 = " domain, ";
+  protected final String TEXT_239 = " owner, ";
+  protected final String TEXT_240 = " feature, ";
+  protected final String TEXT_241 = " collection, int index) {";
+  protected final String TEXT_242 = NL + "\t\tif (feature == ";
+  protected final String TEXT_243 = ") {" + NL + "\t\t\treturn new ";
+  protected final String TEXT_244 = "(domain, owner, feature, ";
+  protected final String TEXT_245 = ", collection, index);" + NL + "\t\t}";
+  protected final String TEXT_246 = NL + "\t\treturn super.createAddCommand(domain, owner, feature, collection, index);" + NL + "\t}" + NL;
+  protected final String TEXT_247 = 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_248 = NL + "\t@Override";
+  protected final String TEXT_249 = NL + "\tprotected ";
+  protected final String TEXT_250 = " createRemoveCommand(";
+  protected final String TEXT_251 = " domain, ";
+  protected final String TEXT_252 = " owner, ";
+  protected final String TEXT_253 = " feature, ";
+  protected final String TEXT_254 = " collection) {";
+  protected final String TEXT_255 = NL + "\t\tif (feature == ";
+  protected final String TEXT_256 = ") {" + NL + "\t\t\treturn new ";
+  protected final String TEXT_257 = "(domain, owner, feature, ";
+  protected final String TEXT_258 = ", collection);" + NL + "\t\t}";
+  protected final String TEXT_259 = NL + "\t\treturn super.createRemoveCommand(domain, owner, feature, collection);" + NL + "\t}" + NL;
+  protected final String TEXT_260 = 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, org.eclipse.emf.ecore.EObject, java.util.Collection)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_261 = NL + "\t@Override";
+  protected final String TEXT_262 = NL + "\tprotected ";
+  protected final String TEXT_263 = " createReplaceCommand(";
+  protected final String TEXT_264 = " domain, ";
+  protected final String TEXT_265 = " owner, ";
+  protected final String TEXT_266 = " feature, ";
+  protected final String TEXT_267 = " value, ";
+  protected final String TEXT_268 = " collection) {";
+  protected final String TEXT_269 = NL + "\t\tif (feature == ";
+  protected final String TEXT_270 = ") {" + NL + "\t\t\treturn new ";
+  protected final String TEXT_271 = "(domain, owner, feature, ";
+  protected final String TEXT_272 = ", ";
+  protected final String TEXT_273 = ", value, collection);" + NL + "\t\t}";
+  protected final String TEXT_274 = NL + "\t\treturn super.createReplaceCommand(domain, owner, feature, value, collection);" + NL + "\t}" + NL;
+  protected final String TEXT_275 = 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_276 = NL + "\t@Override";
+  protected final String TEXT_277 = NL + "\tprotected ";
+  protected final String TEXT_278 = " createSetCommand(";
+  protected final String TEXT_279 = " domain, ";
+  protected final String TEXT_280 = " owner, ";
+  protected final String TEXT_281 = " feature, Object value) {";
+  protected final String TEXT_282 = NL + "\t\tif (feature == ";
+  protected final String TEXT_283 = ") {" + NL + "\t\t\treturn new ";
+  protected final String TEXT_284 = "(domain, owner, feature, ";
+  protected final String TEXT_285 = ", ";
+  protected final String TEXT_286 = ", value);" + NL + "\t\t}";
+  protected final String TEXT_287 = NL + "\t\treturn super.createSetCommand(domain, owner, feature, value);" + NL + "\t}" + NL;
+  protected final String TEXT_288 = NL + "}";
+  protected final String TEXT_289 = NL;
 
   public String generate(Object argument)
   {
@@ -393,307 +398,319 @@
     stringBuffer.append(TEXT_29);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_30);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ComposeableAdapterFactory"));
     stringBuffer.append(TEXT_31);
-    stringBuffer.append(genFeature.getGenClass().getName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ComposeableAdapterFactory"));
     stringBuffer.append(TEXT_32);
-    stringBuffer.append(genFeature.getName());
+    stringBuffer.append(genFeature.getGenClass().getName());
     stringBuffer.append(TEXT_33);
+    stringBuffer.append(genFeature.getName());
+    stringBuffer.append(TEXT_34);
     stringBuffer.append(genModel.getNonNLS());
     if (genFeature.getPropertyDescription() == null || genFeature.getPropertyDescription().length() == 0) {
-    stringBuffer.append(TEXT_34);
-    stringBuffer.append(genFeature.getGenClass().getName());
     stringBuffer.append(TEXT_35);
-    stringBuffer.append(genFeature.getName());
-    stringBuffer.append(TEXT_36);
     stringBuffer.append(genFeature.getGenClass().getName());
+    stringBuffer.append(TEXT_36);
+    stringBuffer.append(genFeature.getName());
     stringBuffer.append(TEXT_37);
+    stringBuffer.append(genFeature.getGenClass().getName());
+    stringBuffer.append(TEXT_38);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
     stringBuffer.append(genModel.getNonNLS(3));
     } else {
-    stringBuffer.append(TEXT_38);
-    stringBuffer.append(genFeature.getGenClass().getName());
     stringBuffer.append(TEXT_39);
-    stringBuffer.append(genFeature.getName());
+    stringBuffer.append(genFeature.getGenClass().getName());
     stringBuffer.append(TEXT_40);
+    stringBuffer.append(genFeature.getName());
+    stringBuffer.append(TEXT_41);
     stringBuffer.append(genModel.getNonNLS());
     }
-    stringBuffer.append(TEXT_41);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_42);
-    stringBuffer.append(genFeature.getProperty() == GenPropertyKind.EDITABLE_LITERAL ? "true" : "false");
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_43);
-    stringBuffer.append(genFeature.isPropertyMultiLine() ? "true" : "false");
+    stringBuffer.append(genFeature.getProperty() == GenPropertyKind.EDITABLE_LITERAL ? "true" : "false");
     stringBuffer.append(TEXT_44);
-    stringBuffer.append(genFeature.isPropertySortChoices() ? "true" : "false");
+    stringBuffer.append(genFeature.isPropertyMultiLine() ? "true" : "false");
     stringBuffer.append(TEXT_45);
-    if (genFeature.isReferenceType()) {
+    stringBuffer.append(genFeature.isPropertySortChoices() ? "true" : "false");
     stringBuffer.append(TEXT_46);
-    } else {
+    if (genFeature.isReferenceType()) {
     stringBuffer.append(TEXT_47);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ItemPropertyDescriptor"));
+    } else {
     stringBuffer.append(TEXT_48);
-    stringBuffer.append(genFeature.getPropertyImageName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ItemPropertyDescriptor"));
     stringBuffer.append(TEXT_49);
+    stringBuffer.append(genFeature.getPropertyImageName());
+    stringBuffer.append(TEXT_50);
     }
     if (genFeature.getPropertyCategory() == null || genFeature.getPropertyCategory().length() == 0) {
-    stringBuffer.append(TEXT_50);
-    } else {
     stringBuffer.append(TEXT_51);
-    stringBuffer.append(genModel.getPropertyCategoryKey(genFeature.getPropertyCategory()));
+    } else {
     stringBuffer.append(TEXT_52);
+    stringBuffer.append(genModel.getPropertyCategoryKey(genFeature.getPropertyCategory()));
+    stringBuffer.append(TEXT_53);
     stringBuffer.append(genModel.getNonNLS());
     }
     if (genFeature.getPropertyFilterFlags().isEmpty()) {
-    stringBuffer.append(TEXT_53);
-    } else {
     stringBuffer.append(TEXT_54);
+    } else {
+    stringBuffer.append(TEXT_55);
     for (Iterator<String> j = genFeature.getPropertyFilterFlags().iterator(); j.hasNext();) { String filterFlag = j.next();
     if (filterFlag != null && filterFlag.length() > 0) {
-    stringBuffer.append(TEXT_55);
-    stringBuffer.append(filterFlag);
     stringBuffer.append(TEXT_56);
-    if (j.hasNext()) {
+    stringBuffer.append(filterFlag);
     stringBuffer.append(TEXT_57);
+    if (j.hasNext()) {
+    stringBuffer.append(TEXT_58);
     }
     stringBuffer.append(genModel.getNonNLS());
     }
     }
-    stringBuffer.append(TEXT_58);
-    }
     stringBuffer.append(TEXT_59);
     }
-    if (!genClass.getChildrenFeatures().isEmpty()) {
+    //ItemProvider/addPropertyDescriptor.override.javajetinc
     stringBuffer.append(TEXT_60);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_61);
     }
-    stringBuffer.append(TEXT_62);
-    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<? extends org.eclipse.emf.ecore.EStructuralFeature>" : "java.util.Collection"));
-    stringBuffer.append(TEXT_63);
-    for (GenFeature genFeature : genClass.getChildrenFeatures()) { 
-    stringBuffer.append(TEXT_64);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_65);
-    }
-    stringBuffer.append(TEXT_66);
     if (!genClass.getChildrenFeatures().isEmpty()) {
-    stringBuffer.append(TEXT_67);
+    stringBuffer.append(TEXT_61);
     if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_62);
+    }
+    stringBuffer.append(TEXT_63);
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<? extends org.eclipse.emf.ecore.EStructuralFeature>" : "java.util.Collection"));
+    stringBuffer.append(TEXT_64);
+    for (GenFeature genFeature : genClass.getChildrenFeatures()) { 
+    stringBuffer.append(TEXT_65);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_66);
+    }
+    stringBuffer.append(TEXT_67);
+    if (!genClass.getChildrenFeatures().isEmpty()) {
     stringBuffer.append(TEXT_68);
-    }
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_69);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    }
     stringBuffer.append(TEXT_70);
-    }
-    }
-    if (genClass.isImage()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
     stringBuffer.append(TEXT_71);
-    stringBuffer.append(genClass.getName());
+    }
+    }
+    if (genClass.needsHasChildrenMethodOverride()) {
     stringBuffer.append(TEXT_72);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_73);
     }
     stringBuffer.append(TEXT_74);
-    stringBuffer.append(genClass.getName());
+    stringBuffer.append(genModel.isOptimizedHasChildren());
     stringBuffer.append(TEXT_75);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_76);
     }
+    if (genClass.isImage()) {
+    stringBuffer.append(TEXT_76);
+    stringBuffer.append(genClass.getName());
     stringBuffer.append(TEXT_77);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_78);
     }
     stringBuffer.append(TEXT_79);
-    if (genClass.isMapEntry()) {
+    stringBuffer.append(genClass.getName());
     stringBuffer.append(TEXT_80);
-    stringBuffer.append(genClass.getImportedInterfaceName());
-    if (genModel.useGenerics()) {
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_81);
     }
     stringBuffer.append(TEXT_82);
-    stringBuffer.append(genClass.getSafeUncapName());
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_83);
+    }
+    stringBuffer.append(TEXT_84);
+    if (genClass.isMapEntry()) {
+    stringBuffer.append(TEXT_85);
     stringBuffer.append(genClass.getImportedInterfaceName());
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_84);
-    }
-    stringBuffer.append(TEXT_85);
-    if (!genClass.getMapEntryKeyFeature().isPropertyMultiLine() && !genClass.getMapEntryValueFeature().isPropertyMultiLine()) {
     stringBuffer.append(TEXT_86);
-    stringBuffer.append(genClass.getSafeUncapName());
+    }
     stringBuffer.append(TEXT_87);
     stringBuffer.append(genClass.getSafeUncapName());
     stringBuffer.append(TEXT_88);
+    stringBuffer.append(genClass.getImportedInterfaceName());
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_89);
+    }
+    stringBuffer.append(TEXT_90);
+    if (!genClass.getMapEntryKeyFeature().isPropertyMultiLine() && !genClass.getMapEntryValueFeature().isPropertyMultiLine()) {
+    stringBuffer.append(TEXT_91);
+    stringBuffer.append(genClass.getSafeUncapName());
+    stringBuffer.append(TEXT_92);
+    stringBuffer.append(genClass.getSafeUncapName());
+    stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
     } else {
     if (genClass.getMapEntryKeyFeature().isPropertyMultiLine()) {
-    stringBuffer.append(TEXT_89);
+    stringBuffer.append(TEXT_94);
     stringBuffer.append(genClass.getSafeUncapName());
-    stringBuffer.append(TEXT_90);
+    stringBuffer.append(TEXT_95);
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_91);
+    stringBuffer.append(TEXT_96);
     stringBuffer.append(genClass.getSafeUncapName());
-    stringBuffer.append(TEXT_92);
+    stringBuffer.append(TEXT_97);
     stringBuffer.append(genModel.getNonNLS());
     }
     if (genClass.getMapEntryValueFeature().isPropertyMultiLine()) {
-    stringBuffer.append(TEXT_93);
+    stringBuffer.append(TEXT_98);
     stringBuffer.append(genClass.getSafeUncapName());
-    stringBuffer.append(TEXT_94);
+    stringBuffer.append(TEXT_99);
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_95);
+    stringBuffer.append(TEXT_100);
     stringBuffer.append(genClass.getSafeUncapName());
-    stringBuffer.append(TEXT_96);
+    stringBuffer.append(TEXT_101);
     stringBuffer.append(genModel.getNonNLS());
     }
-    stringBuffer.append(TEXT_97);
+    stringBuffer.append(TEXT_102);
     stringBuffer.append(genModel.getNonNLS());
     }
     } else if (genClass.getLabelFeature() != null) { GenFeature labelFeature = genClass.getLabelFeature();
     if (labelFeature.isPrimitiveType() && !labelFeature.getGenClass().isDynamic() && !labelFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_98);
-    stringBuffer.append(genClass.getImportedInterfaceName());
-    stringBuffer.append(genClass.getInterfaceWildTypeArguments());
-    stringBuffer.append(TEXT_99);
-    stringBuffer.append(genClass.getSafeUncapName());
-    stringBuffer.append(TEXT_100);
-    stringBuffer.append(genClass.getImportedInterfaceName());
-    stringBuffer.append(genClass.getInterfaceWildTypeArguments());
-    stringBuffer.append(TEXT_101);
-    stringBuffer.append(genClass.getName());
-    stringBuffer.append(TEXT_102);
-    stringBuffer.append(genClass.getSafeUncapName());
     stringBuffer.append(TEXT_103);
-    stringBuffer.append(genClass.getLabelFeature().getGetAccessor());
+    stringBuffer.append(genClass.getImportedInterfaceName());
+    stringBuffer.append(genClass.getInterfaceWildTypeArguments());
     stringBuffer.append(TEXT_104);
+    stringBuffer.append(genClass.getSafeUncapName());
+    stringBuffer.append(TEXT_105);
+    stringBuffer.append(genClass.getImportedInterfaceName());
+    stringBuffer.append(genClass.getInterfaceWildTypeArguments());
+    stringBuffer.append(TEXT_106);
+    stringBuffer.append(genClass.getName());
+    stringBuffer.append(TEXT_107);
+    stringBuffer.append(genClass.getSafeUncapName());
+    stringBuffer.append(TEXT_108);
+    stringBuffer.append(genClass.getLabelFeature().getGetAccessor());
+    stringBuffer.append(TEXT_109);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
     } else {
     if (labelFeature.isStringType() && !labelFeature.getGenClass().isDynamic() && !labelFeature.isSuppressedGetVisibility()) {
     if (labelFeature.isPropertyMultiLine()) {
-    stringBuffer.append(TEXT_105);
-    stringBuffer.append(genClass.getImportedInterfaceName());
-    stringBuffer.append(genClass.getInterfaceWildTypeArguments());
-    stringBuffer.append(TEXT_106);
-    stringBuffer.append(labelFeature.getGetAccessor());
-    stringBuffer.append(TEXT_107);
-    } else {
-    stringBuffer.append(TEXT_108);
-    stringBuffer.append(genClass.getImportedInterfaceName());
-    stringBuffer.append(genClass.getInterfaceWildTypeArguments());
-    stringBuffer.append(TEXT_109);
-    stringBuffer.append(labelFeature.getGetAccessor());
     stringBuffer.append(TEXT_110);
+    stringBuffer.append(genClass.getImportedInterfaceName());
+    stringBuffer.append(genClass.getInterfaceWildTypeArguments());
+    stringBuffer.append(TEXT_111);
+    stringBuffer.append(labelFeature.getGetAccessor());
+    stringBuffer.append(TEXT_112);
+    } else {
+    stringBuffer.append(TEXT_113);
+    stringBuffer.append(genClass.getImportedInterfaceName());
+    stringBuffer.append(genClass.getInterfaceWildTypeArguments());
+    stringBuffer.append(TEXT_114);
+    stringBuffer.append(labelFeature.getGetAccessor());
+    stringBuffer.append(TEXT_115);
     }
     } else {
     if (labelFeature.isSuppressedGetVisibility() || labelFeature.getGenClass().isDynamic()) {
-    stringBuffer.append(TEXT_111);
-    stringBuffer.append(genModel.getImportedName("java.lang.Object"));
-    stringBuffer.append(TEXT_112);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
-    stringBuffer.append(TEXT_113);
-    stringBuffer.append(labelFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_114);
-    } else {
-    stringBuffer.append(TEXT_115);
-    stringBuffer.append(labelFeature.getRawImportedType());
     stringBuffer.append(TEXT_116);
+    stringBuffer.append(genModel.getImportedName("java.lang.Object"));
+    stringBuffer.append(TEXT_117);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_118);
+    stringBuffer.append(labelFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_119);
+    } else {
+    stringBuffer.append(TEXT_120);
+    stringBuffer.append(labelFeature.getRawImportedType());
+    stringBuffer.append(TEXT_121);
     stringBuffer.append(genClass.getImportedInterfaceName());
     stringBuffer.append(genClass.getInterfaceWildTypeArguments());
-    stringBuffer.append(TEXT_117);
-    stringBuffer.append(labelFeature.getGetAccessor());
-    stringBuffer.append(TEXT_118);
-    }
-    stringBuffer.append(TEXT_119);
-    }
-    stringBuffer.append(TEXT_120);
-    stringBuffer.append(genClass.getName());
-    stringBuffer.append(TEXT_121);
-    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_122);
-    stringBuffer.append(genClass.getName());
+    stringBuffer.append(labelFeature.getGetAccessor());
     stringBuffer.append(TEXT_123);
+    }
+    stringBuffer.append(TEXT_124);
+    }
+    stringBuffer.append(TEXT_125);
+    stringBuffer.append(genClass.getName());
+    stringBuffer.append(TEXT_126);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_127);
+    stringBuffer.append(genClass.getName());
+    stringBuffer.append(TEXT_128);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
     }
     } else {
-    stringBuffer.append(TEXT_124);
+    stringBuffer.append(TEXT_129);
     stringBuffer.append(genClass.getName());
-    stringBuffer.append(TEXT_125);
+    stringBuffer.append(TEXT_130);
     stringBuffer.append(genModel.getNonNLS());
     }
-    stringBuffer.append(TEXT_126);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_127);
-    }
-    stringBuffer.append(TEXT_128);
-    if (!genClass.getLabelNotifyFeatures().isEmpty() || !genClass.getContentNotifyFeatures().isEmpty() || !genClass.getLabelAndContentNotifyFeatures().isEmpty()) {
-    stringBuffer.append(TEXT_129);
-    stringBuffer.append(genClass.getImportedInterfaceName());
-    stringBuffer.append(TEXT_130);
-    if (!genClass.getLabelNotifyFeatures().isEmpty()) {
-    for (GenFeature genFeature : genClass.getLabelNotifyFeatures()) { 
+    //ItemProvider/getText.override.javajetinc
     stringBuffer.append(TEXT_131);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_132);
     }
     stringBuffer.append(TEXT_133);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ViewerNotification"));
+    if (!genClass.getLabelNotifyFeatures().isEmpty() || !genClass.getContentNotifyFeatures().isEmpty() || !genClass.getLabelAndContentNotifyFeatures().isEmpty()) {
     stringBuffer.append(TEXT_134);
+    stringBuffer.append(genClass.getImportedInterfaceName());
+    stringBuffer.append(TEXT_135);
+    if (!genClass.getLabelNotifyFeatures().isEmpty()) {
+    for (GenFeature genFeature : genClass.getLabelNotifyFeatures()) { 
+    stringBuffer.append(TEXT_136);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_137);
+    }
+    stringBuffer.append(TEXT_138);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ViewerNotification"));
+    stringBuffer.append(TEXT_139);
     }
     if (!genClass.getContentNotifyFeatures().isEmpty()) {
     for (GenFeature genFeature : genClass.getContentNotifyFeatures()) { 
-    stringBuffer.append(TEXT_135);
+    stringBuffer.append(TEXT_140);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_136);
+    stringBuffer.append(TEXT_141);
     }
-    stringBuffer.append(TEXT_137);
+    stringBuffer.append(TEXT_142);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ViewerNotification"));
-    stringBuffer.append(TEXT_138);
+    stringBuffer.append(TEXT_143);
     }
     if (!genClass.getLabelAndContentNotifyFeatures().isEmpty()) {
     for (GenFeature genFeature : genClass.getLabelAndContentNotifyFeatures()) { 
-    stringBuffer.append(TEXT_139);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_140);
-    }
-    stringBuffer.append(TEXT_141);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ViewerNotification"));
-    stringBuffer.append(TEXT_142);
-    }
-    stringBuffer.append(TEXT_143);
-    }
     stringBuffer.append(TEXT_144);
-    if (genModel.isCreationCommands()) {
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_145);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
     }
+    stringBuffer.append(TEXT_146);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.ViewerNotification"));
     stringBuffer.append(TEXT_147);
-    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<java.lang.Object>" : "java.util.Collection"));
+    }
     stringBuffer.append(TEXT_148);
+    }
+    stringBuffer.append(TEXT_149);
+    if (genModel.isCreationCommands()) {
+    stringBuffer.append(TEXT_150);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_151);
+    }
+    stringBuffer.append(TEXT_152);
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<java.lang.Object>" : "java.util.Collection"));
+    stringBuffer.append(TEXT_153);
     for (GenFeature createFeature : genClass.getCrossPackageCreateChildFeatures()) { 
     for (GenClass createClass : genClass.getCrossPackageChildrenClasses(createFeature)) { 
-    stringBuffer.append(TEXT_149);
-    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_150);
-    if (createClass.isMapEntry()) { 
-    stringBuffer.append(TEXT_151);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_152);
-    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_153);
-    } else {
     stringBuffer.append(TEXT_154);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_155);
-    stringBuffer.append(createClass.getName());
+    if (createClass.isMapEntry()) { 
     stringBuffer.append(TEXT_156);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_157);
+    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
+    stringBuffer.append(TEXT_158);
+    } else {
+    stringBuffer.append(TEXT_159);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_160);
+    stringBuffer.append(createClass.getName());
+    stringBuffer.append(TEXT_161);
     }
     //ItemProvider/newChildDescriptorsCrossPackageFeature.override.javajetinc
     }
@@ -703,57 +720,57 @@
     for (GenFeature delegatedFeature : createFeature.getDelegatedFeatures()) { 
     if (delegatedFeature.isReferenceType()) {
     for (GenClass createClass : genClass.getChildrenClasses(delegatedFeature)) { 
-    stringBuffer.append(TEXT_157);
-    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_158);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
-    stringBuffer.append(TEXT_159);
-    stringBuffer.append(delegatedFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_160);
-    if (createClass.isMapEntry()) { 
-    stringBuffer.append(TEXT_161);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
     stringBuffer.append(TEXT_162);
-    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
+    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_163);
-    } else {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
     stringBuffer.append(TEXT_164);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(delegatedFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_165);
-    stringBuffer.append(createClass.getName());
+    if (createClass.isMapEntry()) { 
     stringBuffer.append(TEXT_166);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_167);
+    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
+    stringBuffer.append(TEXT_168);
+    } else {
+    stringBuffer.append(TEXT_169);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_170);
+    stringBuffer.append(createClass.getName());
+    stringBuffer.append(TEXT_171);
     }
     }
     //ItemProvider/newChildDescriptorsReferenceDelegatedFeature.override.javajetinc
     } else {
-    stringBuffer.append(TEXT_167);
-    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_168);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
-    stringBuffer.append(TEXT_169);
-    stringBuffer.append(delegatedFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_170);
-    if (delegatedFeature.isEnumBasedType()) {
-    stringBuffer.append(TEXT_171);
-    stringBuffer.append(delegatedFeature.getTypeGenEnum().getStaticValue(delegatedFeature.getEcoreFeature().getDefaultValueLiteral()));
     stringBuffer.append(TEXT_172);
-    } else if (delegatedFeature.isStringBasedType()) {
+    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_173);
-    stringBuffer.append(delegatedFeature.getCreateChildValueLiteral());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
     stringBuffer.append(TEXT_174);
+    stringBuffer.append(delegatedFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_175);
+    if (delegatedFeature.isEnumBasedType()) {
+    stringBuffer.append(TEXT_176);
+    stringBuffer.append(delegatedFeature.getTypeGenEnum().getStaticValue(delegatedFeature.getEcoreFeature().getDefaultValueLiteral()));
+    stringBuffer.append(TEXT_177);
+    } else if (delegatedFeature.isStringBasedType()) {
+    stringBuffer.append(TEXT_178);
+    stringBuffer.append(delegatedFeature.getCreateChildValueLiteral());
+    stringBuffer.append(TEXT_179);
     stringBuffer.append(genModel.getNonNLS());
     } else { String literal = delegatedFeature.getCreateChildValueLiteral(); GenDataType createDataType = delegatedFeature.getTypeGenDataType();
-    stringBuffer.append(TEXT_175);
+    stringBuffer.append(TEXT_180);
     stringBuffer.append(createDataType.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_176);
+    stringBuffer.append(TEXT_181);
     stringBuffer.append(createDataType.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_177);
+    stringBuffer.append(TEXT_182);
     stringBuffer.append(literal);
-    stringBuffer.append(TEXT_178);
+    stringBuffer.append(TEXT_183);
     if (literal != null) {
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_179);
+    stringBuffer.append(TEXT_184);
     }
     }
     //ItemProvider/newChildDescriptorsAttributeDelegatedFeature.override.javajetinc
@@ -761,236 +778,236 @@
     }
     } else if (createFeature.isReferenceType()) {
     for (GenClass createClass : genClass.getChildrenClasses(createFeature)) { 
-    stringBuffer.append(TEXT_180);
-    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_181);
-    if (createClass.isMapEntry()) { 
-    stringBuffer.append(TEXT_182);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_183);
-    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_184);
-    } else {
     stringBuffer.append(TEXT_185);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_186);
-    stringBuffer.append(createClass.getName());
+    if (createClass.isMapEntry()) { 
     stringBuffer.append(TEXT_187);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_188);
+    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
+    stringBuffer.append(TEXT_189);
+    } else {
+    stringBuffer.append(TEXT_190);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_191);
+    stringBuffer.append(createClass.getName());
+    stringBuffer.append(TEXT_192);
     }
     }
     //ItemProvider/newChildDescriptorsReferenceFeature.override.javajetinc 
     } else {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_189);
-    if (createFeature.isEnumBasedType()) {
-    stringBuffer.append(TEXT_190);
-    stringBuffer.append(createFeature.getTypeGenEnum().getStaticValue(createFeature.getEcoreFeature().getDefaultValueLiteral()));
-    stringBuffer.append(TEXT_191);
-    } else if (createFeature.isStringBasedType()) {
-    stringBuffer.append(TEXT_192);
-    stringBuffer.append(createFeature.getCreateChildValueLiteral());
     stringBuffer.append(TEXT_193);
+    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_194);
+    if (createFeature.isEnumBasedType()) {
+    stringBuffer.append(TEXT_195);
+    stringBuffer.append(createFeature.getTypeGenEnum().getStaticValue(createFeature.getEcoreFeature().getDefaultValueLiteral()));
+    stringBuffer.append(TEXT_196);
+    } else if (createFeature.isStringBasedType()) {
+    stringBuffer.append(TEXT_197);
+    stringBuffer.append(createFeature.getCreateChildValueLiteral());
+    stringBuffer.append(TEXT_198);
     stringBuffer.append(genModel.getNonNLS());
     } else { String literal = createFeature.getCreateChildValueLiteral(); GenDataType createDataType = createFeature.getTypeGenDataType();
-    stringBuffer.append(TEXT_194);
+    stringBuffer.append(TEXT_199);
     stringBuffer.append(createDataType.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_195);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(createDataType.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_196);
+    stringBuffer.append(TEXT_201);
     stringBuffer.append(literal);
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_202);
     if (literal != null) {
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_198);
+    stringBuffer.append(TEXT_203);
     }
     }
     //ItemProvider/newChildDescriptorsAttributeFeature.override.javajetinc
     }
     }
-    stringBuffer.append(TEXT_199);
-    if (!genClass.getSharedClassCreateChildFeatures().isEmpty()) {
-    stringBuffer.append(TEXT_200);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_201);
-    }
-    stringBuffer.append(TEXT_202);
-    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
-    stringBuffer.append(TEXT_203);
-    if (genClass.hasFeatureMapCreateChildFeatures()) {
     stringBuffer.append(TEXT_204);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    if (!genClass.getSharedClassCreateChildFeatures().isEmpty()) {
     stringBuffer.append(TEXT_205);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_206);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_207);
     }
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
     stringBuffer.append(TEXT_208);
-    for (Iterator<GenFeature> i = genClass.getSharedClassCreateChildFeatures().iterator(); i.hasNext();) { GenFeature createFeature = i.next();
+    if (genClass.hasFeatureMapCreateChildFeatures()) {
     stringBuffer.append(TEXT_209);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_210);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
+    stringBuffer.append(TEXT_211);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(TEXT_212);
+    }
+    stringBuffer.append(TEXT_213);
+    for (Iterator<GenFeature> i = genClass.getSharedClassCreateChildFeatures().iterator(); i.hasNext();) { GenFeature createFeature = i.next();
+    stringBuffer.append(TEXT_214);
     stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(i.hasNext() ? " ||" : ";");
     }
-    stringBuffer.append(TEXT_210);
+    stringBuffer.append(TEXT_215);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_211);
+    stringBuffer.append(TEXT_216);
     }
     if (!genModel.isCreationIcons() && genClass.isModelRoot()) {
-    stringBuffer.append(TEXT_212);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_213);
-    }
-    stringBuffer.append(TEXT_214);
-    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
-    stringBuffer.append(TEXT_215);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_216);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
     stringBuffer.append(TEXT_217);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_218);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    }
     stringBuffer.append(TEXT_219);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_220);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EReference"));
-    stringBuffer.append(TEXT_221);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
-    stringBuffer.append(TEXT_222);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_223);
-    stringBuffer.append(genClass.getGenPackage().getImportedEditPluginClassName());
-    stringBuffer.append(TEXT_224);
-    }
-    }
-    stringBuffer.append(TEXT_225);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_226);
-    }
-    stringBuffer.append(TEXT_227);
-    stringBuffer.append(genPackage.getImportedEditPluginClassName());
-    stringBuffer.append(TEXT_228);
-    if (!UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true).isEmpty()) {
-    stringBuffer.append(TEXT_229);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_230);
-    }
-    stringBuffer.append(TEXT_231);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
-    stringBuffer.append(TEXT_232);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_233);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
-    stringBuffer.append(TEXT_234);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_235);
     stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
-    stringBuffer.append(TEXT_236);
-    for (GenFeature subsetGenFeature : UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true)) {
-    stringBuffer.append(TEXT_237);
-    stringBuffer.append(subsetGenFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_238);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetAddCommand"));
-    stringBuffer.append(TEXT_239);
-    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, subsetGenFeature));
-    stringBuffer.append(TEXT_240);
+    stringBuffer.append(TEXT_220);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_221);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
+    stringBuffer.append(TEXT_222);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_223);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(TEXT_224);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(TEXT_225);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EReference"));
+    stringBuffer.append(TEXT_226);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_227);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_228);
+    stringBuffer.append(genClass.getGenPackage().getImportedEditPluginClassName());
+    stringBuffer.append(TEXT_229);
     }
+    }
+    stringBuffer.append(TEXT_230);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_231);
+    }
+    stringBuffer.append(TEXT_232);
+    stringBuffer.append(genPackage.getImportedEditPluginClassName());
+    stringBuffer.append(TEXT_233);
+    if (!UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true).isEmpty()) {
+    stringBuffer.append(TEXT_234);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_235);
+    }
+    stringBuffer.append(TEXT_236);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
+    stringBuffer.append(TEXT_237);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
+    stringBuffer.append(TEXT_238);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_239);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_240);
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
     stringBuffer.append(TEXT_241);
+    for (GenFeature subsetGenFeature : UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true)) {
+    stringBuffer.append(TEXT_242);
+    stringBuffer.append(subsetGenFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_243);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetAddCommand"));
+    stringBuffer.append(TEXT_244);
+    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, subsetGenFeature));
+    stringBuffer.append(TEXT_245);
+    }
+    stringBuffer.append(TEXT_246);
     }
     if (!UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, true).isEmpty()) {
-    stringBuffer.append(TEXT_242);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_243);
-    }
-    stringBuffer.append(TEXT_244);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
-    stringBuffer.append(TEXT_245);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_246);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
     stringBuffer.append(TEXT_247);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_248);
-    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
-    stringBuffer.append(TEXT_249);
-    for (GenFeature supersetGenFeature : UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, true)) {
-    stringBuffer.append(TEXT_250);
-    stringBuffer.append(supersetGenFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_251);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SupersetRemoveCommand"));
-    stringBuffer.append(TEXT_252);
-    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, supersetGenFeature));
-    stringBuffer.append(TEXT_253);
     }
+    stringBuffer.append(TEXT_249);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
+    stringBuffer.append(TEXT_250);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
+    stringBuffer.append(TEXT_251);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_252);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_253);
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
     stringBuffer.append(TEXT_254);
+    for (GenFeature supersetGenFeature : UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, true)) {
+    stringBuffer.append(TEXT_255);
+    stringBuffer.append(supersetGenFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_256);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SupersetRemoveCommand"));
+    stringBuffer.append(TEXT_257);
+    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, supersetGenFeature));
+    stringBuffer.append(TEXT_258);
+    }
+    stringBuffer.append(TEXT_259);
     }
     if (!UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, true).isEmpty() || !UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, true).isEmpty()) {
-    stringBuffer.append(TEXT_255);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_256);
-    }
-    stringBuffer.append(TEXT_257);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
-    stringBuffer.append(TEXT_258);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_259);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
     stringBuffer.append(TEXT_260);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_261);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    }
     stringBuffer.append(TEXT_262);
-    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
     stringBuffer.append(TEXT_263);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
+    stringBuffer.append(TEXT_264);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_265);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_266);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_267);
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.util.Collection<?>" : "java.util.Collection"));
+    stringBuffer.append(TEXT_268);
     { 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_264);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_265);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand"));
-    stringBuffer.append(TEXT_266);
-    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, genFeature));
-    stringBuffer.append(TEXT_267);
-    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, genFeature));
-    stringBuffer.append(TEXT_268);
-    }
-    }
     stringBuffer.append(TEXT_269);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_270);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand"));
+    stringBuffer.append(TEXT_271);
+    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, genFeature));
+    stringBuffer.append(TEXT_272);
+    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, genFeature));
+    stringBuffer.append(TEXT_273);
+    }
+    }
+    stringBuffer.append(TEXT_274);
     }
     if (!UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, false).isEmpty() || !UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, false).isEmpty()) {
-    stringBuffer.append(TEXT_270);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_271);
-    }
-    stringBuffer.append(TEXT_272);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
-    stringBuffer.append(TEXT_273);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_274);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
     stringBuffer.append(TEXT_275);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_276);
+    }
+    stringBuffer.append(TEXT_277);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.Command"));
+    stringBuffer.append(TEXT_278);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
+    stringBuffer.append(TEXT_279);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_280);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_281);
     { List<GenFeature> subsetSupersetGenFeatures = new UniqueEList.FastCompare<GenFeature>(); subsetSupersetGenFeatures.addAll(UML2GenModelUtil.getImplementedSubsetGenFeatures(genClass, false)); subsetSupersetGenFeatures.addAll(UML2GenModelUtil.getImplementedSupersetGenFeatures(genClass, false));
     for (GenFeature genFeature : subsetSupersetGenFeatures) {
-    stringBuffer.append(TEXT_277);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_278);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetSupersetSetCommand"));
-    stringBuffer.append(TEXT_279);
-    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, genFeature));
-    stringBuffer.append(TEXT_280);
-    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, genFeature));
-    stringBuffer.append(TEXT_281);
-    }
-    }
     stringBuffer.append(TEXT_282);
-    }
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_283);
-    genModel.emitSortedImports();
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.edit.command.SubsetSupersetSetCommand"));
     stringBuffer.append(TEXT_284);
+    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureAccessorArray(genClass, genFeature));
+    stringBuffer.append(TEXT_285);
+    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureAccessorArray(genClass, genFeature));
+    stringBuffer.append(TEXT_286);
+    }
+    }
+    stringBuffer.append(TEXT_287);
+    }
+    stringBuffer.append(TEXT_288);
+    genModel.emitSortedImports();
+    stringBuffer.append(TEXT_289);
     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 dfc9fea..efa3e1a 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
@@ -3658,7 +3658,7 @@
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_285);
     } else {
-    if (genModel.useGenerics() && ((genFeature.isContainer() || genFeature.isResolveProxies()) && !genFeature.isListType() && !genModel.isReflectiveDelegation() && genFeature.isUncheckedCast() || genFeature.isListType() && (genModel.isReflectiveDelegation() || genModel.isVirtualDelegation()) || genFeature.isListDataType() && genFeature.hasDelegateFeature())) {
+    if (genModel.useGenerics() && ((genFeature.isContainer() || genFeature.isResolveProxies()) && !genFeature.isListType() && !genModel.isReflectiveDelegation() && genFeature.isUncheckedCast(genClass) || genFeature.isListType() && (genModel.isReflectiveDelegation() || genModel.isVirtualDelegation()) || genFeature.isListDataType() && genFeature.hasDelegateFeature())) {
     stringBuffer.append(TEXT_286);
     }
     stringBuffer.append(TEXT_287);
@@ -7319,7 +7319,7 @@
     stringBuffer.append(TEXT_1867);
     if (genModel.useGenerics()) {
     for (GenFeature genFeature : genClass.getEInverseAddGenFeatures()) {
-    if (genFeature.isUncheckedCast()) {
+    if (genFeature.isUncheckedCast(genClass)) {
     stringBuffer.append(TEXT_1868);
     break; }
     }
@@ -7619,7 +7619,7 @@
     stringBuffer.append(TEXT_1999);
     if (genModel.useGenerics()) {
     for (GenFeature genFeature : genClass.getESetGenFeatures()) {
-    if (genFeature.isUncheckedCast() && !genFeature.isFeatureMapType() && !genFeature.isMapType()) {
+    if (genFeature.isUncheckedCast(genClass) && !genFeature.isFeatureMapType() && !genFeature.isMapType()) {
     stringBuffer.append(TEXT_2000);
     break; }
     }