[394720] @Override is not generated for interfaces methods for java 6
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/GenModel.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/GenModel.java
index 3a834c6..977e645 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/GenModel.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/GenModel.java
@@ -3037,6 +3037,11 @@
   /**
    * @since 2.3
    */
+  boolean useInterfaceOverrideAnnotation();
+
+  /**
+   * @since 2.3
+   */
   boolean useGenerics();
   
   /**
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/impl/GenModelImpl.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/impl/GenModelImpl.java
index 5efc881..a3aacce 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/impl/GenModelImpl.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/impl/GenModelImpl.java
@@ -10125,6 +10125,11 @@
     return getComplianceLevel().getValue() >= GenJDKLevel.JDK50;
   }
 
+  public boolean useInterfaceOverrideAnnotation()
+  {
+    return getComplianceLevel().getValue() >= GenJDKLevel.JDK60;
+  }
+
   public boolean useGenerics()
   {
     return getComplianceLevel().getValue() >= GenJDKLevel.JDK50;
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProviderAdapterFactory.java
index 1d24659..8ae1f9f 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProviderAdapterFactory.java
@@ -87,70 +87,76 @@
   protected final String TEXT_69 = "() == null ?" + NL + "\t\t\t\tnull :" + NL + "\t\t\t\tget";
   protected final String TEXT_70 = "().create";
   protected final String TEXT_71 = "Adapter();" + NL + "\t}" + NL;
-  protected final String TEXT_72 = NL + "\t/**" + NL + "\t * This returns the root adapter factory that contains this factory." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ComposeableAdapterFactory getRootAdapterFactory()" + NL + "\t{" + NL + "\t\treturn parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This sets the composed adapter factory that contains this factory." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)" + NL + "\t{" + NL + "\t\tthis.parentAdapterFactory = parentAdapterFactory;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_73 = NL + "\tpublic boolean isFactoryForType(Object type)" + NL + "\t{" + NL + "\t\treturn supportedTypes.contains(type) || super.isFactoryForType(type);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implementation substitutes the factory itself as the key for the adapter." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_74 = NL + "\tpublic Adapter adapt(Notifier notifier, Object type)" + NL + "\t{" + NL + "\t\treturn super.adapt(notifier, this);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_75 = NL + "\tpublic Object adapt(Object object, Object type)" + NL + "\t{" + NL + "\t\tif (isFactoryForType(type))" + NL + "\t\t{" + NL + "\t\t\tObject adapter = super.adapt(object, type);" + NL + "\t\t\tif (!(type instanceof Class";
-  protected final String TEXT_76 = "<?>";
-  protected final String TEXT_77 = ") || ";
-  protected final String TEXT_78 = ".isInstance((Class";
-  protected final String TEXT_79 = ")type, adapter)";
-  protected final String TEXT_80 = "(((Class";
-  protected final String TEXT_81 = ")type).isInstance(adapter))";
-  protected final String TEXT_82 = ")" + NL + "\t\t\t{" + NL + "\t\t\t\treturn adapter;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\treturn null;" + NL + "\t}" + NL;
-  protected final String TEXT_83 = NL + "\t/**" + NL + "\t * Associates an adapter with a notifier via the base implementation, then records it to ensure it will be disposed." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_84 = NL + "\tprotected void associate(Adapter adapter, Notifier target)" + NL + "\t{" + NL + "\t\tsuper.associate(adapter, target);" + NL + "\t\tif (adapter != null)" + NL + "\t\t{" + NL + "\t\t\tdisposable.add(adapter);" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_85 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_86 = " getChildCreationExtenders()" + NL + "\t{" + NL + "\t\treturn childCreationExtenderManager.getChildCreationExtenders();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_87 = " getNewChildDescriptors(Object object, ";
-  protected final String TEXT_88 = " editingDomain)" + NL + "\t{" + NL + "\t\treturn childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_89 = " getResourceLocator()" + NL + "\t{" + NL + "\t\treturn childCreationExtenderManager;" + NL + "\t}" + NL;
-  protected final String TEXT_90 = NL + "\t/**" + NL + "\t * This adds a listener." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void addListener(INotifyChangedListener notifyChangedListener)" + NL + "\t{" + NL + "\t\tchangeNotifier.addListener(notifyChangedListener);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This removes a listener." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void removeListener(INotifyChangedListener notifyChangedListener)" + NL + "\t{" + NL + "\t\tchangeNotifier.removeListener(notifyChangedListener);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void fireNotifyChanged(Notification notification)" + NL + "\t{" + NL + "\t\tchangeNotifier.fireNotifyChanged(notification);" + NL + "" + NL + "\t\tif (parentAdapterFactory != null)" + NL + "\t\t{" + NL + "\t\t\tparentAdapterFactory.fireNotifyChanged(notification);" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_91 = NL + "\t/**" + NL + "\t * This disposes all of the item providers created by this factory. " + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void dispose()" + NL + "\t{";
-  protected final String TEXT_92 = NL + "\t\tdisposable.dispose();";
-  protected final String TEXT_93 = NL + "\t\tif (";
-  protected final String TEXT_94 = "ItemProvider != null) ";
-  protected final String TEXT_95 = "ItemProvider.dispose();";
-  protected final String TEXT_96 = NL + "\t/**" + NL + "\t * A child creation extender for the {@link ";
-  protected final String TEXT_97 = "}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class ";
-  protected final String TEXT_98 = " implements ";
-  protected final String TEXT_99 = NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * The switch for creating child descriptors specific to each extended class." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected static class CreationSwitch extends ";
-  protected final String TEXT_100 = NL + "\t\t{" + NL + "\t\t\t/**" + NL + "\t\t\t * The child descriptors being populated." + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */" + NL + "\t\t\tprotected ";
-  protected final String TEXT_101 = " newChildDescriptors;" + NL + "" + NL + "\t\t\t/**" + NL + "\t\t\t * The domain in which to create the children." + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */" + NL + "\t\t\tprotected ";
-  protected final String TEXT_102 = " editingDomain;" + NL + "" + NL + "\t\t\t/**" + NL + "\t\t\t * Creates the a switch for populating child descriptors in the given domain." + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */" + NL + "\t\t\tCreationSwitch(";
-  protected final String TEXT_103 = " newChildDescriptors, ";
-  protected final String TEXT_104 = " editingDomain) " + NL + "\t\t\t{" + NL + "\t\t\t\tthis.newChildDescriptors = newChildDescriptors;" + NL + "\t\t\t\tthis.editingDomain = editingDomain;" + NL + "\t\t\t}";
-  protected final String TEXT_105 = NL + "\t\t\t/**" + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */";
-  protected final String TEXT_106 = NL + "\t\t\t@Override";
-  protected final String TEXT_107 = NL + "\t\t\tpublic ";
-  protected final String TEXT_108 = "Object case";
-  protected final String TEXT_109 = " object)" + NL + "\t\t\t{";
-  protected final String TEXT_110 = NL + "\t\t\t\tnewChildDescriptors.add" + NL + "\t\t\t\t\t(createChildParameter" + NL + "\t\t\t\t\t\t(";
-  protected final String TEXT_111 = "," + NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_112 = ".createEntry" + NL + "\t\t\t\t\t\t\t(";
-  protected final String TEXT_113 = ",";
-  protected final String TEXT_114 = NL + "\t\t\t\t\t\t\t ";
-  protected final String TEXT_115 = ".create(";
-  protected final String TEXT_116 = "))));";
-  protected final String TEXT_117 = ".create";
-  protected final String TEXT_118 = "())));";
-  protected final String TEXT_119 = ")));";
-  protected final String TEXT_120 = ".createFromString(";
-  protected final String TEXT_121 = " // TODO: ensure this is a valid literal value";
-  protected final String TEXT_122 = NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_123 = "()));";
-  protected final String TEXT_124 = "));";
-  protected final String TEXT_125 = NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + " ";
-  protected final String TEXT_126 = NL + "\t\t\t/**" + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */" + NL + "\t\t\tprotected ";
-  protected final String TEXT_127 = " createChildParameter(Object feature, Object child)" + NL + "\t\t\t{" + NL + "\t\t\t\treturn new ";
-  protected final String TEXT_128 = "(null, feature, child);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ";
-  protected final String TEXT_129 = " editingDomain)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_130 = " result = new ";
-  protected final String TEXT_131 = "();" + NL + "\t\t\tnew CreationSwitch(result, editingDomain).doSwitch((";
-  protected final String TEXT_132 = ")object);" + NL + "\t\t\treturn result;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ";
-  protected final String TEXT_133 = " getResourceLocator()" + NL + "\t\t{" + NL + "\t\t\treturn ";
-  protected final String TEXT_134 = ".INSTANCE;" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_135 = NL + "}";
+  protected final String TEXT_72 = NL + "\t/**" + NL + "\t * This returns the root adapter factory that contains this factory." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_73 = NL + "\tpublic ComposeableAdapterFactory getRootAdapterFactory()" + NL + "\t{" + NL + "\t\treturn parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This sets the composed adapter factory that contains this factory." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_74 = NL + "\tpublic void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)" + NL + "\t{" + NL + "\t\tthis.parentAdapterFactory = parentAdapterFactory;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_75 = NL + "\tpublic boolean isFactoryForType(Object type)" + NL + "\t{" + NL + "\t\treturn supportedTypes.contains(type) || super.isFactoryForType(type);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implementation substitutes the factory itself as the key for the adapter." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_76 = NL + "\tpublic Adapter adapt(Notifier notifier, Object type)" + NL + "\t{" + NL + "\t\treturn super.adapt(notifier, this);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_77 = NL + "\tpublic Object adapt(Object object, Object type)" + NL + "\t{" + NL + "\t\tif (isFactoryForType(type))" + NL + "\t\t{" + NL + "\t\t\tObject adapter = super.adapt(object, type);" + NL + "\t\t\tif (!(type instanceof Class";
+  protected final String TEXT_78 = "<?>";
+  protected final String TEXT_79 = ") || ";
+  protected final String TEXT_80 = ".isInstance((Class";
+  protected final String TEXT_81 = ")type, adapter)";
+  protected final String TEXT_82 = "(((Class";
+  protected final String TEXT_83 = ")type).isInstance(adapter))";
+  protected final String TEXT_84 = ")" + NL + "\t\t\t{" + NL + "\t\t\t\treturn adapter;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\treturn null;" + NL + "\t}" + NL;
+  protected final String TEXT_85 = NL + "\t/**" + NL + "\t * Associates an adapter with a notifier via the base implementation, then records it to ensure it will be disposed." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_86 = NL + "\tprotected void associate(Adapter adapter, Notifier target)" + NL + "\t{" + NL + "\t\tsuper.associate(adapter, target);" + NL + "\t\tif (adapter != null)" + NL + "\t\t{" + NL + "\t\t\tdisposable.add(adapter);" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_87 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+  protected final String TEXT_88 = " getChildCreationExtenders()" + NL + "\t{" + NL + "\t\treturn childCreationExtenderManager.getChildCreationExtenders();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+  protected final String TEXT_89 = " getNewChildDescriptors(Object object, ";
+  protected final String TEXT_90 = " editingDomain)" + NL + "\t{" + NL + "\t\treturn childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+  protected final String TEXT_91 = " getResourceLocator()" + NL + "\t{" + NL + "\t\treturn childCreationExtenderManager;" + NL + "\t}" + NL;
+  protected final String TEXT_92 = NL + "\t/**" + NL + "\t * This adds a listener." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_93 = NL + "\tpublic void addListener(INotifyChangedListener notifyChangedListener)" + NL + "\t{" + NL + "\t\tchangeNotifier.addListener(notifyChangedListener);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This removes a listener." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_94 = NL + "\tpublic void removeListener(INotifyChangedListener notifyChangedListener)" + NL + "\t{" + NL + "\t\tchangeNotifier.removeListener(notifyChangedListener);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_95 = NL + "\tpublic void fireNotifyChanged(Notification notification)" + NL + "\t{" + NL + "\t\tchangeNotifier.fireNotifyChanged(notification);" + NL + "" + NL + "\t\tif (parentAdapterFactory != null)" + NL + "\t\t{" + NL + "\t\t\tparentAdapterFactory.fireNotifyChanged(notification);" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_96 = NL + "\t/**" + NL + "\t * This disposes all of the item providers created by this factory. " + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_97 = NL + "\tpublic void dispose()" + NL + "\t{";
+  protected final String TEXT_98 = NL + "\t\tdisposable.dispose();";
+  protected final String TEXT_99 = NL + "\t\tif (";
+  protected final String TEXT_100 = "ItemProvider != null) ";
+  protected final String TEXT_101 = "ItemProvider.dispose();";
+  protected final String TEXT_102 = NL + "\t/**" + NL + "\t * A child creation extender for the {@link ";
+  protected final String TEXT_103 = "}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class ";
+  protected final String TEXT_104 = " implements ";
+  protected final String TEXT_105 = NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * The switch for creating child descriptors specific to each extended class." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected static class CreationSwitch extends ";
+  protected final String TEXT_106 = NL + "\t\t{" + NL + "\t\t\t/**" + NL + "\t\t\t * The child descriptors being populated." + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */" + NL + "\t\t\tprotected ";
+  protected final String TEXT_107 = " newChildDescriptors;" + NL + "" + NL + "\t\t\t/**" + NL + "\t\t\t * The domain in which to create the children." + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */" + NL + "\t\t\tprotected ";
+  protected final String TEXT_108 = " editingDomain;" + NL + "" + NL + "\t\t\t/**" + NL + "\t\t\t * Creates the a switch for populating child descriptors in the given domain." + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */" + NL + "\t\t\tCreationSwitch(";
+  protected final String TEXT_109 = " newChildDescriptors, ";
+  protected final String TEXT_110 = " editingDomain) " + NL + "\t\t\t{" + NL + "\t\t\t\tthis.newChildDescriptors = newChildDescriptors;" + NL + "\t\t\t\tthis.editingDomain = editingDomain;" + NL + "\t\t\t}";
+  protected final String TEXT_111 = NL + "\t\t\t/**" + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */";
+  protected final String TEXT_112 = NL + "\t\t\t@Override";
+  protected final String TEXT_113 = NL + "\t\t\tpublic ";
+  protected final String TEXT_114 = "Object case";
+  protected final String TEXT_115 = " object)" + NL + "\t\t\t{";
+  protected final String TEXT_116 = NL + "\t\t\t\tnewChildDescriptors.add" + NL + "\t\t\t\t\t(createChildParameter" + NL + "\t\t\t\t\t\t(";
+  protected final String TEXT_117 = "," + NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_118 = ".createEntry" + NL + "\t\t\t\t\t\t\t(";
+  protected final String TEXT_119 = ",";
+  protected final String TEXT_120 = NL + "\t\t\t\t\t\t\t ";
+  protected final String TEXT_121 = ".create(";
+  protected final String TEXT_122 = "))));";
+  protected final String TEXT_123 = ".create";
+  protected final String TEXT_124 = "())));";
+  protected final String TEXT_125 = ")));";
+  protected final String TEXT_126 = ".createFromString(";
+  protected final String TEXT_127 = " // TODO: ensure this is a valid literal value";
+  protected final String TEXT_128 = NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_129 = "()));";
+  protected final String TEXT_130 = "));";
+  protected final String TEXT_131 = NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + " ";
+  protected final String TEXT_132 = NL + "\t\t\t/**" + NL + "\t\t\t * <!-- begin-user-doc -->" + NL + "\t\t\t * <!-- end-user-doc -->" + NL + "\t\t\t * @generated" + NL + "\t\t\t */" + NL + "\t\t\tprotected ";
+  protected final String TEXT_133 = " createChildParameter(Object feature, Object child)" + NL + "\t\t\t{" + NL + "\t\t\t\treturn new ";
+  protected final String TEXT_134 = "(null, feature, child);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ";
+  protected final String TEXT_135 = " editingDomain)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_136 = " result = new ";
+  protected final String TEXT_137 = "();" + NL + "\t\t\tnew CreationSwitch(result, editingDomain).doSwitch((";
+  protected final String TEXT_138 = ")object);" + NL + "\t\t\treturn result;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ";
+  protected final String TEXT_139 = " getResourceLocator()" + NL + "\t\t{" + NL + "\t\t\treturn ";
+  protected final String TEXT_140 = ".INSTANCE;" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_141 = NL + "}";
 
   public String generate(Object argument)
   {
@@ -378,11 +384,11 @@
     stringBuffer.append(TEXT_71);
     }
     stringBuffer.append(TEXT_72);
-    if (genModel.useClassOverrideAnnotation()) {
+    if (genModel.useInterfaceOverrideAnnotation()){
     stringBuffer.append(TEXT_55);
     }
     stringBuffer.append(TEXT_73);
-    if (genModel.useClassOverrideAnnotation()) {
+    if (genModel.useInterfaceOverrideAnnotation()){
     stringBuffer.append(TEXT_55);
     }
     stringBuffer.append(TEXT_74);
@@ -390,56 +396,80 @@
     stringBuffer.append(TEXT_55);
     }
     stringBuffer.append(TEXT_75);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_76);
-    }
-    stringBuffer.append(TEXT_77);
-    if (genModel.getRuntimePlatform() == GenRuntimePlatform.GWT) {
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Reflect"));
-    stringBuffer.append(TEXT_78);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_76);
-    }
-    stringBuffer.append(TEXT_79);
-    } else {
-    stringBuffer.append(TEXT_80);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_76);
-    }
-    stringBuffer.append(TEXT_81);
-    }
-    stringBuffer.append(TEXT_82);
-    if (genPackage.isDisposableProviderFactory() && genPackage.hasStatefulProvider()) {
-    stringBuffer.append(TEXT_83);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_55);
     }
+    stringBuffer.append(TEXT_76);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_55);
+    }
+    stringBuffer.append(TEXT_77);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_78);
+    }
+    stringBuffer.append(TEXT_79);
+    if (genModel.getRuntimePlatform() == GenRuntimePlatform.GWT) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Reflect"));
+    stringBuffer.append(TEXT_80);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_78);
+    }
+    stringBuffer.append(TEXT_81);
+    } else {
+    stringBuffer.append(TEXT_82);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_78);
+    }
+    stringBuffer.append(TEXT_83);
+    }
     stringBuffer.append(TEXT_84);
+    if (genPackage.isDisposableProviderFactory() && genPackage.hasStatefulProvider()) {
+    stringBuffer.append(TEXT_85);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_55);
+    }
+    stringBuffer.append(TEXT_86);
     }
     if (genPackage.isExtensibleProviderFactory()) {
-    stringBuffer.append(TEXT_85);
-    stringBuffer.append(genModel.getImportedName(useGenerics ? "java.util.List<org.eclipse.emf.edit.provider.IChildCreationExtender>" : "java.util.List"));
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genModel.getImportedName(useGenerics ? "java.util.Collection<?>" : "java.util.Collection"));
     stringBuffer.append(TEXT_87);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
+    stringBuffer.append(genModel.getImportedName(useGenerics ? "java.util.List<org.eclipse.emf.edit.provider.IChildCreationExtender>" : "java.util.List"));
     stringBuffer.append(TEXT_88);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.ResourceLocator"));
+    stringBuffer.append(genModel.getImportedName(useGenerics ? "java.util.Collection<?>" : "java.util.Collection"));
     stringBuffer.append(TEXT_89);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
     stringBuffer.append(TEXT_90);
-    if (genPackage.isDisposableProviderFactory()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.ResourceLocator"));
     stringBuffer.append(TEXT_91);
-    if (genPackage.hasStatefulProvider()) {
+    }
     stringBuffer.append(TEXT_92);
+    if (genModel.useInterfaceOverrideAnnotation()){
+    stringBuffer.append(TEXT_55);
+    }
+    stringBuffer.append(TEXT_93);
+    if (genModel.useInterfaceOverrideAnnotation()){
+    stringBuffer.append(TEXT_55);
+    }
+    stringBuffer.append(TEXT_94);
+    if (genModel.useInterfaceOverrideAnnotation()){
+    stringBuffer.append(TEXT_55);
+    }
+    stringBuffer.append(TEXT_95);
+    if (genPackage.isDisposableProviderFactory()) {
+    stringBuffer.append(TEXT_96);
+    if (genModel.useInterfaceOverrideAnnotation()){
+    stringBuffer.append(TEXT_55);
+    }
+    stringBuffer.append(TEXT_97);
+    if (genPackage.hasStatefulProvider()) {
+    stringBuffer.append(TEXT_98);
     } else {
     for (GenClass genClass : genPackage.getGenClasses()) {
     if (!genClass.isAbstract() && genClass.isProviderSingleton()) {
-    stringBuffer.append(TEXT_93);
+    stringBuffer.append(TEXT_99);
     stringBuffer.append(genClass.getUncapName());
-    stringBuffer.append(TEXT_94);
+    stringBuffer.append(TEXT_100);
     stringBuffer.append(genClass.getUncapName());
-    stringBuffer.append(TEXT_95);
+    stringBuffer.append(TEXT_101);
     }
     }
     }
@@ -447,167 +477,167 @@
     }
     if (genPackage.isChildCreationExtenders()) {
     for (Map.Entry<GenPackage, Map<GenClass, List<GenClass.ChildCreationData>>> packageEntry : genPackage.getExtendedChildCreationData().entrySet()) {
-    stringBuffer.append(TEXT_96);
+    stringBuffer.append(TEXT_102);
     stringBuffer.append(packageEntry.getKey().getImportedPackageInterfaceName());
-    stringBuffer.append(TEXT_97);
+    stringBuffer.append(TEXT_103);
     stringBuffer.append(genPackage.getChildCreationExtenderName(packageEntry.getKey()));
-    stringBuffer.append(TEXT_98);
+    stringBuffer.append(TEXT_104);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.provider.IChildCreationExtender"));
-    stringBuffer.append(TEXT_99);
+    stringBuffer.append(TEXT_105);
     stringBuffer.append(genModel.getImportedName(packageEntry.getKey().getQualifiedSwitchClassName()));
     stringBuffer.append(useGenerics ? "<Object>" : "");
-    stringBuffer.append(TEXT_100);
-    stringBuffer.append(genModel.getImportedName(useGenerics ? "java.util.List<Object>" : "java.util.List"));
-    stringBuffer.append(TEXT_101);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_102);
-    stringBuffer.append(genModel.getImportedName(useGenerics ? "java.util.List<Object>" : "java.util.List"));
-    stringBuffer.append(TEXT_103);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_104);
-    for (Map.Entry<GenClass, List<GenClass.ChildCreationData>> classEntry : packageEntry.getValue().entrySet()) { GenClass genClass = classEntry.getKey();
-    stringBuffer.append(TEXT_105);
-    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_106);
-    }
+    stringBuffer.append(genModel.getImportedName(useGenerics ? "java.util.List<Object>" : "java.util.List"));
     stringBuffer.append(TEXT_107);
-    stringBuffer.append(genClass.getTypeParameters());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
     stringBuffer.append(TEXT_108);
+    stringBuffer.append(genModel.getImportedName(useGenerics ? "java.util.List<Object>" : "java.util.List"));
+    stringBuffer.append(TEXT_109);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
+    stringBuffer.append(TEXT_110);
+    for (Map.Entry<GenClass, List<GenClass.ChildCreationData>> classEntry : packageEntry.getValue().entrySet()) { GenClass genClass = classEntry.getKey();
+    stringBuffer.append(TEXT_111);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_112);
+    }
+    stringBuffer.append(TEXT_113);
+    stringBuffer.append(genClass.getTypeParameters());
+    stringBuffer.append(TEXT_114);
     stringBuffer.append(genPackage.getClassUniqueName(genClass));
     stringBuffer.append(TEXT_24);
     stringBuffer.append(genClass.getImportedInterfaceName());
     stringBuffer.append(genClass.getInterfaceTypeArguments());
-    stringBuffer.append(TEXT_109);
+    stringBuffer.append(TEXT_115);
     for (GenClass.ChildCreationData childCreationData : classEntry.getValue()) { GenFeature createFeature = childCreationData.createFeature; GenFeature delegatedFeature = childCreationData.delegatedFeature; GenClassifier createClassifier = childCreationData.createClassifier;
     if (createFeature.isFeatureMapType()) {
     if (delegatedFeature.isReferenceType()) { GenClass createClass = (GenClass)createClassifier;
-    stringBuffer.append(TEXT_110);
-    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_111);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
-    stringBuffer.append(TEXT_112);
-    stringBuffer.append(delegatedFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_113);
-    if (createClass.isMapEntry()) { 
-    stringBuffer.append(TEXT_114);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_115);
-    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_116);
-    } else {
-    stringBuffer.append(TEXT_114);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_117);
-    stringBuffer.append(createClass.getName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
     stringBuffer.append(TEXT_118);
+    stringBuffer.append(delegatedFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_119);
+    if (createClass.isMapEntry()) { 
+    stringBuffer.append(TEXT_120);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_121);
+    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
+    stringBuffer.append(TEXT_122);
+    } else {
+    stringBuffer.append(TEXT_120);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_123);
+    stringBuffer.append(createClass.getName());
+    stringBuffer.append(TEXT_124);
     }
     //ItemProvider/newChildDescriptorsReferenceDelegatedFeature.override.javajetinc
     } else { GenDataType createDataType = (GenDataType)createClassifier;
-    stringBuffer.append(TEXT_110);
+    stringBuffer.append(TEXT_116);
     stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_111);
+    stringBuffer.append(TEXT_117);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMapUtil"));
-    stringBuffer.append(TEXT_112);
+    stringBuffer.append(TEXT_118);
     stringBuffer.append(delegatedFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_113);
+    stringBuffer.append(TEXT_119);
     if (delegatedFeature.isEnumBasedType()) {
-    stringBuffer.append(TEXT_114);
+    stringBuffer.append(TEXT_120);
     stringBuffer.append(delegatedFeature.getTypeGenEnum().getStaticValue(delegatedFeature.getEcoreFeature().getDefaultValueLiteral()));
-    stringBuffer.append(TEXT_119);
+    stringBuffer.append(TEXT_125);
     } else if (delegatedFeature.isStringBasedType()) {
-    stringBuffer.append(TEXT_114);
+    stringBuffer.append(TEXT_120);
     stringBuffer.append(delegatedFeature.getCreateChildValueLiteral());
-    stringBuffer.append(TEXT_119);
+    stringBuffer.append(TEXT_125);
     stringBuffer.append(genModel.getNonNLS());
     } else { String literal = delegatedFeature.getCreateChildValueLiteral();
-    stringBuffer.append(TEXT_114);
-    stringBuffer.append(createDataType.getGenPackage().getQualifiedEFactoryInstanceAccessor());
     stringBuffer.append(TEXT_120);
+    stringBuffer.append(createDataType.getGenPackage().getQualifiedEFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_126);
     stringBuffer.append(createDataType.getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_13);
     stringBuffer.append(literal);
-    stringBuffer.append(TEXT_116);
+    stringBuffer.append(TEXT_122);
     if (literal != null) {
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_121);
+    stringBuffer.append(TEXT_127);
     }
     }
     //ItemProvider/newChildDescriptorsAttributeDelegatedFeature.override.javajetinc
     }
     } else if (createFeature.isReferenceType()) { GenClass createClass = (GenClass)createClassifier;
-    stringBuffer.append(TEXT_110);
+    stringBuffer.append(TEXT_116);
     stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_113);
-    if (createClass.isMapEntry()) { 
-    stringBuffer.append(TEXT_122);
-    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_115);
-    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_119);
+    if (createClass.isMapEntry()) { 
+    stringBuffer.append(TEXT_128);
+    stringBuffer.append(createClass.getGenPackage().getQualifiedEFactoryInstanceAccessor());
+    stringBuffer.append(TEXT_121);
+    stringBuffer.append(createClass.getQualifiedClassifierAccessor());
+    stringBuffer.append(TEXT_125);
     } else {
-    stringBuffer.append(TEXT_122);
+    stringBuffer.append(TEXT_128);
     stringBuffer.append(createClass.getGenPackage().getQualifiedFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_117);
-    stringBuffer.append(createClass.getName());
     stringBuffer.append(TEXT_123);
+    stringBuffer.append(createClass.getName());
+    stringBuffer.append(TEXT_129);
     }
     //ItemProvider/newChildDescriptorsReferenceFeature.override.javajetinc 
     } else { GenDataType createDataType = (GenDataType)createClassifier;
-    stringBuffer.append(TEXT_110);
+    stringBuffer.append(TEXT_116);
     stringBuffer.append(createFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_113);
+    stringBuffer.append(TEXT_119);
     if (createFeature.isEnumBasedType()) {
-    stringBuffer.append(TEXT_122);
+    stringBuffer.append(TEXT_128);
     stringBuffer.append(createFeature.getTypeGenEnum().getStaticValue(createFeature.getEcoreFeature().getDefaultValueLiteral()));
-    stringBuffer.append(TEXT_124);
+    stringBuffer.append(TEXT_130);
     } else if (createFeature.isStringBasedType()) {
-    stringBuffer.append(TEXT_122);
+    stringBuffer.append(TEXT_128);
     stringBuffer.append(createFeature.getCreateChildValueLiteral());
-    stringBuffer.append(TEXT_124);
+    stringBuffer.append(TEXT_130);
     stringBuffer.append(genModel.getNonNLS());
     } else { String literal = createFeature.getCreateChildValueLiteral();
-    stringBuffer.append(TEXT_122);
+    stringBuffer.append(TEXT_128);
     stringBuffer.append(createDataType.getGenPackage().getQualifiedEFactoryInstanceAccessor());
-    stringBuffer.append(TEXT_120);
+    stringBuffer.append(TEXT_126);
     stringBuffer.append(createDataType.getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_13);
     stringBuffer.append(literal);
-    stringBuffer.append(TEXT_119);
+    stringBuffer.append(TEXT_125);
     if (literal != null) {
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_121);
+    stringBuffer.append(TEXT_127);
     }
     }
     //ItemProvider/newChildDescriptorsAttributeFeature.override.javajetinc
     }
     stringBuffer.append(TEXT_18);
     }
-    stringBuffer.append(TEXT_125);
-    }
-    stringBuffer.append(TEXT_126);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.command.CommandParameter"));
-    stringBuffer.append(TEXT_127);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.command.CommandParameter"));
-    stringBuffer.append(TEXT_128);
-    stringBuffer.append(_Collection);
-    stringBuffer.append(TEXT_87);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_129);
-    stringBuffer.append(_ArrayList);
-    stringBuffer.append(TEXT_130);
-    stringBuffer.append(_ArrayList);
     stringBuffer.append(TEXT_131);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    }
     stringBuffer.append(TEXT_132);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.ResourceLocator"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.command.CommandParameter"));
     stringBuffer.append(TEXT_133);
-    stringBuffer.append(genPackage.getImportedEditPluginClassName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.command.CommandParameter"));
     stringBuffer.append(TEXT_134);
-    }
-    }
+    stringBuffer.append(_Collection);
+    stringBuffer.append(TEXT_89);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
     stringBuffer.append(TEXT_135);
+    stringBuffer.append(_ArrayList);
+    stringBuffer.append(TEXT_136);
+    stringBuffer.append(_ArrayList);
+    stringBuffer.append(TEXT_137);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    stringBuffer.append(TEXT_138);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.ResourceLocator"));
+    stringBuffer.append(TEXT_139);
+    stringBuffer.append(genPackage.getImportedEditPluginClassName());
+    stringBuffer.append(TEXT_140);
+    }
+    }
+    stringBuffer.append(TEXT_141);
     genModel.emitSortedImports();
     stringBuffer.append(TEXT_18);
     return stringBuffer.toString();
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ActionBarContributor.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ActionBarContributor.java
index e5c4528..2747c53 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ActionBarContributor.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ActionBarContributor.java
@@ -32,193 +32,198 @@
   protected final String TEXT_16 = NL;
   protected final String TEXT_17 = NL + "\t/**" + NL + "\t * Action to create objects from the ";
   protected final String TEXT_18 = " model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class NewAction extends ";
-  protected final String TEXT_19 = NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void run(";
-  protected final String TEXT_20 = " action)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_21 = " wizard = new ";
-  protected final String TEXT_22 = "();" + NL + "\t\t\twizard.init(getWindow().getWorkbench(), ";
-  protected final String TEXT_23 = ".EMPTY);" + NL + "\t\t\t";
-  protected final String TEXT_24 = " wizardDialog = new ";
-  protected final String TEXT_25 = "(getWindow().getShell(), wizard);" + NL + "\t\t\twizardDialog.open();" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_26 = NL + "\t/**" + NL + "\t * This keeps track of the active editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_27 = " activeEditorPart;" + NL + "" + NL + "\t/**" + NL + "\t * This keeps track of the current selection provider." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_28 = " selectionProvider;" + NL + "" + NL + "\t/**" + NL + "\t * This action opens the Properties view." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_29 = " showPropertiesViewAction =" + NL + "\t\tnew ";
-  protected final String TEXT_30 = "(";
-  protected final String TEXT_31 = ".INSTANCE.getString(\"_UI_ShowPropertiesView_menu_item\"))";
-  protected final String TEXT_32 = NL + "\t\t{";
-  protected final String TEXT_33 = NL + "\t\t\t@Override";
-  protected final String TEXT_34 = NL + "\t\t\tpublic void run()" + NL + "\t\t\t{" + NL + "\t\t\t\ttry" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tgetPage().showView(\"org.eclipse.ui.views.PropertySheet\");";
-  protected final String TEXT_35 = NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (";
-  protected final String TEXT_36 = " exception)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_37 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "" + NL + "\t/**" + NL + "\t * This action refreshes the viewer of the current editor if the editor" + NL + "\t * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_38 = " refreshViewerAction =" + NL + "\t\tnew ";
-  protected final String TEXT_39 = ".INSTANCE.getString(\"_UI_RefreshViewer_menu_item\"))";
-  protected final String TEXT_40 = NL + "\t\t\tpublic boolean isEnabled()" + NL + "\t\t\t{" + NL + "\t\t\t\treturn activeEditorPart instanceof ";
-  protected final String TEXT_41 = ";" + NL + "\t\t\t}" + NL;
-  protected final String TEXT_42 = NL + "\t\t\tpublic void run()" + NL + "\t\t\t{" + NL + "\t\t\t\tif (activeEditorPart instanceof ";
-  protected final String TEXT_43 = ")" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_44 = " viewer = ((";
-  protected final String TEXT_45 = ")activeEditorPart).getViewer();" + NL + "\t\t\t\t\tif (viewer != null)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tviewer.refresh();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t};" + NL;
-  protected final String TEXT_46 = NL + "\t/**" + NL + "\t * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor" + NL + "\t * generated for the current selection by the item provider." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_47 = " createChildActions;" + NL;
-  protected final String TEXT_48 = NL + "\t/**" + NL + "\t * This will contain a map of {@link org.eclipse.emf.edit.ui.action.CreateChildAction}s, keyed by sub-menu text." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_49 = " createChildSubmenuActions;" + NL;
-  protected final String TEXT_50 = NL + "\t/**" + NL + "\t * This is the menu manager into which menu contribution items should be added for CreateChild actions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_51 = " createChildMenuManager;" + NL + "" + NL + "\t/**" + NL + "\t * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor" + NL + "\t * generated for the current selection by the item provider." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_52 = " createSiblingActions;" + NL;
-  protected final String TEXT_53 = NL + "\t/**" + NL + "\t * This will contain a map of {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction}s, keyed by submenu text." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_54 = " createSiblingSubmenuActions;" + NL;
-  protected final String TEXT_55 = NL + "\t/**" + NL + "\t * This is the menu manager into which menu contribution items should be added for CreateSibling actions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_56 = " createSiblingMenuManager;" + NL;
-  protected final String TEXT_57 = NL + "\t/**" + NL + "\t * This creates an instance of the contributor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_58 = "()" + NL + "\t{" + NL + "\t\tsuper(ADDITIONS_LAST_STYLE);" + NL + "\t\tloadResourceAction = new ";
-  protected final String TEXT_59 = "();" + NL + "\t\tvalidateAction = new ";
-  protected final String TEXT_60 = "();";
-  protected final String TEXT_61 = NL + "\t\tliveValidationAction = new ";
-  protected final String TEXT_62 = ".LiveValidator.LiveValidationAction(";
-  protected final String TEXT_63 = ".getPlugin().getDialogSettings());";
-  protected final String TEXT_64 = NL + "\t\tcontrolAction = new ";
-  protected final String TEXT_65 = NL + "\t\tfindAction = ";
-  protected final String TEXT_66 = ".create();";
-  protected final String TEXT_67 = NL + "\t\trevertAction = new ";
-  protected final String TEXT_68 = NL + "\t\texpandAllAction = new ";
-  protected final String TEXT_69 = NL + "\t\tcollapseAllAction = new ";
-  protected final String TEXT_70 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This adds Separators for editor additions to the tool bar." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_71 = NL + "\t@Override";
-  protected final String TEXT_72 = NL + "\tpublic void contributeToToolBar(";
-  protected final String TEXT_73 = " toolBarManager)" + NL + "\t{" + NL + "\t\tsuper.contributeToToolBar(toolBarManager);" + NL + "\t\ttoolBarManager.add(new ";
-  protected final String TEXT_74 = "(\"";
-  protected final String TEXT_75 = "-settings\"));";
-  protected final String TEXT_76 = NL + "\t\ttoolBarManager.add(new ";
-  protected final String TEXT_77 = "-additions\"));";
-  protected final String TEXT_78 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This adds to the menu bar a menu and some separators for editor additions," + NL + "\t * as well as the sub-menus for object creation items." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_79 = NL + "\tpublic void contributeToMenu(";
-  protected final String TEXT_80 = " menuManager)" + NL + "\t{" + NL + "\t\tsuper.contributeToMenu(menuManager);" + NL + "" + NL + "\t\t";
-  protected final String TEXT_81 = " submenuManager = new ";
-  protected final String TEXT_82 = ".INSTANCE.getString(\"_UI_";
-  protected final String TEXT_83 = "_menu\"), \"";
-  protected final String TEXT_84 = "MenuID\");";
-  protected final String TEXT_85 = NL + "\t\tmenuManager.insertAfter(\"additions\", submenuManager);";
-  protected final String TEXT_86 = NL + "\t\tsubmenuManager.add(new ";
-  protected final String TEXT_87 = "(\"settings\"));";
-  protected final String TEXT_88 = "(\"actions\"));";
-  protected final String TEXT_89 = "(\"additions\"));";
-  protected final String TEXT_90 = "(\"additions-end\"));";
-  protected final String TEXT_91 = NL + "\t\t// Prepare for CreateChild item addition or removal." + NL + "\t\t//" + NL + "\t\tcreateChildMenuManager = new ";
-  protected final String TEXT_92 = ".INSTANCE.getString(\"_UI_CreateChild_menu_item\"));";
-  protected final String TEXT_93 = NL + "\t\tsubmenuManager.insertBefore(\"additions\", createChildMenuManager);";
-  protected final String TEXT_94 = NL + NL + "\t\t// Prepare for CreateSibling item addition or removal." + NL + "\t\t//" + NL + "\t\tcreateSiblingMenuManager = new ";
-  protected final String TEXT_95 = ".INSTANCE.getString(\"_UI_CreateSibling_menu_item\"));";
-  protected final String TEXT_96 = NL + "\t\tsubmenuManager.insertBefore(\"additions\", createSiblingMenuManager);";
-  protected final String TEXT_97 = NL + NL + "\t\t// Force an update because Eclipse hides empty menus now." + NL + "\t\t//" + NL + "\t\tsubmenuManager.addMenuListener" + NL + "\t\t\t(new ";
-  protected final String TEXT_98 = "()" + NL + "\t\t\t {" + NL + "\t\t\t\t public void menuAboutToShow(";
-  protected final String TEXT_99 = " menuManager)" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t menuManager.updateAll(true);" + NL + "\t\t\t\t }" + NL + "\t\t\t });" + NL;
-  protected final String TEXT_100 = NL + "\t\t// Add your contributions." + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL;
-  protected final String TEXT_101 = NL + "\t\taddGlobalActions(submenuManager);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * When the active editor changes, this remembers the change and registers with it as a selection provider." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_102 = NL + "\tpublic void setActiveEditor(";
-  protected final String TEXT_103 = " part)" + NL + "\t{" + NL + "\t\tsuper.setActiveEditor(part);" + NL + "\t\tactiveEditorPart = part;" + NL + "" + NL + "\t\t// Switch to the new selection provider." + NL + "\t\t//" + NL + "\t\tif (selectionProvider != null)" + NL + "\t\t{" + NL + "\t\t\tselectionProvider.removeSelectionChangedListener(this);" + NL + "\t\t}" + NL + "\t\tif (part == null)" + NL + "\t\t{" + NL + "\t\t\tselectionProvider = null;" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\tselectionProvider = part.getSite().getSelectionProvider();" + NL + "\t\t\tselectionProvider.addSelectionChangedListener(this);" + NL + "" + NL + "\t\t\t// Fake a selection changed event to update the menus." + NL + "\t\t\t//" + NL + "\t\t\tif (selectionProvider.getSelection() != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tselectionChanged(new ";
-  protected final String TEXT_104 = "(selectionProvider, selectionProvider.getSelection()));" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener}," + NL + "\t * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings" + NL + "\t * that can be added to the selected object and updating the menus accordingly." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void selectionChanged(";
-  protected final String TEXT_105 = " event)" + NL + "\t{";
-  protected final String TEXT_106 = NL + "\t\t// Remove any menu items for old selection." + NL + "\t\t//" + NL + "\t\tif (createChildMenuManager != null)" + NL + "\t\t{";
-  protected final String TEXT_107 = NL + "\t\t\tdepopulateManager(createChildMenuManager, createChildSubmenuActions);";
-  protected final String TEXT_108 = NL + "\t\t\tdepopulateManager(createChildMenuManager, createChildActions);" + NL + "\t\t}" + NL + "\t\tif (createSiblingMenuManager != null)" + NL + "\t\t{";
-  protected final String TEXT_109 = NL + "\t\t\tdepopulateManager(createSiblingMenuManager, createSiblingSubmenuActions);";
-  protected final String TEXT_110 = NL + "\t\t\tdepopulateManager(createSiblingMenuManager, createSiblingActions);" + NL + "\t\t}" + NL + "" + NL + "\t\t// Query the new selection for appropriate new child/sibling descriptors" + NL + "\t\t//" + NL + "\t\t";
-  protected final String TEXT_111 = " newChildDescriptors = null;" + NL + "\t\t";
-  protected final String TEXT_112 = " newSiblingDescriptors = null;" + NL + "" + NL + "\t\t";
-  protected final String TEXT_113 = " selection = event.getSelection();" + NL + "\t\tif (selection instanceof ";
-  protected final String TEXT_114 = " && ((IStructuredSelection)selection).size() == 1)" + NL + "\t\t{" + NL + "\t\t\tObject object = ((";
-  protected final String TEXT_115 = ")selection).getFirstElement();" + NL + "" + NL + "\t\t\t";
-  protected final String TEXT_116 = " domain = ((";
-  protected final String TEXT_117 = ")activeEditorPart).getEditingDomain();" + NL + "" + NL + "\t\t\tnewChildDescriptors = domain.getNewChildDescriptors(object, null);" + NL + "\t\t\tnewSiblingDescriptors = domain.getNewChildDescriptors(null, object);" + NL + "\t\t}" + NL + "" + NL + "\t\t// Generate actions for selection; populate and redraw the menus." + NL + "\t\t//" + NL + "\t\tcreateChildActions = generateCreateChildActions(newChildDescriptors, selection);";
-  protected final String TEXT_118 = NL + "\t\tcreateChildSubmenuActions = extractSubmenuActions(createChildActions);";
-  protected final String TEXT_119 = NL + "\t\tcreateSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);";
-  protected final String TEXT_120 = NL + "\t\tcreateSiblingSubmenuActions = extractSubmenuActions(createSiblingActions);";
-  protected final String TEXT_121 = NL + NL + "\t\tif (createChildMenuManager != null)" + NL + "\t\t{";
-  protected final String TEXT_122 = NL + "\t\t\tpopulateManager(createChildMenuManager, createChildSubmenuActions, null);";
-  protected final String TEXT_123 = NL + "\t\t\tpopulateManager(createChildMenuManager, createChildActions, null);" + NL + "\t\t\tcreateChildMenuManager.update(true);" + NL + "\t\t}" + NL + "\t\tif (createSiblingMenuManager != null)" + NL + "\t\t{";
-  protected final String TEXT_124 = NL + "\t\t\tpopulateManager(createSiblingMenuManager, createSiblingSubmenuActions, null);";
-  protected final String TEXT_125 = NL + "\t\t\tpopulateManager(createSiblingMenuManager, createSiblingActions, null);" + NL + "\t\t\tcreateSiblingMenuManager.update(true);" + NL + "\t\t}";
-  protected final String TEXT_126 = NL + "\t\t// Add your contributions." + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT";
-  protected final String TEXT_127 = NL + "\t}" + NL;
-  protected final String TEXT_128 = NL + "\t/**" + NL + "\t * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>," + NL + "\t * and returns the collection of these actions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_129 = " generateCreateChildActions(";
-  protected final String TEXT_130 = " descriptors, ";
-  protected final String TEXT_131 = " selection)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_132 = " actions = new ";
-  protected final String TEXT_133 = "();" + NL + "\t\tif (descriptors != null)" + NL + "\t\t{";
-  protected final String TEXT_134 = NL + "\t\t\tfor (";
-  protected final String TEXT_135 = " descriptor : descriptors)";
-  protected final String TEXT_136 = " i = descriptors.iterator(); i.hasNext(); )";
-  protected final String TEXT_137 = NL + "\t\t\t{" + NL + "\t\t\t\tactions.add(new ";
-  protected final String TEXT_138 = "(activeEditorPart, selection, ";
-  protected final String TEXT_139 = "descriptor";
-  protected final String TEXT_140 = "i.next()";
-  protected final String TEXT_141 = "));" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn actions;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>," + NL + "\t * and returns the collection of these actions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_142 = " generateCreateSiblingActions(";
-  protected final String TEXT_143 = "));" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn actions;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s" + NL + "\t * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection," + NL + "\t * by inserting them before the specified contribution item <code>contributionID</code>." + NL + "\t * If <code>contributionID</code> is <code>null</code>, they are simply added." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void populateManager(";
-  protected final String TEXT_144 = " manager, ";
-  protected final String TEXT_145 = " actions, String contributionID)" + NL + "\t{" + NL + "\t\tif (actions != null)" + NL + "\t\t{";
-  protected final String TEXT_146 = " action : actions)";
-  protected final String TEXT_147 = " i = actions.iterator(); i.hasNext(); )";
-  protected final String TEXT_148 = NL + "\t\t\t{";
-  protected final String TEXT_149 = NL + "\t\t\t\t";
-  protected final String TEXT_150 = " action = (IAction)i.next();";
-  protected final String TEXT_151 = NL + "\t\t\t\tif (contributionID != null)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmanager.insertBefore(contributionID, action);" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmanager.add(action);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "\t\t" + NL + "\t/**" + NL + "\t * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s" + NL + "\t * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void depopulateManager(";
-  protected final String TEXT_152 = " actions)" + NL + "\t{" + NL + "\t\tif (actions != null)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_153 = "[] items = manager.getItems();" + NL + "\t\t\tfor (int i = 0; i < items.length; i++)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Look into SubContributionItems" + NL + "\t\t\t\t//" + NL + "\t\t\t\t";
-  protected final String TEXT_154 = " contributionItem = items[i];" + NL + "\t\t\t\twhile (contributionItem instanceof ";
-  protected final String TEXT_155 = ")" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tcontributionItem = ((";
-  protected final String TEXT_156 = ")contributionItem).getInnerItem();" + NL + "\t\t\t\t}" + NL + "" + NL + "\t\t\t\t// Delete the ActionContributionItems with matching action." + NL + "\t\t\t\t//" + NL + "\t\t\t\tif (contributionItem instanceof ";
-  protected final String TEXT_157 = " action = ((";
-  protected final String TEXT_158 = ")contributionItem).getAction();" + NL + "\t\t\t\t\tif (actions.contains(action))" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tmanager.remove(contributionItem);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_159 = NL + "\t/**" + NL + "\t * This extracts those actions in the <code>submenuActions</code> collection whose text is qualified and returns" + NL + "\t * a map of these actions, keyed by submenu text." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_160 = " extractSubmenuActions(";
-  protected final String TEXT_161 = " createActions)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_162 = " createSubmenuActions = new ";
-  protected final String TEXT_163 = "();" + NL + "\t\tif (createActions != null)" + NL + "\t\t{" + NL + "\t\t\tfor (";
-  protected final String TEXT_164 = " actions = createActions.iterator(); actions.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_165 = " action = ";
-  protected final String TEXT_166 = ")";
-  protected final String TEXT_167 = "actions.next();" + NL + "\t\t\t\t";
-  protected final String TEXT_168 = " st = new ";
-  protected final String TEXT_169 = "(action.getText(), \"|\");";
-  protected final String TEXT_170 = NL + "\t\t\t\tif (st.countTokens() == 2)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tString text = st.nextToken().trim();" + NL + "\t\t\t\t\t";
-  protected final String TEXT_171 = " submenuActions = ";
-  protected final String TEXT_172 = "createSubmenuActions.get(text);" + NL + "\t\t\t\t\tif (submenuActions == null)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tcreateSubmenuActions.put(text, submenuActions = new ";
-  protected final String TEXT_173 = "());" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\taction.setText(st.nextToken().trim());" + NL + "\t\t\t\t\tsubmenuActions.add(action);" + NL + "\t\t\t\t\tactions.remove();" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn createSubmenuActions;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.MenuManager}s containing" + NL + "\t * {@link org.eclipse.jface.action.ActionContributionItem}s based on the {@link org.eclipse.jface.action.IAction}s" + NL + "\t * contained in the <code>submenuActions</code> collection, by inserting them before the specified contribution" + NL + "\t * item <code>contributionID</code>." + NL + "\t * If <code>contributionID</code> is <code>null</code>, they are simply added." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void populateManager(";
-  protected final String TEXT_174 = " submenuActions, String contributionID)" + NL + "\t{" + NL + "\t\tif (submenuActions != null)" + NL + "\t\t{";
-  protected final String TEXT_175 = " entry : submenuActions.entrySet())" + NL + "\t\t\t{";
-  protected final String TEXT_176 = " entries = submenuActions.entrySet().iterator(); entries.hasNext();)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_177 = " entry = (";
-  protected final String TEXT_178 = ")entries.next();";
-  protected final String TEXT_179 = "(String)";
-  protected final String TEXT_180 = "entry.getKey());" + NL + "\t\t\t\tif (contributionID != null)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmanager.insertBefore(contributionID, submenuManager);" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmanager.add(submenuManager);" + NL + "\t\t\t\t}" + NL + "\t\t\t\tpopulateManager(submenuManager, ";
-  protected final String TEXT_181 = "entry.getValue(), null);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.MenuManager}s and their" + NL + "\t * {@link org.eclipse.jface.action.ActionContributionItem}s based on the {@link org.eclipse.jface.action.IAction}s" + NL + "\t * contained in the <code>submenuActions</code> map." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void depopulateManager(";
-  protected final String TEXT_182 = " submenuActions)" + NL + "\t{" + NL + "\t\tif (submenuActions != null)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_183 = "[] items = manager.getItems();" + NL + "\t\t\tfor (int i = 0; i < items.length; i++)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_184 = " contributionItem = items[i];" + NL + "\t\t\t\tif (contributionItem instanceof ";
-  protected final String TEXT_185 = " submenuManager = (";
-  protected final String TEXT_186 = ")contributionItem;" + NL + "\t\t\t\t\tif (submenuActions.containsKey(submenuManager.getMenuText()))" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tdepopulateManager(submenuManager, ";
-  protected final String TEXT_187 = "submenuActions.get(submenuManager.getMenuText()));" + NL + "\t\t\t\t\t\tmanager.remove(contributionItem);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_188 = NL + "\t/**" + NL + "\t * This populates the pop-up menu before it appears." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_189 = NL + "\tpublic void menuAboutToShow(";
-  protected final String TEXT_190 = " menuManager)" + NL + "\t{" + NL + "\t\tsuper.menuAboutToShow(menuManager);";
-  protected final String TEXT_191 = NL + "\t\t";
-  protected final String TEXT_192 = " submenuManager = null;" + NL + "" + NL + "\t\tsubmenuManager = new ";
-  protected final String TEXT_193 = NL + "\t\tpopulateManager(submenuManager, createChildSubmenuActions, null);";
-  protected final String TEXT_194 = NL + "\t\tpopulateManager(submenuManager, createChildActions, null);" + NL + "\t\tmenuManager.insertBefore(\"edit\", submenuManager);";
-  protected final String TEXT_195 = NL + NL + "\t\tsubmenuManager = new ";
-  protected final String TEXT_196 = NL + "\t\tpopulateManager(submenuManager, createSiblingSubmenuActions, null);";
-  protected final String TEXT_197 = NL + "\t\tpopulateManager(submenuManager, createSiblingActions, null);" + NL + "\t\tmenuManager.insertBefore(\"edit\", submenuManager);";
-  protected final String TEXT_198 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This inserts global actions before the \"additions-end\" separator." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_199 = NL + "\tprotected void addGlobalActions(";
-  protected final String TEXT_200 = " menuManager)" + NL + "\t{" + NL + "\t\tmenuManager.insertAfter(\"additions-end\", new ";
-  protected final String TEXT_201 = "(\"ui-actions\"));";
-  protected final String TEXT_202 = NL + "\t\tmenuManager.insertAfter(\"ui-actions\", showPropertiesViewAction);";
-  protected final String TEXT_203 = NL + NL + "\t\trefreshViewerAction.setEnabled(refreshViewerAction.isEnabled());\t\t" + NL + "\t\tmenuManager.insertAfter(\"ui-actions\", refreshViewerAction);";
-  protected final String TEXT_204 = NL + NL + "\t\tsuper.addGlobalActions(menuManager);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This ensures that a delete action will clean up all references to deleted objects." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_205 = NL + "\tprotected boolean removeAllReferencesOnDelete()" + NL + "\t{" + NL + "\t\treturn true;" + NL + "\t}" + NL + "" + NL + "}";
+  protected final String TEXT_19 = NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_20 = NL + "\t\t@Override";
+  protected final String TEXT_21 = NL + "\t\tpublic void run(";
+  protected final String TEXT_22 = " action)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_23 = " wizard = new ";
+  protected final String TEXT_24 = "();" + NL + "\t\t\twizard.init(getWindow().getWorkbench(), ";
+  protected final String TEXT_25 = ".EMPTY);" + NL + "\t\t\t";
+  protected final String TEXT_26 = " wizardDialog = new ";
+  protected final String TEXT_27 = "(getWindow().getShell(), wizard);" + NL + "\t\t\twizardDialog.open();" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_28 = NL + "\t/**" + NL + "\t * This keeps track of the active editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_29 = " activeEditorPart;" + NL + "" + NL + "\t/**" + NL + "\t * This keeps track of the current selection provider." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_30 = " selectionProvider;" + NL + "" + NL + "\t/**" + NL + "\t * This action opens the Properties view." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_31 = " showPropertiesViewAction =" + NL + "\t\tnew ";
+  protected final String TEXT_32 = "(";
+  protected final String TEXT_33 = ".INSTANCE.getString(\"_UI_ShowPropertiesView_menu_item\"))";
+  protected final String TEXT_34 = NL + "\t\t{";
+  protected final String TEXT_35 = NL + "\t\t\t@Override";
+  protected final String TEXT_36 = NL + "\t\t\tpublic void run()" + NL + "\t\t\t{" + NL + "\t\t\t\ttry" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tgetPage().showView(\"org.eclipse.ui.views.PropertySheet\");";
+  protected final String TEXT_37 = NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (";
+  protected final String TEXT_38 = " exception)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_39 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "" + NL + "\t/**" + NL + "\t * This action refreshes the viewer of the current editor if the editor" + NL + "\t * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_40 = " refreshViewerAction =" + NL + "\t\tnew ";
+  protected final String TEXT_41 = ".INSTANCE.getString(\"_UI_RefreshViewer_menu_item\"))";
+  protected final String TEXT_42 = NL + "\t\t\tpublic boolean isEnabled()" + NL + "\t\t\t{" + NL + "\t\t\t\treturn activeEditorPart instanceof ";
+  protected final String TEXT_43 = ";" + NL + "\t\t\t}" + NL;
+  protected final String TEXT_44 = NL + "\t\t\tpublic void run()" + NL + "\t\t\t{" + NL + "\t\t\t\tif (activeEditorPart instanceof ";
+  protected final String TEXT_45 = ")" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_46 = " viewer = ((";
+  protected final String TEXT_47 = ")activeEditorPart).getViewer();" + NL + "\t\t\t\t\tif (viewer != null)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tviewer.refresh();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t};" + NL;
+  protected final String TEXT_48 = NL + "\t/**" + NL + "\t * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor" + NL + "\t * generated for the current selection by the item provider." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_49 = " createChildActions;" + NL;
+  protected final String TEXT_50 = NL + "\t/**" + NL + "\t * This will contain a map of {@link org.eclipse.emf.edit.ui.action.CreateChildAction}s, keyed by sub-menu text." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_51 = " createChildSubmenuActions;" + NL;
+  protected final String TEXT_52 = NL + "\t/**" + NL + "\t * This is the menu manager into which menu contribution items should be added for CreateChild actions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_53 = " createChildMenuManager;" + NL + "" + NL + "\t/**" + NL + "\t * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor" + NL + "\t * generated for the current selection by the item provider." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_54 = " createSiblingActions;" + NL;
+  protected final String TEXT_55 = NL + "\t/**" + NL + "\t * This will contain a map of {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction}s, keyed by submenu text." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_56 = " createSiblingSubmenuActions;" + NL;
+  protected final String TEXT_57 = NL + "\t/**" + NL + "\t * This is the menu manager into which menu contribution items should be added for CreateSibling actions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_58 = " createSiblingMenuManager;" + NL;
+  protected final String TEXT_59 = NL + "\t/**" + NL + "\t * This creates an instance of the contributor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+  protected final String TEXT_60 = "()" + NL + "\t{" + NL + "\t\tsuper(ADDITIONS_LAST_STYLE);" + NL + "\t\tloadResourceAction = new ";
+  protected final String TEXT_61 = "();" + NL + "\t\tvalidateAction = new ";
+  protected final String TEXT_62 = "();";
+  protected final String TEXT_63 = NL + "\t\tliveValidationAction = new ";
+  protected final String TEXT_64 = ".LiveValidator.LiveValidationAction(";
+  protected final String TEXT_65 = ".getPlugin().getDialogSettings());";
+  protected final String TEXT_66 = NL + "\t\tcontrolAction = new ";
+  protected final String TEXT_67 = NL + "\t\tfindAction = ";
+  protected final String TEXT_68 = ".create();";
+  protected final String TEXT_69 = NL + "\t\trevertAction = new ";
+  protected final String TEXT_70 = NL + "\t\texpandAllAction = new ";
+  protected final String TEXT_71 = NL + "\t\tcollapseAllAction = new ";
+  protected final String TEXT_72 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This adds Separators for editor additions to the tool bar." + 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 void contributeToToolBar(";
+  protected final String TEXT_75 = " toolBarManager)" + NL + "\t{" + NL + "\t\tsuper.contributeToToolBar(toolBarManager);" + NL + "\t\ttoolBarManager.add(new ";
+  protected final String TEXT_76 = "(\"";
+  protected final String TEXT_77 = "-settings\"));";
+  protected final String TEXT_78 = NL + "\t\ttoolBarManager.add(new ";
+  protected final String TEXT_79 = "-additions\"));";
+  protected final String TEXT_80 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This adds to the menu bar a menu and some separators for editor additions," + NL + "\t * as well as the sub-menus for object creation items." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_81 = NL + "\tpublic void contributeToMenu(";
+  protected final String TEXT_82 = " menuManager)" + NL + "\t{" + NL + "\t\tsuper.contributeToMenu(menuManager);" + NL + "" + NL + "\t\t";
+  protected final String TEXT_83 = " submenuManager = new ";
+  protected final String TEXT_84 = ".INSTANCE.getString(\"_UI_";
+  protected final String TEXT_85 = "_menu\"), \"";
+  protected final String TEXT_86 = "MenuID\");";
+  protected final String TEXT_87 = NL + "\t\tmenuManager.insertAfter(\"additions\", submenuManager);";
+  protected final String TEXT_88 = NL + "\t\tsubmenuManager.add(new ";
+  protected final String TEXT_89 = "(\"settings\"));";
+  protected final String TEXT_90 = "(\"actions\"));";
+  protected final String TEXT_91 = "(\"additions\"));";
+  protected final String TEXT_92 = "(\"additions-end\"));";
+  protected final String TEXT_93 = NL + "\t\t// Prepare for CreateChild item addition or removal." + NL + "\t\t//" + NL + "\t\tcreateChildMenuManager = new ";
+  protected final String TEXT_94 = ".INSTANCE.getString(\"_UI_CreateChild_menu_item\"));";
+  protected final String TEXT_95 = NL + "\t\tsubmenuManager.insertBefore(\"additions\", createChildMenuManager);";
+  protected final String TEXT_96 = NL + NL + "\t\t// Prepare for CreateSibling item addition or removal." + NL + "\t\t//" + NL + "\t\tcreateSiblingMenuManager = new ";
+  protected final String TEXT_97 = ".INSTANCE.getString(\"_UI_CreateSibling_menu_item\"));";
+  protected final String TEXT_98 = NL + "\t\tsubmenuManager.insertBefore(\"additions\", createSiblingMenuManager);";
+  protected final String TEXT_99 = NL + NL + "\t\t// Force an update because Eclipse hides empty menus now." + NL + "\t\t//" + NL + "\t\tsubmenuManager.addMenuListener" + NL + "\t\t\t(new ";
+  protected final String TEXT_100 = "()" + NL + "\t\t\t {";
+  protected final String TEXT_101 = NL + "\t\t\t\t @Override";
+  protected final String TEXT_102 = NL + "\t\t\t\t public void menuAboutToShow(";
+  protected final String TEXT_103 = " menuManager)" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t menuManager.updateAll(true);" + NL + "\t\t\t\t }" + NL + "\t\t\t });" + NL;
+  protected final String TEXT_104 = NL + "\t\t// Add your contributions." + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL;
+  protected final String TEXT_105 = NL + "\t\taddGlobalActions(submenuManager);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * When the active editor changes, this remembers the change and registers with it as a selection provider." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_106 = NL + "\tpublic void setActiveEditor(";
+  protected final String TEXT_107 = " part)" + NL + "\t{" + NL + "\t\tsuper.setActiveEditor(part);" + NL + "\t\tactiveEditorPart = part;" + NL + "" + NL + "\t\t// Switch to the new selection provider." + NL + "\t\t//" + NL + "\t\tif (selectionProvider != null)" + NL + "\t\t{" + NL + "\t\t\tselectionProvider.removeSelectionChangedListener(this);" + NL + "\t\t}" + NL + "\t\tif (part == null)" + NL + "\t\t{" + NL + "\t\t\tselectionProvider = null;" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\tselectionProvider = part.getSite().getSelectionProvider();" + NL + "\t\t\tselectionProvider.addSelectionChangedListener(this);" + NL + "" + NL + "\t\t\t// Fake a selection changed event to update the menus." + NL + "\t\t\t//" + NL + "\t\t\tif (selectionProvider.getSelection() != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tselectionChanged(new ";
+  protected final String TEXT_108 = "(selectionProvider, selectionProvider.getSelection()));" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener}," + NL + "\t * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings" + NL + "\t * that can be added to the selected object and updating the menus accordingly." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_109 = NL + "\tpublic void selectionChanged(";
+  protected final String TEXT_110 = " event)" + NL + "\t{";
+  protected final String TEXT_111 = NL + "\t\t// Remove any menu items for old selection." + NL + "\t\t//" + NL + "\t\tif (createChildMenuManager != null)" + NL + "\t\t{";
+  protected final String TEXT_112 = NL + "\t\t\tdepopulateManager(createChildMenuManager, createChildSubmenuActions);";
+  protected final String TEXT_113 = NL + "\t\t\tdepopulateManager(createChildMenuManager, createChildActions);" + NL + "\t\t}" + NL + "\t\tif (createSiblingMenuManager != null)" + NL + "\t\t{";
+  protected final String TEXT_114 = NL + "\t\t\tdepopulateManager(createSiblingMenuManager, createSiblingSubmenuActions);";
+  protected final String TEXT_115 = NL + "\t\t\tdepopulateManager(createSiblingMenuManager, createSiblingActions);" + NL + "\t\t}" + NL + "" + NL + "\t\t// Query the new selection for appropriate new child/sibling descriptors" + NL + "\t\t//" + NL + "\t\t";
+  protected final String TEXT_116 = " newChildDescriptors = null;" + NL + "\t\t";
+  protected final String TEXT_117 = " newSiblingDescriptors = null;" + NL + "" + NL + "\t\t";
+  protected final String TEXT_118 = " selection = event.getSelection();" + NL + "\t\tif (selection instanceof ";
+  protected final String TEXT_119 = " && ((IStructuredSelection)selection).size() == 1)" + NL + "\t\t{" + NL + "\t\t\tObject object = ((";
+  protected final String TEXT_120 = ")selection).getFirstElement();" + NL + "" + NL + "\t\t\t";
+  protected final String TEXT_121 = " domain = ((";
+  protected final String TEXT_122 = ")activeEditorPart).getEditingDomain();" + NL + "" + NL + "\t\t\tnewChildDescriptors = domain.getNewChildDescriptors(object, null);" + NL + "\t\t\tnewSiblingDescriptors = domain.getNewChildDescriptors(null, object);" + NL + "\t\t}" + NL + "" + NL + "\t\t// Generate actions for selection; populate and redraw the menus." + NL + "\t\t//" + NL + "\t\tcreateChildActions = generateCreateChildActions(newChildDescriptors, selection);";
+  protected final String TEXT_123 = NL + "\t\tcreateChildSubmenuActions = extractSubmenuActions(createChildActions);";
+  protected final String TEXT_124 = NL + "\t\tcreateSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);";
+  protected final String TEXT_125 = NL + "\t\tcreateSiblingSubmenuActions = extractSubmenuActions(createSiblingActions);";
+  protected final String TEXT_126 = NL + NL + "\t\tif (createChildMenuManager != null)" + NL + "\t\t{";
+  protected final String TEXT_127 = NL + "\t\t\tpopulateManager(createChildMenuManager, createChildSubmenuActions, null);";
+  protected final String TEXT_128 = NL + "\t\t\tpopulateManager(createChildMenuManager, createChildActions, null);" + NL + "\t\t\tcreateChildMenuManager.update(true);" + NL + "\t\t}" + NL + "\t\tif (createSiblingMenuManager != null)" + NL + "\t\t{";
+  protected final String TEXT_129 = NL + "\t\t\tpopulateManager(createSiblingMenuManager, createSiblingSubmenuActions, null);";
+  protected final String TEXT_130 = NL + "\t\t\tpopulateManager(createSiblingMenuManager, createSiblingActions, null);" + NL + "\t\t\tcreateSiblingMenuManager.update(true);" + NL + "\t\t}";
+  protected final String TEXT_131 = NL + "\t\t// Add your contributions." + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT";
+  protected final String TEXT_132 = NL + "\t}" + NL;
+  protected final String TEXT_133 = NL + "\t/**" + NL + "\t * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>," + NL + "\t * and returns the collection of these actions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_134 = " generateCreateChildActions(";
+  protected final String TEXT_135 = " descriptors, ";
+  protected final String TEXT_136 = " selection)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_137 = " actions = new ";
+  protected final String TEXT_138 = "();" + NL + "\t\tif (descriptors != null)" + NL + "\t\t{";
+  protected final String TEXT_139 = NL + "\t\t\tfor (";
+  protected final String TEXT_140 = " descriptor : descriptors)";
+  protected final String TEXT_141 = " i = descriptors.iterator(); i.hasNext(); )";
+  protected final String TEXT_142 = NL + "\t\t\t{" + NL + "\t\t\t\tactions.add(new ";
+  protected final String TEXT_143 = "(activeEditorPart, selection, ";
+  protected final String TEXT_144 = "descriptor";
+  protected final String TEXT_145 = "i.next()";
+  protected final String TEXT_146 = "));" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn actions;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>," + NL + "\t * and returns the collection of these actions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_147 = " generateCreateSiblingActions(";
+  protected final String TEXT_148 = "));" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn actions;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s" + NL + "\t * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection," + NL + "\t * by inserting them before the specified contribution item <code>contributionID</code>." + NL + "\t * If <code>contributionID</code> is <code>null</code>, they are simply added." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void populateManager(";
+  protected final String TEXT_149 = " manager, ";
+  protected final String TEXT_150 = " actions, String contributionID)" + NL + "\t{" + NL + "\t\tif (actions != null)" + NL + "\t\t{";
+  protected final String TEXT_151 = " action : actions)";
+  protected final String TEXT_152 = " i = actions.iterator(); i.hasNext(); )";
+  protected final String TEXT_153 = NL + "\t\t\t{";
+  protected final String TEXT_154 = NL + "\t\t\t\t";
+  protected final String TEXT_155 = " action = (IAction)i.next();";
+  protected final String TEXT_156 = NL + "\t\t\t\tif (contributionID != null)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmanager.insertBefore(contributionID, action);" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmanager.add(action);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "\t\t" + NL + "\t/**" + NL + "\t * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s" + NL + "\t * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void depopulateManager(";
+  protected final String TEXT_157 = " actions)" + NL + "\t{" + NL + "\t\tif (actions != null)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_158 = "[] items = manager.getItems();" + NL + "\t\t\tfor (int i = 0; i < items.length; i++)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Look into SubContributionItems" + NL + "\t\t\t\t//" + NL + "\t\t\t\t";
+  protected final String TEXT_159 = " contributionItem = items[i];" + NL + "\t\t\t\twhile (contributionItem instanceof ";
+  protected final String TEXT_160 = ")" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tcontributionItem = ((";
+  protected final String TEXT_161 = ")contributionItem).getInnerItem();" + NL + "\t\t\t\t}" + NL + "" + NL + "\t\t\t\t// Delete the ActionContributionItems with matching action." + NL + "\t\t\t\t//" + NL + "\t\t\t\tif (contributionItem instanceof ";
+  protected final String TEXT_162 = " action = ((";
+  protected final String TEXT_163 = ")contributionItem).getAction();" + NL + "\t\t\t\t\tif (actions.contains(action))" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tmanager.remove(contributionItem);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_164 = NL + "\t/**" + NL + "\t * This extracts those actions in the <code>submenuActions</code> collection whose text is qualified and returns" + NL + "\t * a map of these actions, keyed by submenu text." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_165 = " extractSubmenuActions(";
+  protected final String TEXT_166 = " createActions)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_167 = " createSubmenuActions = new ";
+  protected final String TEXT_168 = "();" + NL + "\t\tif (createActions != null)" + NL + "\t\t{" + NL + "\t\t\tfor (";
+  protected final String TEXT_169 = " actions = createActions.iterator(); actions.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_170 = " action = ";
+  protected final String TEXT_171 = ")";
+  protected final String TEXT_172 = "actions.next();" + NL + "\t\t\t\t";
+  protected final String TEXT_173 = " st = new ";
+  protected final String TEXT_174 = "(action.getText(), \"|\");";
+  protected final String TEXT_175 = NL + "\t\t\t\tif (st.countTokens() == 2)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tString text = st.nextToken().trim();" + NL + "\t\t\t\t\t";
+  protected final String TEXT_176 = " submenuActions = ";
+  protected final String TEXT_177 = "createSubmenuActions.get(text);" + NL + "\t\t\t\t\tif (submenuActions == null)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tcreateSubmenuActions.put(text, submenuActions = new ";
+  protected final String TEXT_178 = "());" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\taction.setText(st.nextToken().trim());" + NL + "\t\t\t\t\tsubmenuActions.add(action);" + NL + "\t\t\t\t\tactions.remove();" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn createSubmenuActions;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.MenuManager}s containing" + NL + "\t * {@link org.eclipse.jface.action.ActionContributionItem}s based on the {@link org.eclipse.jface.action.IAction}s" + NL + "\t * contained in the <code>submenuActions</code> collection, by inserting them before the specified contribution" + NL + "\t * item <code>contributionID</code>." + NL + "\t * If <code>contributionID</code> is <code>null</code>, they are simply added." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void populateManager(";
+  protected final String TEXT_179 = " submenuActions, String contributionID)" + NL + "\t{" + NL + "\t\tif (submenuActions != null)" + NL + "\t\t{";
+  protected final String TEXT_180 = " entry : submenuActions.entrySet())" + NL + "\t\t\t{";
+  protected final String TEXT_181 = " entries = submenuActions.entrySet().iterator(); entries.hasNext();)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_182 = " entry = (";
+  protected final String TEXT_183 = ")entries.next();";
+  protected final String TEXT_184 = "(String)";
+  protected final String TEXT_185 = "entry.getKey());" + NL + "\t\t\t\tif (contributionID != null)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmanager.insertBefore(contributionID, submenuManager);" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmanager.add(submenuManager);" + NL + "\t\t\t\t}" + NL + "\t\t\t\tpopulateManager(submenuManager, ";
+  protected final String TEXT_186 = "entry.getValue(), null);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.MenuManager}s and their" + NL + "\t * {@link org.eclipse.jface.action.ActionContributionItem}s based on the {@link org.eclipse.jface.action.IAction}s" + NL + "\t * contained in the <code>submenuActions</code> map." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void depopulateManager(";
+  protected final String TEXT_187 = " submenuActions)" + NL + "\t{" + NL + "\t\tif (submenuActions != null)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_188 = "[] items = manager.getItems();" + NL + "\t\t\tfor (int i = 0; i < items.length; i++)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_189 = " contributionItem = items[i];" + NL + "\t\t\t\tif (contributionItem instanceof ";
+  protected final String TEXT_190 = " submenuManager = (";
+  protected final String TEXT_191 = ")contributionItem;" + NL + "\t\t\t\t\tif (submenuActions.containsKey(submenuManager.getMenuText()))" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tdepopulateManager(submenuManager, ";
+  protected final String TEXT_192 = "submenuActions.get(submenuManager.getMenuText()));" + NL + "\t\t\t\t\t\tmanager.remove(contributionItem);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_193 = NL + "\t/**" + NL + "\t * This populates the pop-up menu before it appears." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_194 = NL + "\tpublic void menuAboutToShow(";
+  protected final String TEXT_195 = " menuManager)" + NL + "\t{" + NL + "\t\tsuper.menuAboutToShow(menuManager);";
+  protected final String TEXT_196 = NL + "\t\t";
+  protected final String TEXT_197 = " submenuManager = null;" + NL + "" + NL + "\t\tsubmenuManager = new ";
+  protected final String TEXT_198 = NL + "\t\tpopulateManager(submenuManager, createChildSubmenuActions, null);";
+  protected final String TEXT_199 = NL + "\t\tpopulateManager(submenuManager, createChildActions, null);" + NL + "\t\tmenuManager.insertBefore(\"edit\", submenuManager);";
+  protected final String TEXT_200 = NL + NL + "\t\tsubmenuManager = new ";
+  protected final String TEXT_201 = NL + "\t\tpopulateManager(submenuManager, createSiblingSubmenuActions, null);";
+  protected final String TEXT_202 = NL + "\t\tpopulateManager(submenuManager, createSiblingActions, null);" + NL + "\t\tmenuManager.insertBefore(\"edit\", submenuManager);";
+  protected final String TEXT_203 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This inserts global actions before the \"additions-end\" separator." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_204 = NL + "\tprotected void addGlobalActions(";
+  protected final String TEXT_205 = " menuManager)" + NL + "\t{" + NL + "\t\tmenuManager.insertAfter(\"additions-end\", new ";
+  protected final String TEXT_206 = "(\"ui-actions\"));";
+  protected final String TEXT_207 = NL + "\t\tmenuManager.insertAfter(\"ui-actions\", showPropertiesViewAction);";
+  protected final String TEXT_208 = NL + NL + "\t\trefreshViewerAction.setEnabled(refreshViewerAction.isEnabled());\t\t" + NL + "\t\tmenuManager.insertAfter(\"ui-actions\", refreshViewerAction);";
+  protected final String TEXT_209 = NL + NL + "\t\tsuper.addGlobalActions(menuManager);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This ensures that a delete action will clean up all references to deleted objects." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_210 = NL + "\tprotected boolean removeAllReferencesOnDelete()" + NL + "\t{" + NL + "\t\treturn true;" + NL + "\t}" + NL + "" + NL + "}";
 
   public String generate(Object argument)
   {
@@ -303,501 +308,513 @@
     stringBuffer.append(TEXT_18);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.action.WorkbenchWindowActionDelegate"));
     stringBuffer.append(TEXT_19);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_20);
-    stringBuffer.append(genPackage.getModelWizardClassName());
+    }
     stringBuffer.append(TEXT_21);
-    stringBuffer.append(genPackage.getModelWizardClassName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
     stringBuffer.append(TEXT_22);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.StructuredSelection"));
+    stringBuffer.append(genPackage.getModelWizardClassName());
     stringBuffer.append(TEXT_23);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.wizard.WizardDialog"));
+    stringBuffer.append(genPackage.getModelWizardClassName());
     stringBuffer.append(TEXT_24);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.wizard.WizardDialog"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.StructuredSelection"));
     stringBuffer.append(TEXT_25);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.wizard.WizardDialog"));
     stringBuffer.append(TEXT_26);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IEditorPart"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.wizard.WizardDialog"));
     stringBuffer.append(TEXT_27);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelectionProvider"));
-    stringBuffer.append(TEXT_28);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
-    stringBuffer.append(TEXT_29);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Action"));
-    stringBuffer.append(TEXT_30);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_31);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_32);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_33);
     }
-    stringBuffer.append(TEXT_34);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_35);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.PartInitException"));
-    stringBuffer.append(TEXT_36);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_37);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
-    stringBuffer.append(TEXT_38);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Action"));
+    stringBuffer.append(TEXT_28);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IEditorPart"));
+    stringBuffer.append(TEXT_29);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelectionProvider"));
     stringBuffer.append(TEXT_30);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
+    stringBuffer.append(TEXT_31);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Action"));
+    stringBuffer.append(TEXT_32);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_33);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_34);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_35);
+    }
+    stringBuffer.append(TEXT_36);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_37);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.PartInitException"));
+    stringBuffer.append(TEXT_38);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_39);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_32);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_33);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
     stringBuffer.append(TEXT_40);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.IViewerProvider"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Action"));
+    stringBuffer.append(TEXT_32);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_41);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_34);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_33);
+    stringBuffer.append(TEXT_35);
     }
     stringBuffer.append(TEXT_42);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.IViewerProvider"));
     stringBuffer.append(TEXT_43);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.Viewer"));
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_35);
+    }
     stringBuffer.append(TEXT_44);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.IViewerProvider"));
     stringBuffer.append(TEXT_45);
-    if (genModel.isCreationCommands()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.Viewer"));
     stringBuffer.append(TEXT_46);
-    stringBuffer.append(_CollectionOfIAction);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.IViewerProvider"));
     stringBuffer.append(TEXT_47);
-    if (genModel.isCreationSubmenus()) {
+    if (genModel.isCreationCommands()) {
     stringBuffer.append(TEXT_48);
-    stringBuffer.append(_MapOfStringToCollectionOfIAction);
-    stringBuffer.append(TEXT_49);
-    }
-    stringBuffer.append(TEXT_50);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
-    stringBuffer.append(TEXT_51);
     stringBuffer.append(_CollectionOfIAction);
-    stringBuffer.append(TEXT_52);
+    stringBuffer.append(TEXT_49);
     if (genModel.isCreationSubmenus()) {
-    stringBuffer.append(TEXT_53);
+    stringBuffer.append(TEXT_50);
     stringBuffer.append(_MapOfStringToCollectionOfIAction);
-    stringBuffer.append(TEXT_54);
+    stringBuffer.append(TEXT_51);
     }
-    stringBuffer.append(TEXT_55);
+    stringBuffer.append(TEXT_52);
     stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
+    stringBuffer.append(TEXT_53);
+    stringBuffer.append(_CollectionOfIAction);
+    stringBuffer.append(TEXT_54);
+    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(TEXT_55);
+    stringBuffer.append(_MapOfStringToCollectionOfIAction);
     stringBuffer.append(TEXT_56);
     }
     stringBuffer.append(TEXT_57);
-    stringBuffer.append(genPackage.getActionBarContributorClassName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
     stringBuffer.append(TEXT_58);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.LoadResourceAction"));
-    stringBuffer.append(TEXT_59);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.ValidateAction"));
-    stringBuffer.append(TEXT_60);
-    if (genModel.getDecoration() == GenDecoration.LIVE) {
-    stringBuffer.append(TEXT_61);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.provider.DiagnosticDecorator"));
-    stringBuffer.append(TEXT_62);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_63);
     }
-    stringBuffer.append(TEXT_64);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.ControlAction"));
+    stringBuffer.append(TEXT_59);
+    stringBuffer.append(genPackage.getActionBarContributorClassName());
     stringBuffer.append(TEXT_60);
-    if (genModel.isFindAction()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.LoadResourceAction"));
+    stringBuffer.append(TEXT_61);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.ValidateAction"));
+    stringBuffer.append(TEXT_62);
+    if (genModel.getDecoration() == GenDecoration.LIVE) {
+    stringBuffer.append(TEXT_63);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.provider.DiagnosticDecorator"));
+    stringBuffer.append(TEXT_64);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_65);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.FindAction"));
+    }
     stringBuffer.append(TEXT_66);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.ControlAction"));
+    stringBuffer.append(TEXT_62);
+    if (genModel.isFindAction()) {
+    stringBuffer.append(TEXT_67);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.FindAction"));
+    stringBuffer.append(TEXT_68);
     }
     if (genModel.isRevertAction()) {
-    stringBuffer.append(TEXT_67);
+    stringBuffer.append(TEXT_69);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.RevertAction"));
-    stringBuffer.append(TEXT_60);
+    stringBuffer.append(TEXT_62);
     }
     if (genModel.isExpandAllAction()) {
-    stringBuffer.append(TEXT_68);
+    stringBuffer.append(TEXT_70);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.ExpandAllAction"));
-    stringBuffer.append(TEXT_60);
+    stringBuffer.append(TEXT_62);
     }
     if (genModel.isCollapseAllAction()) {
-    stringBuffer.append(TEXT_69);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.CollapseAllAction"));
-    stringBuffer.append(TEXT_60);
-    }
-    stringBuffer.append(TEXT_70);
-    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_71);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.CollapseAllAction"));
+    stringBuffer.append(TEXT_62);
     }
     stringBuffer.append(TEXT_72);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IToolBarManager"));
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_73);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
+    }
     stringBuffer.append(TEXT_74);
-    stringBuffer.append(genPackage.getPrefix().toLowerCase(genModel.getLocale()));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IToolBarManager"));
     stringBuffer.append(TEXT_75);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_76);
     stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
-    stringBuffer.append(TEXT_74);
+    stringBuffer.append(TEXT_76);
     stringBuffer.append(genPackage.getPrefix().toLowerCase(genModel.getLocale()));
     stringBuffer.append(TEXT_77);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_78);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_71);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
+    stringBuffer.append(TEXT_76);
+    stringBuffer.append(genPackage.getPrefix().toLowerCase(genModel.getLocale()));
     stringBuffer.append(TEXT_79);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_80);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_73);
+    }
     stringBuffer.append(TEXT_81);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_30);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
     stringBuffer.append(TEXT_82);
-    stringBuffer.append(genPackage.getEditorClassName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
     stringBuffer.append(TEXT_83);
-    stringBuffer.append(genPackage.getInterfacePackageName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
+    stringBuffer.append(TEXT_32);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_84);
+    stringBuffer.append(genPackage.getEditorClassName());
+    stringBuffer.append(TEXT_85);
+    stringBuffer.append(genPackage.getInterfacePackageName());
+    stringBuffer.append(TEXT_86);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
-    stringBuffer.append(TEXT_85);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
     stringBuffer.append(TEXT_87);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_86);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
     stringBuffer.append(TEXT_88);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_86);
     stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
     stringBuffer.append(TEXT_89);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_86);
+    stringBuffer.append(TEXT_88);
     stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
     stringBuffer.append(TEXT_90);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_16);
-    if (genModel.isCreationCommands()) {
+    stringBuffer.append(TEXT_88);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
     stringBuffer.append(TEXT_91);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_30);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_88);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
     stringBuffer.append(TEXT_92);
     stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_16);
+    if (genModel.isCreationCommands()) {
     stringBuffer.append(TEXT_93);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_94);
     stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_30);
+    stringBuffer.append(TEXT_32);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_94);
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_95);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_96);
-    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
+    stringBuffer.append(TEXT_32);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_97);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuListener"));
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_98);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_99);
-    } else {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuListener"));
     stringBuffer.append(TEXT_100);
-    }
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_101);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_71);
     }
     stringBuffer.append(TEXT_102);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IEditorPart"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
     stringBuffer.append(TEXT_103);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.SelectionChangedEvent"));
+    } else {
     stringBuffer.append(TEXT_104);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.SelectionChangedEvent"));
+    }
     stringBuffer.append(TEXT_105);
-    if (genModel.isCreationCommands()) {
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_73);
+    }
     stringBuffer.append(TEXT_106);
-    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IEditorPart"));
     stringBuffer.append(TEXT_107);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.SelectionChangedEvent"));
     stringBuffer.append(TEXT_108);
-    if (genModel.isCreationSubmenus()) {
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_73);
+    }
     stringBuffer.append(TEXT_109);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.SelectionChangedEvent"));
     stringBuffer.append(TEXT_110);
-    stringBuffer.append(_CollectionOfAnything);
-    stringBuffer.append(TEXT_111);
-    stringBuffer.append(_CollectionOfAnything);
-    stringBuffer.append(TEXT_112);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelection"));
-    stringBuffer.append(TEXT_113);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.IStructuredSelection"));
-    stringBuffer.append(TEXT_114);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.IStructuredSelection"));
-    stringBuffer.append(TEXT_115);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
-    stringBuffer.append(TEXT_116);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.IEditingDomainProvider"));
-    stringBuffer.append(TEXT_117);
-    if (genModel.isCreationSubmenus()) {
-    stringBuffer.append(TEXT_118);
-    }
-    stringBuffer.append(TEXT_119);
-    if (genModel.isCreationSubmenus()) {
-    stringBuffer.append(TEXT_120);
-    }
-    stringBuffer.append(TEXT_121);
-    if (genModel.isCreationSubmenus()) {
-    stringBuffer.append(TEXT_122);
-    }
-    stringBuffer.append(TEXT_123);
-    if (genModel.isCreationSubmenus()) {
-    stringBuffer.append(TEXT_124);
-    }
-    stringBuffer.append(TEXT_125);
-    } else {
-    stringBuffer.append(TEXT_126);
-    }
-    stringBuffer.append(TEXT_127);
     if (genModel.isCreationCommands()) {
+    stringBuffer.append(TEXT_111);
+    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(TEXT_112);
+    }
+    stringBuffer.append(TEXT_113);
+    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(TEXT_114);
+    }
+    stringBuffer.append(TEXT_115);
+    stringBuffer.append(_CollectionOfAnything);
+    stringBuffer.append(TEXT_116);
+    stringBuffer.append(_CollectionOfAnything);
+    stringBuffer.append(TEXT_117);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelection"));
+    stringBuffer.append(TEXT_118);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.IStructuredSelection"));
+    stringBuffer.append(TEXT_119);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.IStructuredSelection"));
+    stringBuffer.append(TEXT_120);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain"));
+    stringBuffer.append(TEXT_121);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.domain.IEditingDomainProvider"));
+    stringBuffer.append(TEXT_122);
+    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(TEXT_123);
+    }
+    stringBuffer.append(TEXT_124);
+    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(TEXT_125);
+    }
+    stringBuffer.append(TEXT_126);
+    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(TEXT_127);
+    }
     stringBuffer.append(TEXT_128);
-    stringBuffer.append(_CollectionOfIAction);
+    if (genModel.isCreationSubmenus()) {
     stringBuffer.append(TEXT_129);
-    stringBuffer.append(_CollectionOfAnything);
-    stringBuffer.append(TEXT_130);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelection"));
-    stringBuffer.append(TEXT_131);
-    stringBuffer.append(_CollectionOfIAction);
-    stringBuffer.append(TEXT_132);
-    stringBuffer.append(_ArrayListOfIAction);
-    stringBuffer.append(TEXT_133);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_134);
-    stringBuffer.append(genModel.getImportedName("java.lang.Object"));
-    stringBuffer.append(TEXT_135);
-    } else {
-    stringBuffer.append(TEXT_134);
-    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    stringBuffer.append(TEXT_136);
     }
+    stringBuffer.append(TEXT_130);
+    } else {
+    stringBuffer.append(TEXT_131);
+    }
+    stringBuffer.append(TEXT_132);
+    if (genModel.isCreationCommands()) {
+    stringBuffer.append(TEXT_133);
+    stringBuffer.append(_CollectionOfIAction);
+    stringBuffer.append(TEXT_134);
+    stringBuffer.append(_CollectionOfAnything);
+    stringBuffer.append(TEXT_135);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelection"));
+    stringBuffer.append(TEXT_136);
+    stringBuffer.append(_CollectionOfIAction);
     stringBuffer.append(TEXT_137);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.CreateChildAction"));
+    stringBuffer.append(_ArrayListOfIAction);
     stringBuffer.append(TEXT_138);
     if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_139);
-    } else {
+    stringBuffer.append(genModel.getImportedName("java.lang.Object"));
     stringBuffer.append(TEXT_140);
-    }
+    } else {
+    stringBuffer.append(TEXT_139);
+    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
     stringBuffer.append(TEXT_141);
-    stringBuffer.append(_CollectionOfIAction);
-    stringBuffer.append(TEXT_142);
-    stringBuffer.append(_CollectionOfAnything);
-    stringBuffer.append(TEXT_130);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelection"));
-    stringBuffer.append(TEXT_131);
-    stringBuffer.append(_CollectionOfIAction);
-    stringBuffer.append(TEXT_132);
-    stringBuffer.append(_ArrayListOfIAction);
-    stringBuffer.append(TEXT_133);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_134);
-    stringBuffer.append(genModel.getImportedName("java.lang.Object"));
-    stringBuffer.append(TEXT_135);
-    } else {
-    stringBuffer.append(TEXT_134);
-    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    stringBuffer.append(TEXT_136);
     }
+    stringBuffer.append(TEXT_142);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.CreateChildAction"));
+    stringBuffer.append(TEXT_143);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_144);
+    } else {
+    stringBuffer.append(TEXT_145);
+    }
+    stringBuffer.append(TEXT_146);
+    stringBuffer.append(_CollectionOfIAction);
+    stringBuffer.append(TEXT_147);
+    stringBuffer.append(_CollectionOfAnything);
+    stringBuffer.append(TEXT_135);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelection"));
+    stringBuffer.append(TEXT_136);
+    stringBuffer.append(_CollectionOfIAction);
     stringBuffer.append(TEXT_137);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.CreateSiblingAction"));
+    stringBuffer.append(_ArrayListOfIAction);
     stringBuffer.append(TEXT_138);
     if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_139);
-    } else {
+    stringBuffer.append(genModel.getImportedName("java.lang.Object"));
     stringBuffer.append(TEXT_140);
-    }
-    stringBuffer.append(TEXT_143);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionManager"));
-    stringBuffer.append(TEXT_144);
-    stringBuffer.append(_CollectionOfExtendsIAction);
-    stringBuffer.append(TEXT_145);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_134);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
-    stringBuffer.append(TEXT_146);
     } else {
-    stringBuffer.append(TEXT_134);
+    stringBuffer.append(TEXT_139);
     stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    stringBuffer.append(TEXT_147);
+    stringBuffer.append(TEXT_141);
+    }
+    stringBuffer.append(TEXT_142);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.action.CreateSiblingAction"));
+    stringBuffer.append(TEXT_143);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_144);
+    } else {
+    stringBuffer.append(TEXT_145);
     }
     stringBuffer.append(TEXT_148);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_149);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
-    stringBuffer.append(TEXT_150);
-    }
-    stringBuffer.append(TEXT_151);
     stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionManager"));
-    stringBuffer.append(TEXT_144);
+    stringBuffer.append(TEXT_149);
     stringBuffer.append(_CollectionOfExtendsIAction);
+    stringBuffer.append(TEXT_150);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_139);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
+    stringBuffer.append(TEXT_151);
+    } else {
+    stringBuffer.append(TEXT_139);
+    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
     stringBuffer.append(TEXT_152);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionItem"));
-    stringBuffer.append(TEXT_153);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionItem"));
-    stringBuffer.append(TEXT_154);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.SubContributionItem"));
-    stringBuffer.append(TEXT_155);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.SubContributionItem"));
-    stringBuffer.append(TEXT_156);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.ActionContributionItem"));
-    stringBuffer.append(TEXT_43);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
-    stringBuffer.append(TEXT_157);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.ActionContributionItem"));
-    stringBuffer.append(TEXT_158);
-    if (genModel.isCreationSubmenus()) {
-    stringBuffer.append(TEXT_159);
-    stringBuffer.append(_MapOfStringToCollectionOfIAction);
-    stringBuffer.append(TEXT_160);
-    stringBuffer.append(_CollectionOfIAction);
-    stringBuffer.append(TEXT_161);
-    stringBuffer.append(_MapOfStringToCollectionOfIAction);
-    stringBuffer.append(TEXT_162);
-    stringBuffer.append(_LinkedHashMapOfStringToCollectionOfIAction);
-    stringBuffer.append(TEXT_163);
-    stringBuffer.append(_IteratorOfIAction);
-    stringBuffer.append(TEXT_164);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
-    stringBuffer.append(TEXT_165);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_30);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
-    stringBuffer.append(TEXT_166);
     }
-    stringBuffer.append(TEXT_167);
-    stringBuffer.append(genModel.getImportedName("java.util.StringTokenizer"));
-    stringBuffer.append(TEXT_168);
-    stringBuffer.append(genModel.getImportedName("java.util.StringTokenizer"));
-    stringBuffer.append(TEXT_169);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_170);
-    stringBuffer.append(_CollectionOfIAction);
-    stringBuffer.append(TEXT_171);
+    stringBuffer.append(TEXT_153);
     if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_30);
+    stringBuffer.append(TEXT_154);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
+    stringBuffer.append(TEXT_155);
+    }
+    stringBuffer.append(TEXT_156);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionManager"));
+    stringBuffer.append(TEXT_149);
+    stringBuffer.append(_CollectionOfExtendsIAction);
+    stringBuffer.append(TEXT_157);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionItem"));
+    stringBuffer.append(TEXT_158);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionItem"));
+    stringBuffer.append(TEXT_159);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.SubContributionItem"));
+    stringBuffer.append(TEXT_160);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.SubContributionItem"));
+    stringBuffer.append(TEXT_161);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.ActionContributionItem"));
+    stringBuffer.append(TEXT_45);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
+    stringBuffer.append(TEXT_162);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.ActionContributionItem"));
+    stringBuffer.append(TEXT_163);
+    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(TEXT_164);
+    stringBuffer.append(_MapOfStringToCollectionOfIAction);
+    stringBuffer.append(TEXT_165);
     stringBuffer.append(_CollectionOfIAction);
     stringBuffer.append(TEXT_166);
+    stringBuffer.append(_MapOfStringToCollectionOfIAction);
+    stringBuffer.append(TEXT_167);
+    stringBuffer.append(_LinkedHashMapOfStringToCollectionOfIAction);
+    stringBuffer.append(TEXT_168);
+    stringBuffer.append(_IteratorOfIAction);
+    stringBuffer.append(TEXT_169);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
+    stringBuffer.append(TEXT_170);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_32);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IAction"));
+    stringBuffer.append(TEXT_171);
     }
     stringBuffer.append(TEXT_172);
-    stringBuffer.append(_ArrayListOfIAction);
+    stringBuffer.append(genModel.getImportedName("java.util.StringTokenizer"));
     stringBuffer.append(TEXT_173);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionManager"));
-    stringBuffer.append(TEXT_144);
-    stringBuffer.append(_MapOfStringToCollectionOfIAction);
+    stringBuffer.append(genModel.getImportedName("java.util.StringTokenizer"));
     stringBuffer.append(TEXT_174);
-    if (genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {
-    stringBuffer.append(TEXT_134);
-    stringBuffer.append(_MapEntryOfStringToCollectionOfIAction);
-    stringBuffer.append(TEXT_175);
-    } else {
-    stringBuffer.append(TEXT_134);
-    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    stringBuffer.append(TEXT_176);
-    stringBuffer.append(_MapEntryOfStringToCollectionOfIAction);
-    stringBuffer.append(TEXT_177);
-    stringBuffer.append(_MapEntryOfStringToCollectionOfIAction);
-    stringBuffer.append(TEXT_178);
-    }
-    stringBuffer.append(TEXT_149);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_81);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_30);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_179);
-    }
-    stringBuffer.append(TEXT_180);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_30);
-    stringBuffer.append(_CollectionOfIAction);
-    stringBuffer.append(TEXT_166);
-    }
-    stringBuffer.append(TEXT_181);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionManager"));
-    stringBuffer.append(TEXT_144);
-    stringBuffer.append(_MapOfStringToCollectionOfIAction);
-    stringBuffer.append(TEXT_182);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionItem"));
-    stringBuffer.append(TEXT_183);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionItem"));
-    stringBuffer.append(TEXT_184);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_43);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_185);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_186);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_30);
-    stringBuffer.append(_CollectionOfIAction);
-    stringBuffer.append(TEXT_166);
-    }
-    stringBuffer.append(TEXT_187);
-    }
-    }
-    stringBuffer.append(TEXT_188);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_71);
-    }
-    stringBuffer.append(TEXT_189);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
-    stringBuffer.append(TEXT_190);
-    if (genModel.isCreationCommands()) {
-    stringBuffer.append(TEXT_191);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_192);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_30);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_92);
     stringBuffer.append(genModel.getNonNLS());
-    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(TEXT_175);
+    stringBuffer.append(_CollectionOfIAction);
+    stringBuffer.append(TEXT_176);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_32);
+    stringBuffer.append(_CollectionOfIAction);
+    stringBuffer.append(TEXT_171);
+    }
+    stringBuffer.append(TEXT_177);
+    stringBuffer.append(_ArrayListOfIAction);
+    stringBuffer.append(TEXT_178);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionManager"));
+    stringBuffer.append(TEXT_149);
+    stringBuffer.append(_MapOfStringToCollectionOfIAction);
+    stringBuffer.append(TEXT_179);
+    if (genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {
+    stringBuffer.append(TEXT_139);
+    stringBuffer.append(_MapEntryOfStringToCollectionOfIAction);
+    stringBuffer.append(TEXT_180);
+    } else {
+    stringBuffer.append(TEXT_139);
+    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
+    stringBuffer.append(TEXT_181);
+    stringBuffer.append(_MapEntryOfStringToCollectionOfIAction);
+    stringBuffer.append(TEXT_182);
+    stringBuffer.append(_MapEntryOfStringToCollectionOfIAction);
+    stringBuffer.append(TEXT_183);
+    }
+    stringBuffer.append(TEXT_154);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
+    stringBuffer.append(TEXT_83);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
+    stringBuffer.append(TEXT_32);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_184);
+    }
+    stringBuffer.append(TEXT_185);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_32);
+    stringBuffer.append(_CollectionOfIAction);
+    stringBuffer.append(TEXT_171);
+    }
+    stringBuffer.append(TEXT_186);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionManager"));
+    stringBuffer.append(TEXT_149);
+    stringBuffer.append(_MapOfStringToCollectionOfIAction);
+    stringBuffer.append(TEXT_187);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionItem"));
+    stringBuffer.append(TEXT_188);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IContributionItem"));
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
+    stringBuffer.append(TEXT_45);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
+    stringBuffer.append(TEXT_190);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
+    stringBuffer.append(TEXT_191);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_32);
+    stringBuffer.append(_CollectionOfIAction);
+    stringBuffer.append(TEXT_171);
+    }
+    stringBuffer.append(TEXT_192);
+    }
+    }
     stringBuffer.append(TEXT_193);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_73);
     }
     stringBuffer.append(TEXT_194);
-    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
     stringBuffer.append(TEXT_195);
+    if (genModel.isCreationCommands()) {
+    stringBuffer.append(TEXT_196);
     stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
-    stringBuffer.append(TEXT_30);
+    stringBuffer.append(TEXT_197);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
+    stringBuffer.append(TEXT_32);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_95);
+    stringBuffer.append(TEXT_94);
     stringBuffer.append(genModel.getNonNLS());
     if (genModel.isCreationSubmenus()) {
-    stringBuffer.append(TEXT_196);
-    }
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genModel.getNonNLS());
-    }
     stringBuffer.append(TEXT_198);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_71);
     }
     stringBuffer.append(TEXT_199);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
-    stringBuffer.append(TEXT_200);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
-    stringBuffer.append(TEXT_201);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(genModel.getNonNLS(2));
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.MenuManager"));
+    stringBuffer.append(TEXT_32);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_97);
+    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.isCreationSubmenus()) {
+    stringBuffer.append(TEXT_201);
+    }
     stringBuffer.append(TEXT_202);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_203);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_204);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_71);
     }
+    stringBuffer.append(TEXT_203);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_73);
+    }
+    stringBuffer.append(TEXT_204);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.IMenuManager"));
     stringBuffer.append(TEXT_205);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.action.Separator"));
+    stringBuffer.append(TEXT_206);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getNonNLS(2));
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_208);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_209);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_73);
+    }
+    stringBuffer.append(TEXT_210);
     genModel.emitSortedImports();
     stringBuffer.append(TEXT_16);
     return stringBuffer.toString();
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/Advisor.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/Advisor.java
index 5d71677..eaf3aa3 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/Advisor.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/Advisor.java
@@ -55,45 +55,51 @@
   protected final String TEXT_38 = " ";
   protected final String TEXT_39 = NL + NL + "\t/**" + NL + "\t * This looks up a string in the plugin's plugin.properties file." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static String getString(String key)" + NL + "\t{" + NL + "\t\treturn ";
   protected final String TEXT_40 = ".INSTANCE.getString(key);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This looks up a string in plugin.properties, making a substitution." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static String getString(String key, Object s1)" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_41 = ".INSTANCE.getString(key, new Object [] { s1 });" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * RCP's application" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class Application implements IApplication" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic Object start(IApplicationContext context) throws Exception" + NL + "\t\t{" + NL + "\t\t\tWorkbenchAdvisor workbenchAdvisor = new ";
-  protected final String TEXT_42 = "();" + NL + "\t\t\tDisplay display = PlatformUI.createDisplay();" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\tint returnCode = PlatformUI.createAndRunWorkbench(display, workbenchAdvisor);" + NL + "\t\t\t\tif (returnCode == PlatformUI.RETURN_RESTART)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\treturn IApplication.EXIT_RESTART;" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\treturn IApplication.EXIT_OK;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\tfinally" + NL + "\t\t\t{" + NL + "\t\t\t\tdisplay.dispose();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.equinox.app.IApplication#stop()" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void stop()" + NL + "\t\t{" + NL + "\t\t\t// Do nothing." + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * RCP's perspective" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class Perspective implements IPerspectiveFactory" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * Perspective ID" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic static final String ID_PERSPECTIVE = \"";
-  protected final String TEXT_43 = "Perspective\";";
-  protected final String TEXT_44 = NL + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void createInitialLayout(IPageLayout layout)" + NL + "\t\t{" + NL + "\t\t\tlayout.setEditorAreaVisible(true);" + NL + "\t\t\tlayout.addPerspectiveShortcut(ID_PERSPECTIVE);" + NL + "" + NL + "\t\t\tIFolderLayout right = layout.createFolder(\"right\", IPageLayout.RIGHT, (float)0.66, layout.getEditorArea());";
-  protected final String TEXT_45 = NL + "\t\t\tright.addView(IPageLayout.ID_OUTLINE);" + NL + "" + NL + "\t\t\tIFolderLayout bottonRight = layout.createFolder(\"bottonRight\", IPageLayout.BOTTOM, (float)0.60, \"right\");";
-  protected final String TEXT_46 = NL + "\t\t\tbottonRight.addView(IPageLayout.ID_PROP_SHEET);" + NL + "\t\t}" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * RCP's window advisor" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class WindowAdvisor extends WorkbenchWindowAdvisor" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see WorkbenchWindowAdvisor#WorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic WindowAdvisor(IWorkbenchWindowConfigurer configurer)" + NL + "\t\t{" + NL + "\t\t\tsuper(configurer);" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#preWindowOpen()" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_47 = NL + "\t\t@Override";
-  protected final String TEXT_48 = NL + "\t\tpublic void preWindowOpen()" + NL + "\t\t{" + NL + "\t\t\tIWorkbenchWindowConfigurer configurer = getWindowConfigurer();" + NL + "\t\t\tconfigurer.setInitialSize(new Point(600, 450));" + NL + "\t\t\tconfigurer.setShowCoolBar(false);" + NL + "\t\t\tconfigurer.setShowStatusLine(true);" + NL + "\t\t\tconfigurer.setTitle(getString(\"_UI_Application_title\"));";
-  protected final String TEXT_49 = NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_50 = NL + "\t\tpublic ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer)" + NL + "\t\t{" + NL + "\t\t\treturn new WindowActionBarAdvisor(configurer);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * RCP's action bar advisor" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class WindowActionBarAdvisor extends ActionBarAdvisor" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see ActionBarAdvisor#ActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic WindowActionBarAdvisor(IActionBarConfigurer configurer)" + NL + "\t\t{" + NL + "\t\t\tsuper(configurer);" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.application.ActionBarAdvisor#fillMenuBar(org.eclipse.jface.action.IMenuManager)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_51 = NL + "\t\tprotected void fillMenuBar(IMenuManager menuBar)" + NL + "\t\t{" + NL + "\t\t\tIWorkbenchWindow window = getActionBarConfigurer().getWindowConfigurer().getWindow();" + NL + "\t\t\tmenuBar.add(createFileMenu(window));" + NL + "\t\t\tmenuBar.add(createEditMenu(window));" + NL + "\t\t\tmenuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t\t\tmenuBar.add(createWindowMenu(window));" + NL + "\t\t\tmenuBar.add(createHelpMenu(window));\t\t\t\t\t" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * Creates the 'File' menu." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected IMenuManager createFileMenu(IWorkbenchWindow window)" + NL + "\t\t{" + NL + "\t\t\tIMenuManager menu = new MenuManager(getString(\"_UI_Menu_File_label\"),";
-  protected final String TEXT_52 = NL + "\t\t\tIWorkbenchActionConstants.M_FILE);    " + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.FILE_START));" + NL + "\t" + NL + "\t\t\tIMenuManager newMenu = new MenuManager(getString(\"_UI_Menu_New_label\"), \"new\");";
-  protected final String TEXT_53 = NL + "\t\t\tnewMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t" + NL + "\t\t\tmenu.add(newMenu);" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.CLOSE.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.CLOSE_ALL.create(window));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.SAVE.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.SAVE_AS.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.SAVE_ALL.create(window));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.QUIT.create(window));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.FILE_END));" + NL + "\t\t\treturn menu;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * Creates the 'Edit' menu." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected IMenuManager createEditMenu(IWorkbenchWindow window)" + NL + "\t\t{" + NL + "\t\t\tIMenuManager menu = new MenuManager(getString(\"_UI_Menu_Edit_label\"),";
-  protected final String TEXT_54 = NL + "\t\t\tIWorkbenchActionConstants.M_EDIT);" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_START));" + NL + "\t" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.UNDO.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.REDO.create(window));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.UNDO_EXT));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.CUT.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.COPY.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.PASTE.create(window));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.CUT_EXT));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.DELETE.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.SELECT_ALL.create(window));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.ADD_EXT));" + NL + "\t" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_END));" + NL + "\t\t\tmenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t\t\treturn menu;" + NL + "\t\t}" + NL + "\t" + NL + "\t\t/**" + NL + "\t\t * Creates the 'Window' menu." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected IMenuManager createWindowMenu(IWorkbenchWindow window)" + NL + "\t\t{" + NL + "\t\t\tIMenuManager menu = new MenuManager(getString(\"_UI_Menu_Window_label\"),";
-  protected final String TEXT_55 = NL + "\t\t\tIWorkbenchActionConstants.M_WINDOW);" + NL + "\t" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.OPEN_NEW_WINDOW.create(window));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));";
-  protected final String TEXT_56 = NL + "\t\t\tmenu.add(ContributionItemFactory.OPEN_WINDOWS.create(window));";
-  protected final String TEXT_57 = NL + "\t" + NL + "\t\t\treturn menu;" + NL + "\t\t}" + NL + "\t" + NL + "\t\t/**" + NL + "\t\t * Creates the 'Help' menu." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected IMenuManager createHelpMenu(IWorkbenchWindow window)" + NL + "\t\t{" + NL + "\t\t\tIMenuManager menu = new MenuManager(getString(\"_UI_Menu_Help_label\"), IWorkbenchActionConstants.M_HELP);";
-  protected final String TEXT_58 = NL + "\t\t\t// Welcome or intro page would go here" + NL + "\t\t\t// Help contents would go here" + NL + "\t\t\t// Tips and tricks page would go here" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.HELP_START));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.HELP_END));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t\t\treturn menu;" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * Adds the specified action to the given menu and also registers the action with the" + NL + "\t\t * action bar configurer, in order to activate its key binding." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected void addToMenuAndRegister(IMenuManager menuManager, IAction action)" + NL + "\t\t{" + NL + "\t\t\tmenuManager.add(action);" + NL + "\t\t\tgetActionBarConfigurer().registerGlobalAction(action);" + NL + "\t\t}" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * About action for the RCP application." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class AboutAction extends WorkbenchWindowActionDelegate" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void run(IAction action)" + NL + "\t\t{" + NL + "\t\t\tMessageDialog.openInformation(getWindow().getShell(), getString(\"_UI_About_title\"),";
-  protected final String TEXT_59 = NL + "\t\t\tgetString(\"_UI_About_text\"));";
-  protected final String TEXT_60 = NL + "\t\t}" + NL + "\t}" + NL + "\t";
-  protected final String TEXT_61 = NL + "\t/**" + NL + "\t * Open action for the objects from the ";
-  protected final String TEXT_62 = " model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class OpenAction extends WorkbenchWindowActionDelegate" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * Opens the editors for the files selected using the file dialog." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void run(IAction action)" + NL + "\t\t{" + NL + "\t\t\tString[] filePaths = openFilePathDialog(getWindow().getShell(), SWT.OPEN, null);" + NL + "\t\t\tif (filePaths.length > 0)" + NL + "\t\t\t{" + NL + "\t\t\t\topenEditor(getWindow().getWorkbench(), URI.createFileURI(filePaths[0]));" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}";
-  protected final String TEXT_63 = NL + "\t" + NL + "\t/**" + NL + "\t * Open URI action for the objects from the ";
-  protected final String TEXT_64 = " model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class OpenURIAction extends WorkbenchWindowActionDelegate" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * Opens the editors for the files selected using the LoadResourceDialog." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void run(IAction action)" + NL + "\t\t{" + NL + "\t\t\tLoadResourceAction.LoadResourceDialog loadResourceDialog = new LoadResourceAction.LoadResourceDialog(getWindow().getShell());" + NL + "\t\t\tif (Window.OK == loadResourceDialog.open())" + NL + "\t\t\t{";
-  protected final String TEXT_65 = NL + "\t\t\t\tfor (URI uri : loadResourceDialog.getURIs())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\topenEditor(getWindow().getWorkbench(), uri);" + NL + "\t\t\t\t}";
-  protected final String TEXT_66 = NL + "\t\t\t\tfor (Iterator i = loadResourceDialog.getURIs().iterator(); i.hasNext();)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\topenEditor(getWindow().getWorkbench(), (URI)i.next());" + NL + "\t\t\t\t}";
-  protected final String TEXT_67 = NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "\t";
-  protected final String TEXT_68 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static String[] openFilePathDialog(Shell shell, int style, String[] fileExtensionFilters)" + NL + "\t{" + NL + "\t\treturn openFilePathDialog(shell, style, fileExtensionFilters, (style & SWT.OPEN) != 0, (style & SWT.OPEN) != 0, (style & SWT.SAVE) != 0);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static String[] openFilePathDialog(Shell shell, int style, String[] fileExtensionFilters, boolean includeGroupFilter, boolean includeAllFilter, boolean addExtension)" + NL + "\t{" + NL + "\t\tFileDialog fileDialog = new FileDialog(shell, style);" + NL + "\t\tif (fileExtensionFilters == null)" + NL + "\t\t{" + NL + "\t\t\tfileExtensionFilters = FILE_EXTENSION_FILTERS;" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t// If requested, augment the file extension filters by adding a group of all the other filters (*.ext1;*.ext2;...)" + NL + "\t\t// at the beginning and/or an all files wildcard (*.*) at the end." + NL + "\t\t//" + NL + "\t\tincludeGroupFilter &= fileExtensionFilters.length > 1;" + NL + "\t\tint offset = includeGroupFilter ? 1 : 0;" + NL + "\t\t" + NL + "\t\tif (includeGroupFilter || includeAllFilter)" + NL + "\t\t{" + NL + "\t\t\tint size = fileExtensionFilters.length + offset + (includeAllFilter ? 1 : 0);" + NL + "\t\t\tString[] allFilters = new String[size];" + NL + "\t\t\t";
-  protected final String TEXT_69 = " group = includeGroupFilter ? new ";
-  protected final String TEXT_70 = "() : null;" + NL + "\t\t\t" + NL + "\t\t\tfor (int i = 0; i < fileExtensionFilters.length; i++)" + NL + "\t\t\t{" + NL + "\t\t\t\tif (includeGroupFilter)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tif (i != 0)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tgroup.append(';');" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tgroup.append(fileExtensionFilters[i]);" + NL + "\t\t\t\t}" + NL + "\t\t\t\tallFilters[i + offset] = fileExtensionFilters[i];" + NL + "\t\t\t}" + NL + "\t\t\t" + NL + "\t\t\tif (includeGroupFilter)" + NL + "\t\t\t{" + NL + "\t\t\t\tallFilters[0] = group.toString();" + NL + "\t\t\t}" + NL + "\t\t\tif (includeAllFilter)" + NL + "\t\t\t{" + NL + "\t\t\t\tallFilters[allFilters.length - 1] = \"*.*\";";
-  protected final String TEXT_71 = NL + "\t\t\t}" + NL + "\t\t\t" + NL + "\t\t\tfileDialog.setFilterExtensions(allFilters);" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\tfileDialog.setFilterExtensions(fileExtensionFilters);" + NL + "\t\t}" + NL + "\t\tfileDialog.open();" + NL + "\t\t" + NL + "\t\tString[] filenames = fileDialog.getFileNames();" + NL + "\t\tString[] result = new String[filenames.length];" + NL + "\t\tString path = fileDialog.getFilterPath() + File.separator;" + NL + "\t\tString extension = null;" + NL + "\t\t" + NL + "\t\t// If extension adding requested, get the dotted extension corresponding to the selected filter." + NL + "\t\t//" + NL + "\t\tif (addExtension)" + NL + "\t\t{" + NL + "\t\t\tint i = fileDialog.getFilterIndex();" + NL + "\t\t\tif (i != -1 && (!includeAllFilter || i != fileExtensionFilters.length))" + NL + "\t\t\t{" + NL + "\t\t\t\ti = includeGroupFilter && i == 0 ? 0 : i - offset;" + NL + "\t\t\t\tString filter = fileExtensionFilters[i];" + NL + "\t\t\t\tint dot = filter.lastIndexOf('.');" + NL + "\t\t\t\tif (dot == 1 && filter.charAt(0) == '*')" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\textension = filter.substring(dot);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t// Build the result by adding the selected path and, if needed, auto-appending the extension." + NL + "\t\t//" + NL + "\t\tfor (int i = 0; i < filenames.length; i++)" + NL + "\t\t{" + NL + "\t\t\tString filename = path + filenames[i];" + NL + "\t\t\tif (extension != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tint dot = filename.lastIndexOf('.');" + NL + "\t\t\t\tif (dot == -1 || !Arrays.asList(fileExtensionFilters).contains(\"*\" + filename.substring(dot)))";
-  protected final String TEXT_72 = NL + "\t\t\t\t{" + NL + "\t\t\t\t\tfilename += extension;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\tresult[i] = filename;" + NL + "\t\t}" + NL + "\t\treturn result;" + NL + "\t}";
-  protected final String TEXT_73 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static boolean openEditor(IWorkbench workbench, URI uri)" + NL + "\t{" + NL + "\t\tIWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();" + NL + "\t\tIWorkbenchPage page = workbenchWindow.getActivePage();" + NL + "\t\t" + NL + "\t\tIEditorDescriptor editorDescriptor = EditUIUtil.getDefaultEditor(uri, null);" + NL + "\t\tif (editorDescriptor == null)" + NL + "\t\t{" + NL + "\t\t\tMessageDialog.openError(" + NL + "\t\t\t\tworkbenchWindow.getShell()," + NL + "\t\t\t\tgetString(\"_UI_Error_title\"),";
-  protected final String TEXT_74 = NL + "\t\t\t\tgetString(\"_WARN_No_Editor\", uri.lastSegment()));";
-  protected final String TEXT_75 = NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\tpage.openEditor(new URIEditorInput(uri), editorDescriptor.getId());" + NL + "\t\t\t}" + NL + "\t\t\tcatch (PartInitException exception)" + NL + "\t\t\t{" + NL + "\t\t\t\tMessageDialog.openError(" + NL + "\t\t\t\t\tworkbenchWindow.getShell()," + NL + "\t\t\t\t\tgetString(\"_UI_OpenEditorError_label\"),";
-  protected final String TEXT_76 = NL + "\t\t\t\t\texception.getMessage());" + NL + "\t\t\t\treturn false;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn true;" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @see org.eclipse.ui.application.WorkbenchAdvisor#getInitialWindowPerspectiveId()" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_77 = NL + "\tpublic String getInitialWindowPerspectiveId()" + NL + "\t{" + NL + "\t\treturn Perspective.ID_PERSPECTIVE;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize(org.eclipse.ui.application.IWorkbenchConfigurer)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_78 = NL + "\tpublic void initialize(IWorkbenchConfigurer configurer)" + NL + "\t{" + NL + "\t\tsuper.initialize(configurer);" + NL + "\t\tconfigurer.setSaveAndRestore(true);" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_79 = NL + "\tpublic WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer)" + NL + "\t{" + NL + "\t\treturn new WindowAdvisor(configurer);" + NL + "\t}" + NL + "}";
+  protected final String TEXT_41 = ".INSTANCE.getString(key, new Object [] { s1 });" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * RCP's application" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class Application implements IApplication" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_42 = NL + "\t\t@Override";
+  protected final String TEXT_43 = NL + "\t\tpublic Object start(IApplicationContext context) throws Exception" + NL + "\t\t{" + NL + "\t\t\tWorkbenchAdvisor workbenchAdvisor = new ";
+  protected final String TEXT_44 = "();" + NL + "\t\t\tDisplay display = PlatformUI.createDisplay();" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\tint returnCode = PlatformUI.createAndRunWorkbench(display, workbenchAdvisor);" + NL + "\t\t\t\tif (returnCode == PlatformUI.RETURN_RESTART)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\treturn IApplication.EXIT_RESTART;" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\treturn IApplication.EXIT_OK;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\tfinally" + NL + "\t\t\t{" + NL + "\t\t\t\tdisplay.dispose();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.equinox.app.IApplication#stop()" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_45 = NL + "\t\tpublic void stop()" + NL + "\t\t{" + NL + "\t\t\t// Do nothing." + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * RCP's perspective" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class Perspective implements IPerspectiveFactory" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * Perspective ID" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic static final String ID_PERSPECTIVE = \"";
+  protected final String TEXT_46 = "Perspective\";";
+  protected final String TEXT_47 = NL + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_48 = NL + "\t\tpublic void createInitialLayout(IPageLayout layout)" + NL + "\t\t{" + NL + "\t\t\tlayout.setEditorAreaVisible(true);" + NL + "\t\t\tlayout.addPerspectiveShortcut(ID_PERSPECTIVE);" + NL + "" + NL + "\t\t\tIFolderLayout right = layout.createFolder(\"right\", IPageLayout.RIGHT, (float)0.66, layout.getEditorArea());";
+  protected final String TEXT_49 = NL + "\t\t\tright.addView(IPageLayout.ID_OUTLINE);" + NL + "" + NL + "\t\t\tIFolderLayout bottonRight = layout.createFolder(\"bottonRight\", IPageLayout.BOTTOM, (float)0.60, \"right\");";
+  protected final String TEXT_50 = NL + "\t\t\tbottonRight.addView(IPageLayout.ID_PROP_SHEET);" + NL + "\t\t}" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * RCP's window advisor" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class WindowAdvisor extends WorkbenchWindowAdvisor" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see WorkbenchWindowAdvisor#WorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic WindowAdvisor(IWorkbenchWindowConfigurer configurer)" + NL + "\t\t{" + NL + "\t\t\tsuper(configurer);" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#preWindowOpen()" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_51 = NL + "\t\tpublic void preWindowOpen()" + NL + "\t\t{" + NL + "\t\t\tIWorkbenchWindowConfigurer configurer = getWindowConfigurer();" + NL + "\t\t\tconfigurer.setInitialSize(new Point(600, 450));" + NL + "\t\t\tconfigurer.setShowCoolBar(false);" + NL + "\t\t\tconfigurer.setShowStatusLine(true);" + NL + "\t\t\tconfigurer.setTitle(getString(\"_UI_Application_title\"));";
+  protected final String TEXT_52 = NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_53 = NL + "\t\tpublic ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer)" + NL + "\t\t{" + NL + "\t\t\treturn new WindowActionBarAdvisor(configurer);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * RCP's action bar advisor" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class WindowActionBarAdvisor extends ActionBarAdvisor" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see ActionBarAdvisor#ActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic WindowActionBarAdvisor(IActionBarConfigurer configurer)" + NL + "\t\t{" + NL + "\t\t\tsuper(configurer);" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.application.ActionBarAdvisor#fillMenuBar(org.eclipse.jface.action.IMenuManager)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_54 = NL + "\t\tprotected void fillMenuBar(IMenuManager menuBar)" + NL + "\t\t{" + NL + "\t\t\tIWorkbenchWindow window = getActionBarConfigurer().getWindowConfigurer().getWindow();" + NL + "\t\t\tmenuBar.add(createFileMenu(window));" + NL + "\t\t\tmenuBar.add(createEditMenu(window));" + NL + "\t\t\tmenuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t\t\tmenuBar.add(createWindowMenu(window));" + NL + "\t\t\tmenuBar.add(createHelpMenu(window));\t\t\t\t\t" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * Creates the 'File' menu." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected IMenuManager createFileMenu(IWorkbenchWindow window)" + NL + "\t\t{" + NL + "\t\t\tIMenuManager menu = new MenuManager(getString(\"_UI_Menu_File_label\"),";
+  protected final String TEXT_55 = NL + "\t\t\tIWorkbenchActionConstants.M_FILE);    " + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.FILE_START));" + NL + "\t" + NL + "\t\t\tIMenuManager newMenu = new MenuManager(getString(\"_UI_Menu_New_label\"), \"new\");";
+  protected final String TEXT_56 = NL + "\t\t\tnewMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t" + NL + "\t\t\tmenu.add(newMenu);" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.CLOSE.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.CLOSE_ALL.create(window));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.SAVE.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.SAVE_AS.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.SAVE_ALL.create(window));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.QUIT.create(window));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.FILE_END));" + NL + "\t\t\treturn menu;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * Creates the 'Edit' menu." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected IMenuManager createEditMenu(IWorkbenchWindow window)" + NL + "\t\t{" + NL + "\t\t\tIMenuManager menu = new MenuManager(getString(\"_UI_Menu_Edit_label\"),";
+  protected final String TEXT_57 = NL + "\t\t\tIWorkbenchActionConstants.M_EDIT);" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_START));" + NL + "\t" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.UNDO.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.REDO.create(window));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.UNDO_EXT));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.CUT.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.COPY.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.PASTE.create(window));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.CUT_EXT));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.DELETE.create(window));" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.SELECT_ALL.create(window));" + NL + "\t\t\tmenu.add(new Separator());" + NL + "\t" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.ADD_EXT));" + NL + "\t" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_END));" + NL + "\t\t\tmenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t\t\treturn menu;" + NL + "\t\t}" + NL + "\t" + NL + "\t\t/**" + NL + "\t\t * Creates the 'Window' menu." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected IMenuManager createWindowMenu(IWorkbenchWindow window)" + NL + "\t\t{" + NL + "\t\t\tIMenuManager menu = new MenuManager(getString(\"_UI_Menu_Window_label\"),";
+  protected final String TEXT_58 = NL + "\t\t\tIWorkbenchActionConstants.M_WINDOW);" + NL + "\t" + NL + "\t\t\taddToMenuAndRegister(menu, ActionFactory.OPEN_NEW_WINDOW.create(window));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));";
+  protected final String TEXT_59 = NL + "\t\t\tmenu.add(ContributionItemFactory.OPEN_WINDOWS.create(window));";
+  protected final String TEXT_60 = NL + "\t" + NL + "\t\t\treturn menu;" + NL + "\t\t}" + NL + "\t" + NL + "\t\t/**" + NL + "\t\t * Creates the 'Help' menu." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected IMenuManager createHelpMenu(IWorkbenchWindow window)" + NL + "\t\t{" + NL + "\t\t\tIMenuManager menu = new MenuManager(getString(\"_UI_Menu_Help_label\"), IWorkbenchActionConstants.M_HELP);";
+  protected final String TEXT_61 = NL + "\t\t\t// Welcome or intro page would go here" + NL + "\t\t\t// Help contents would go here" + NL + "\t\t\t// Tips and tricks page would go here" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.HELP_START));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.HELP_END));" + NL + "\t\t\tmenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));" + NL + "\t\t\treturn menu;" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * Adds the specified action to the given menu and also registers the action with the" + NL + "\t\t * action bar configurer, in order to activate its key binding." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected void addToMenuAndRegister(IMenuManager menuManager, IAction action)" + NL + "\t\t{" + NL + "\t\t\tmenuManager.add(action);" + NL + "\t\t\tgetActionBarConfigurer().registerGlobalAction(action);" + NL + "\t\t}" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * About action for the RCP application." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class AboutAction extends WorkbenchWindowActionDelegate" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_62 = NL + "\t\tpublic void run(IAction action)" + NL + "\t\t{" + NL + "\t\t\tMessageDialog.openInformation(getWindow().getShell(), getString(\"_UI_About_title\"),";
+  protected final String TEXT_63 = NL + "\t\t\tgetString(\"_UI_About_text\"));";
+  protected final String TEXT_64 = NL + "\t\t}" + NL + "\t}" + NL + "\t";
+  protected final String TEXT_65 = NL + "\t/**" + NL + "\t * Open action for the objects from the ";
+  protected final String TEXT_66 = " model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class OpenAction extends WorkbenchWindowActionDelegate" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * Opens the editors for the files selected using the file dialog." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_67 = NL + "\t\tpublic void run(IAction action)" + NL + "\t\t{" + NL + "\t\t\tString[] filePaths = openFilePathDialog(getWindow().getShell(), SWT.OPEN, null);" + NL + "\t\t\tif (filePaths.length > 0)" + NL + "\t\t\t{" + NL + "\t\t\t\topenEditor(getWindow().getWorkbench(), URI.createFileURI(filePaths[0]));" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}";
+  protected final String TEXT_68 = NL + "\t" + NL + "\t/**" + NL + "\t * Open URI action for the objects from the ";
+  protected final String TEXT_69 = " model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class OpenURIAction extends WorkbenchWindowActionDelegate" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * Opens the editors for the files selected using the LoadResourceDialog." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_70 = NL + "\t\tpublic void run(IAction action)" + NL + "\t\t{" + NL + "\t\t\tLoadResourceAction.LoadResourceDialog loadResourceDialog = new LoadResourceAction.LoadResourceDialog(getWindow().getShell());" + NL + "\t\t\tif (Window.OK == loadResourceDialog.open())" + NL + "\t\t\t{";
+  protected final String TEXT_71 = NL + "\t\t\t\tfor (URI uri : loadResourceDialog.getURIs())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\topenEditor(getWindow().getWorkbench(), uri);" + NL + "\t\t\t\t}";
+  protected final String TEXT_72 = NL + "\t\t\t\tfor (Iterator i = loadResourceDialog.getURIs().iterator(); i.hasNext();)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\topenEditor(getWindow().getWorkbench(), (URI)i.next());" + NL + "\t\t\t\t}";
+  protected final String TEXT_73 = NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "\t";
+  protected final String TEXT_74 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static String[] openFilePathDialog(Shell shell, int style, String[] fileExtensionFilters)" + NL + "\t{" + NL + "\t\treturn openFilePathDialog(shell, style, fileExtensionFilters, (style & SWT.OPEN) != 0, (style & SWT.OPEN) != 0, (style & SWT.SAVE) != 0);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static String[] openFilePathDialog(Shell shell, int style, String[] fileExtensionFilters, boolean includeGroupFilter, boolean includeAllFilter, boolean addExtension)" + NL + "\t{" + NL + "\t\tFileDialog fileDialog = new FileDialog(shell, style);" + NL + "\t\tif (fileExtensionFilters == null)" + NL + "\t\t{" + NL + "\t\t\tfileExtensionFilters = FILE_EXTENSION_FILTERS;" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t// If requested, augment the file extension filters by adding a group of all the other filters (*.ext1;*.ext2;...)" + NL + "\t\t// at the beginning and/or an all files wildcard (*.*) at the end." + NL + "\t\t//" + NL + "\t\tincludeGroupFilter &= fileExtensionFilters.length > 1;" + NL + "\t\tint offset = includeGroupFilter ? 1 : 0;" + NL + "\t\t" + NL + "\t\tif (includeGroupFilter || includeAllFilter)" + NL + "\t\t{" + NL + "\t\t\tint size = fileExtensionFilters.length + offset + (includeAllFilter ? 1 : 0);" + NL + "\t\t\tString[] allFilters = new String[size];" + NL + "\t\t\t";
+  protected final String TEXT_75 = " group = includeGroupFilter ? new ";
+  protected final String TEXT_76 = "() : null;" + NL + "\t\t\t" + NL + "\t\t\tfor (int i = 0; i < fileExtensionFilters.length; i++)" + NL + "\t\t\t{" + NL + "\t\t\t\tif (includeGroupFilter)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tif (i != 0)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tgroup.append(';');" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tgroup.append(fileExtensionFilters[i]);" + NL + "\t\t\t\t}" + NL + "\t\t\t\tallFilters[i + offset] = fileExtensionFilters[i];" + NL + "\t\t\t}" + NL + "\t\t\t" + NL + "\t\t\tif (includeGroupFilter)" + NL + "\t\t\t{" + NL + "\t\t\t\tallFilters[0] = group.toString();" + NL + "\t\t\t}" + NL + "\t\t\tif (includeAllFilter)" + NL + "\t\t\t{" + NL + "\t\t\t\tallFilters[allFilters.length - 1] = \"*.*\";";
+  protected final String TEXT_77 = NL + "\t\t\t}" + NL + "\t\t\t" + NL + "\t\t\tfileDialog.setFilterExtensions(allFilters);" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\tfileDialog.setFilterExtensions(fileExtensionFilters);" + NL + "\t\t}" + NL + "\t\tfileDialog.open();" + NL + "\t\t" + NL + "\t\tString[] filenames = fileDialog.getFileNames();" + NL + "\t\tString[] result = new String[filenames.length];" + NL + "\t\tString path = fileDialog.getFilterPath() + File.separator;" + NL + "\t\tString extension = null;" + NL + "\t\t" + NL + "\t\t// If extension adding requested, get the dotted extension corresponding to the selected filter." + NL + "\t\t//" + NL + "\t\tif (addExtension)" + NL + "\t\t{" + NL + "\t\t\tint i = fileDialog.getFilterIndex();" + NL + "\t\t\tif (i != -1 && (!includeAllFilter || i != fileExtensionFilters.length))" + NL + "\t\t\t{" + NL + "\t\t\t\ti = includeGroupFilter && i == 0 ? 0 : i - offset;" + NL + "\t\t\t\tString filter = fileExtensionFilters[i];" + NL + "\t\t\t\tint dot = filter.lastIndexOf('.');" + NL + "\t\t\t\tif (dot == 1 && filter.charAt(0) == '*')" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\textension = filter.substring(dot);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t// Build the result by adding the selected path and, if needed, auto-appending the extension." + NL + "\t\t//" + NL + "\t\tfor (int i = 0; i < filenames.length; i++)" + NL + "\t\t{" + NL + "\t\t\tString filename = path + filenames[i];" + NL + "\t\t\tif (extension != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tint dot = filename.lastIndexOf('.');" + NL + "\t\t\t\tif (dot == -1 || !Arrays.asList(fileExtensionFilters).contains(\"*\" + filename.substring(dot)))";
+  protected final String TEXT_78 = NL + "\t\t\t\t{" + NL + "\t\t\t\t\tfilename += extension;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\tresult[i] = filename;" + NL + "\t\t}" + NL + "\t\treturn result;" + NL + "\t}";
+  protected final String TEXT_79 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static boolean openEditor(IWorkbench workbench, URI uri)" + NL + "\t{" + NL + "\t\tIWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();" + NL + "\t\tIWorkbenchPage page = workbenchWindow.getActivePage();" + NL + "\t\t" + NL + "\t\tIEditorDescriptor editorDescriptor = EditUIUtil.getDefaultEditor(uri, null);" + NL + "\t\tif (editorDescriptor == null)" + NL + "\t\t{" + NL + "\t\t\tMessageDialog.openError(" + NL + "\t\t\t\tworkbenchWindow.getShell()," + NL + "\t\t\t\tgetString(\"_UI_Error_title\"),";
+  protected final String TEXT_80 = NL + "\t\t\t\tgetString(\"_WARN_No_Editor\", uri.lastSegment()));";
+  protected final String TEXT_81 = NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\tpage.openEditor(new URIEditorInput(uri), editorDescriptor.getId());" + NL + "\t\t\t}" + NL + "\t\t\tcatch (PartInitException exception)" + NL + "\t\t\t{" + NL + "\t\t\t\tMessageDialog.openError(" + NL + "\t\t\t\t\tworkbenchWindow.getShell()," + NL + "\t\t\t\t\tgetString(\"_UI_OpenEditorError_label\"),";
+  protected final String TEXT_82 = NL + "\t\t\t\t\texception.getMessage());" + NL + "\t\t\t\treturn false;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn true;" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @see org.eclipse.ui.application.WorkbenchAdvisor#getInitialWindowPerspectiveId()" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_83 = NL + "\tpublic String getInitialWindowPerspectiveId()" + NL + "\t{" + NL + "\t\treturn Perspective.ID_PERSPECTIVE;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize(org.eclipse.ui.application.IWorkbenchConfigurer)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_84 = NL + "\tpublic void initialize(IWorkbenchConfigurer configurer)" + NL + "\t{" + NL + "\t\tsuper.initialize(configurer);" + NL + "\t\tconfigurer.setSaveAndRestore(true);" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_85 = NL + "\tpublic WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer)" + NL + "\t{" + NL + "\t\treturn new WindowAdvisor(configurer);" + NL + "\t}" + NL + "}";
 
   public String generate(Object argument)
   {
@@ -208,94 +214,118 @@
     stringBuffer.append(TEXT_40);
     stringBuffer.append(genModel.getQualifiedEditorPluginClassName());
     stringBuffer.append(TEXT_41);
-    stringBuffer.append(genModel.getEditorAdvisorClassName());
+    if (genModel.useInterfaceOverrideAnnotation()){
     stringBuffer.append(TEXT_42);
-    stringBuffer.append(genModel.getQualifiedEditorAdvisorClassName());
+    }
     stringBuffer.append(TEXT_43);
-    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getEditorAdvisorClassName());
     stringBuffer.append(TEXT_44);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.useInterfaceOverrideAnnotation()){
+    stringBuffer.append(TEXT_42);
+    }
     stringBuffer.append(TEXT_45);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(genModel.getNonNLS(2));
+    stringBuffer.append(genModel.getQualifiedEditorAdvisorClassName());
     stringBuffer.append(TEXT_46);
-    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_47);
+    if (genModel.useInterfaceOverrideAnnotation()){
+    stringBuffer.append(TEXT_42);
     }
     stringBuffer.append(TEXT_48);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_49);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_47);
-    }
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getNonNLS(2));
     stringBuffer.append(TEXT_50);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_47);
+    stringBuffer.append(TEXT_42);
     }
     stringBuffer.append(TEXT_51);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_52);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(genModel.getNonNLS(2));
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_42);
+    }
     stringBuffer.append(TEXT_53);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_42);
+    }
     stringBuffer.append(TEXT_54);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_55);
-    if (!genModel.isRichAjaxPlatform()) {
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getNonNLS(2));
     stringBuffer.append(TEXT_56);
-    }
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_57);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_58);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_59);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_60);
     if (!genModel.isRichAjaxPlatform()) {
-    stringBuffer.append(TEXT_61);
-    stringBuffer.append(genModel.getModelName());
-    stringBuffer.append(TEXT_62);
+    stringBuffer.append(TEXT_59);
     }
+    stringBuffer.append(TEXT_60);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_61);
+    if (genModel.useInterfaceOverrideAnnotation()){
+    stringBuffer.append(TEXT_42);
+    }
+    stringBuffer.append(TEXT_62);
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_63);
-    stringBuffer.append(genModel.getModelName());
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_64);
-    if (genModel.useGenerics()) {
+    if (!genModel.isRichAjaxPlatform()) {
     stringBuffer.append(TEXT_65);
-    } else {
+    stringBuffer.append(genModel.getModelName());
     stringBuffer.append(TEXT_66);
+    if (genModel.useInterfaceOverrideAnnotation()){
+    stringBuffer.append(TEXT_42);
     }
     stringBuffer.append(TEXT_67);
-    if (!genModel.isRichAjaxPlatform()) {
+    }
     stringBuffer.append(TEXT_68);
-    stringBuffer.append(_StringBuilder);
+    stringBuffer.append(genModel.getModelName());
     stringBuffer.append(TEXT_69);
-    stringBuffer.append(_StringBuilder);
+    if (genModel.useInterfaceOverrideAnnotation()){
+    stringBuffer.append(TEXT_42);
+    }
     stringBuffer.append(TEXT_70);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_71);
-    stringBuffer.append(genModel.getNonNLS());
+    } else {
     stringBuffer.append(TEXT_72);
     }
     stringBuffer.append(TEXT_73);
-    stringBuffer.append(genModel.getNonNLS());
+    if (!genModel.isRichAjaxPlatform()) {
     stringBuffer.append(TEXT_74);
-    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(_StringBuilder);
     stringBuffer.append(TEXT_75);
-    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(_StringBuilder);
     stringBuffer.append(TEXT_76);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_47);
-    }
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_77);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_47);
-    }
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_78);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_47);
     }
     stringBuffer.append(TEXT_79);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_80);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_81);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_82);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_42);
+    }
+    stringBuffer.append(TEXT_83);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_42);
+    }
+    stringBuffer.append(TEXT_84);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_42);
+    }
+    stringBuffer.append(TEXT_85);
     genModel.emitSortedImports();
     stringBuffer.append(TEXT_26);
     return stringBuffer.toString();
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/Editor.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/Editor.java
index 010d756..8d7323a 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/Editor.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/Editor.java
@@ -48,353 +48,383 @@
   protected final String TEXT_31 = NL + "import org.eclipse.emf.common.ui.ViewerPane;";
   protected final String TEXT_32 = NL + NL + "import org.eclipse.emf.common.ui.editor.ProblemEditorPart;" + NL + "" + NL + "import org.eclipse.emf.common.ui.viewer.IViewerProvider;" + NL + "" + NL + "import org.eclipse.emf.common.util.BasicDiagnostic;" + NL + "import org.eclipse.emf.common.util.Diagnostic;" + NL + "import org.eclipse.emf.common.util.URI;" + NL;
   protected final String TEXT_33 = NL + "import org.eclipse.emf.ecore.EObject;" + NL + "import org.eclipse.emf.ecore.EValidator;";
-  protected final String TEXT_34 = NL + NL + "import org.eclipse.emf.ecore.resource.Resource;";
-  protected final String TEXT_35 = NL + "import org.eclipse.emf.ecore.resource.ResourceSet;";
-  protected final String TEXT_36 = NL + NL + "import org.eclipse.emf.ecore.util.EContentAdapter;" + NL + "import org.eclipse.emf.ecore.util.EcoreUtil;" + NL + "" + NL + "import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;" + NL + "import org.eclipse.emf.edit.domain.EditingDomain;" + NL + "import org.eclipse.emf.edit.domain.IEditingDomainProvider;" + NL + "" + NL + "import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;" + NL + "import org.eclipse.emf.edit.provider.ComposedAdapterFactory;" + NL + "import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;" + NL + "" + NL + "import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;" + NL + "" + NL + "import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;" + NL + "" + NL + "import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;" + NL + "" + NL + "import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;" + NL + "import org.eclipse.emf.edit.ui.dnd.LocalTransfer;" + NL + "import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;" + NL + "" + NL + "import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;" + NL + "import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;";
-  protected final String TEXT_37 = NL + "import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;";
-  protected final String TEXT_38 = NL + NL + "import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;";
-  protected final String TEXT_39 = NL + "import org.eclipse.emf.edit.ui.util.EditUIUtil;";
-  protected final String TEXT_40 = NL + NL + "import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;" + NL + "" + NL + "import ";
-  protected final String TEXT_41 = ";" + NL;
-  protected final String TEXT_42 = NL + NL + NL + "/**" + NL + " * This is an example of a ";
-  protected final String TEXT_43 = " model editor." + NL + " * <!-- begin-user-doc -->" + NL + " * <!-- end-user-doc -->";
-  protected final String TEXT_44 = NL + " * @generated" + NL + " */";
-  protected final String TEXT_45 = NL + "@Deprecated";
-  protected final String TEXT_46 = NL + "public class ";
-  protected final String TEXT_47 = NL + "\textends MultiPageEditorPart" + NL + "\timplements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider";
-  protected final String TEXT_48 = ", IGotoMarker";
-  protected final String TEXT_49 = ", ";
-  protected final String TEXT_50 = NL + "{";
-  protected final String TEXT_51 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static final ";
-  protected final String TEXT_52 = " copyright = ";
-  protected final String TEXT_53 = ";";
-  protected final String TEXT_54 = NL + "\t/**" + NL + "\t * The filters for file extensions supported by the editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_55 = NL + "\tpublic static final ";
-  protected final String TEXT_56 = " FILE_EXTENSION_FILTERS = prefixExtensions(";
-  protected final String TEXT_57 = ".FILE_EXTENSIONS, \"*.\");";
-  protected final String TEXT_58 = NL + "\t";
-  protected final String TEXT_59 = ".asList(";
-  protected final String TEXT_60 = ".INSTANCE.getString(\"_UI_";
-  protected final String TEXT_61 = "FilenameExtensions\").split(\"\\\\s*,\\\\s*\")), \"*.\");";
-  protected final String TEXT_62 = NL + "\t/**" + NL + "\t * Returns a new unmodifiable list containing prefixed versions of the extensions in the given list." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static ";
-  protected final String TEXT_63 = " prefixExtensions(";
-  protected final String TEXT_64 = " extensions, String prefix)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_65 = " result = new ";
-  protected final String TEXT_66 = "();";
-  protected final String TEXT_67 = NL + "\t\tfor (String extension : extensions)" + NL + "\t\t{" + NL + "\t\t\tresult.add(prefix + extension);";
-  protected final String TEXT_68 = NL + "\t\tfor (Iterator iterator = extensions.iterator() ; iterator.hasNext(); )" + NL + "\t\t{" + NL + "\t\t\tresult.add(prefix + (String)iterator.next());";
-  protected final String TEXT_69 = NL + "\t\t}" + NL + "\t\treturn Collections.unmodifiableList(result);" + NL + "\t}" + NL;
-  protected final String TEXT_70 = NL + "\t/**" + NL + "\t * This keeps track of the editing domain that is used to track all changes to the model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected AdapterFactoryEditingDomain editingDomain;" + NL + "" + NL + "\t/**" + NL + "\t * This is the one adapter factory used for providing views of the model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ComposedAdapterFactory adapterFactory;" + NL + "" + NL + "\t/**" + NL + "\t * This is the content outline page." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IContentOutlinePage contentOutlinePage;" + NL + "" + NL + "\t/**" + NL + "\t * This is a kludge..." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IStatusLineManager contentOutlineStatusLineManager;" + NL + "" + NL + "\t/**" + NL + "\t * This is the content outline page's viewer." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer contentOutlineViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This is the property sheet page." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_71 = " propertySheetPages = new ";
-  protected final String TEXT_72 = "();" + NL + "" + NL + "\t/**" + NL + "\t * This is the viewer that shadows the selection in the content outline." + NL + "\t * The parent relation must be correctly defined for this to work." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer selectionViewer;";
-  protected final String TEXT_73 = NL + NL + "\t/**" + NL + "\t * This inverts the roll of parent and child in the content provider and show parents as a tree." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer parentViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This shows how a tree view works." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer treeViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This shows how a list view works." + NL + "\t * A list viewer doesn't support icons." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ListViewer listViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This shows how a table view works." + NL + "\t * A table can be used as a list with icons." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TableViewer tableViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This shows how a tree view with columns works." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer treeViewerWithColumns;" + NL + "" + NL + "\t/**" + NL + "\t * This keeps track of the active viewer pane, in the book." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ViewerPane currentViewerPane;";
-  protected final String TEXT_74 = NL + NL + "\t/**" + NL + "\t * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected Viewer currentViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This listens to which ever viewer is active." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ISelectionChangedListener selectionChangedListener;" + NL + "" + NL + "\t/**" + NL + "\t * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_75 = " selectionChangedListeners = new ";
-  protected final String TEXT_76 = "();" + NL + "" + NL + "\t/**" + NL + "\t * This keeps track of the selection of the editor as a whole." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ISelection editorSelection = StructuredSelection.EMPTY;" + NL;
-  protected final String TEXT_77 = NL + "\t/**" + NL + "\t * The MarkerHelper is responsible for creating workspace resource markers presented" + NL + "\t * in Eclipse's Problems View." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected MarkerHelper markerHelper = new EditUIMarkerHelper();" + NL;
-  protected final String TEXT_78 = NL + "\t/**" + NL + "\t * This listens for when the outline becomes active" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IPartListener partListener =" + NL + "\t\tnew IPartListener()" + NL + "\t\t{" + NL + "\t\t\tpublic void partActivated(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\tif (p instanceof ContentOutline)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tif (((ContentOutline)p).getCurrentPage() == contentOutlinePage)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tgetActionBarContributor().setActiveEditor(";
+  protected final String TEXT_34 = NL + NL + "import org.eclipse.emf.ecore.resource.Resource;" + NL + "import org.eclipse.emf.ecore.resource.ResourceSet;" + NL + "" + NL + "import org.eclipse.emf.ecore.util.EContentAdapter;" + NL + "import org.eclipse.emf.ecore.util.EcoreUtil;" + NL + "" + NL + "import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;" + NL + "import org.eclipse.emf.edit.domain.EditingDomain;" + NL + "import org.eclipse.emf.edit.domain.IEditingDomainProvider;" + NL + "" + NL + "import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;" + NL + "import org.eclipse.emf.edit.provider.ComposedAdapterFactory;" + NL + "import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;" + NL + "" + NL + "import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;" + NL + "" + NL + "import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;" + NL + "" + NL + "import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;" + NL + "" + NL + "import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;" + NL + "import org.eclipse.emf.edit.ui.dnd.LocalTransfer;" + NL + "import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;" + NL + "" + NL + "import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;" + NL + "import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;";
+  protected final String TEXT_35 = NL + "import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;";
+  protected final String TEXT_36 = NL + NL + "import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;";
+  protected final String TEXT_37 = NL + "import org.eclipse.emf.edit.ui.util.EditUIUtil;";
+  protected final String TEXT_38 = NL + NL + "import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;" + NL + "" + NL + "import ";
+  protected final String TEXT_39 = ";" + NL;
+  protected final String TEXT_40 = NL + NL + NL + "/**" + NL + " * This is an example of a ";
+  protected final String TEXT_41 = " model editor." + NL + " * <!-- begin-user-doc -->" + NL + " * <!-- end-user-doc -->";
+  protected final String TEXT_42 = NL + " * @generated" + NL + " */";
+  protected final String TEXT_43 = NL + "@Deprecated";
+  protected final String TEXT_44 = NL + "public class ";
+  protected final String TEXT_45 = NL + "\textends MultiPageEditorPart" + NL + "\timplements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider";
+  protected final String TEXT_46 = ", IGotoMarker";
+  protected final String TEXT_47 = ", ";
+  protected final String TEXT_48 = NL + "{";
+  protected final String TEXT_49 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static final ";
+  protected final String TEXT_50 = " copyright = ";
+  protected final String TEXT_51 = ";";
+  protected final String TEXT_52 = NL + "\t/**" + NL + "\t * The filters for file extensions supported by the editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_53 = NL + "\tpublic static final ";
+  protected final String TEXT_54 = " FILE_EXTENSION_FILTERS = prefixExtensions(";
+  protected final String TEXT_55 = ".FILE_EXTENSIONS, \"*.\");";
+  protected final String TEXT_56 = NL + "\t";
+  protected final String TEXT_57 = ".asList(";
+  protected final String TEXT_58 = ".INSTANCE.getString(\"_UI_";
+  protected final String TEXT_59 = "FilenameExtensions\").split(\"\\\\s*,\\\\s*\")), \"*.\");";
+  protected final String TEXT_60 = NL + "\t/**" + NL + "\t * Returns a new unmodifiable list containing prefixed versions of the extensions in the given list." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static ";
+  protected final String TEXT_61 = " prefixExtensions(";
+  protected final String TEXT_62 = " extensions, String prefix)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_63 = " result = new ";
+  protected final String TEXT_64 = "();";
+  protected final String TEXT_65 = NL + "\t\tfor (String extension : extensions)" + NL + "\t\t{" + NL + "\t\t\tresult.add(prefix + extension);";
+  protected final String TEXT_66 = NL + "\t\tfor (Iterator iterator = extensions.iterator() ; iterator.hasNext(); )" + NL + "\t\t{" + NL + "\t\t\tresult.add(prefix + (String)iterator.next());";
+  protected final String TEXT_67 = NL + "\t\t}" + NL + "\t\treturn Collections.unmodifiableList(result);" + NL + "\t}" + NL;
+  protected final String TEXT_68 = NL + "\t/**" + NL + "\t * This keeps track of the editing domain that is used to track all changes to the model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected AdapterFactoryEditingDomain editingDomain;" + NL + "" + NL + "\t/**" + NL + "\t * This is the one adapter factory used for providing views of the model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ComposedAdapterFactory adapterFactory;" + NL + "" + NL + "\t/**" + NL + "\t * This is the content outline page." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IContentOutlinePage contentOutlinePage;" + NL + "" + NL + "\t/**" + NL + "\t * This is a kludge..." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IStatusLineManager contentOutlineStatusLineManager;" + NL + "" + NL + "\t/**" + NL + "\t * This is the content outline page's viewer." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer contentOutlineViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This is the property sheet page." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_69 = " propertySheetPages = new ";
+  protected final String TEXT_70 = "();" + NL + "" + NL + "\t/**" + NL + "\t * This is the viewer that shadows the selection in the content outline." + NL + "\t * The parent relation must be correctly defined for this to work." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer selectionViewer;";
+  protected final String TEXT_71 = NL + NL + "\t/**" + NL + "\t * This inverts the roll of parent and child in the content provider and show parents as a tree." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer parentViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This shows how a tree view works." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer treeViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This shows how a list view works." + NL + "\t * A list viewer doesn't support icons." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ListViewer listViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This shows how a table view works." + NL + "\t * A table can be used as a list with icons." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TableViewer tableViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This shows how a tree view with columns works." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected TreeViewer treeViewerWithColumns;" + NL + "" + NL + "\t/**" + NL + "\t * This keeps track of the active viewer pane, in the book." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ViewerPane currentViewerPane;";
+  protected final String TEXT_72 = NL + NL + "\t/**" + NL + "\t * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected Viewer currentViewer;" + NL + "" + NL + "\t/**" + NL + "\t * This listens to which ever viewer is active." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ISelectionChangedListener selectionChangedListener;" + NL + "" + NL + "\t/**" + NL + "\t * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_73 = " selectionChangedListeners = new ";
+  protected final String TEXT_74 = "();" + NL + "" + NL + "\t/**" + NL + "\t * This keeps track of the selection of the editor as a whole." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ISelection editorSelection = StructuredSelection.EMPTY;" + NL;
+  protected final String TEXT_75 = NL + "\t/**" + NL + "\t * The MarkerHelper is responsible for creating workspace resource markers presented" + NL + "\t * in Eclipse's Problems View." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected MarkerHelper markerHelper = new EditUIMarkerHelper();" + NL;
+  protected final String TEXT_76 = NL + "\t/**" + NL + "\t * This listens for when the outline becomes active" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IPartListener partListener =" + NL + "\t\tnew IPartListener()" + NL + "\t\t{";
+  protected final String TEXT_77 = NL + "\t\t\t@Override";
+  protected final String TEXT_78 = NL + "\t\t\tpublic void partActivated(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\tif (p instanceof ContentOutline)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tif (((ContentOutline)p).getCurrentPage() == contentOutlinePage)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tgetActionBarContributor().setActiveEditor(";
   protected final String TEXT_79 = ".this);" + NL + "" + NL + "\t\t\t\t\t\tsetCurrentViewer(contentOutlineViewer);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse if (p instanceof PropertySheet)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tif (propertySheetPages.contains(((PropertySheet)p).getCurrentPage()))" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tgetActionBarContributor().setActiveEditor(";
   protected final String TEXT_80 = ".this);" + NL + "\t\t\t\t\t\thandleActivate();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse if (p == ";
-  protected final String TEXT_81 = ".this)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\thandleActivate();" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\tpublic void partBroughtToTop(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore." + NL + "\t\t\t}" + NL + "\t\t\tpublic void partClosed(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore." + NL + "\t\t\t}" + NL + "\t\t\tpublic void partDeactivated(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore." + NL + "\t\t\t}" + NL + "\t\t\tpublic void partOpened(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore." + NL + "\t\t\t}" + NL + "\t\t};" + NL + "" + NL + "\t/**" + NL + "\t * Resources that have been removed since last activation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_82 = " removedResources = new ";
-  protected final String TEXT_83 = "();" + NL + "" + NL + "\t/**" + NL + "\t * Resources that have been changed since last activation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_84 = " changedResources = new ";
-  protected final String TEXT_85 = "();" + NL + "" + NL + "\t/**" + NL + "\t * Resources that have been saved." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_86 = " savedResources = new ";
-  protected final String TEXT_87 = "();" + NL + "" + NL + "\t/**" + NL + "\t * Map to store the diagnostic associated with a resource." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_88 = " resourceToDiagnosticMap = new ";
-  protected final String TEXT_89 = "();" + NL + "" + NL + "\t/**" + NL + "\t * Controls whether the problem indication should be updated." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean updateProblemIndication = true;" + NL + "" + NL + "\t/**" + NL + "\t * Adapter used to update the problem indication when resources are demanded loaded." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected EContentAdapter problemIndicationAdapter =" + NL + "\t\tnew EContentAdapter()" + NL + "\t\t{" + NL + "\t\t\tprotected boolean dispatching;" + NL;
-  protected final String TEXT_90 = NL + "\t\t\t@Override";
-  protected final String TEXT_91 = NL + "\t\t\tpublic void notifyChanged(Notification notification)" + NL + "\t\t\t{" + NL + "\t\t\t\tif (notification.getNotifier() instanceof Resource)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tswitch (notification.getFeatureID(Resource.class))" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tcase Resource.RESOURCE__IS_LOADED:" + NL + "\t\t\t\t\t\tcase Resource.RESOURCE__ERRORS:" + NL + "\t\t\t\t\t\tcase Resource.RESOURCE__WARNINGS:" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tResource resource = (Resource)notification.getNotifier();" + NL + "\t\t\t\t\t\t\tDiagnostic diagnostic = analyzeResourceProblems(resource, null);" + NL + "\t\t\t\t\t\t\tif (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tresourceToDiagnosticMap.put(resource, diagnostic);" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\telse" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tresourceToDiagnosticMap.remove(resource);" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tdispatchUpdateProblemIndication();" + NL + "\t\t\t\t\t\t\tbreak;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.notifyChanged(notification);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected void dispatchUpdateProblemIndication()" + NL + "\t\t\t{" + NL + "\t\t\t\tif (updateProblemIndication && !dispatching)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tdispatching = true;" + NL + "\t\t\t\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t\t\t\t(new Runnable()" + NL + "\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t dispatching = false;" + NL + "\t\t\t\t\t\t\t\t updateProblemIndication();" + NL + "\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t });" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL;
-  protected final String TEXT_92 = NL + "\t\t\tprotected void setTarget(Resource target)" + NL + "\t\t\t{" + NL + "\t\t\t\tbasicSetTarget(target);" + NL + "\t\t\t}" + NL;
-  protected final String TEXT_93 = NL + "\t\t\tprotected void unsetTarget(Resource target)" + NL + "\t\t\t{" + NL + "\t\t\t\tbasicUnsetTarget(target);" + NL + "\t\t\t\tresourceToDiagnosticMap.remove(target);" + NL + "\t\t\t\tdispatchUpdateProblemIndication();" + NL + "\t\t\t}" + NL + "\t\t};";
-  protected final String TEXT_94 = NL + NL + "\t/**" + NL + "\t * This listens for workspace changes." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IResourceChangeListener resourceChangeListener =" + NL + "\t\tnew IResourceChangeListener()" + NL + "\t\t{" + NL + "\t\t\tpublic void resourceChanged(IResourceChangeEvent event)" + NL + "\t\t\t{" + NL + "\t\t\t\tIResourceDelta delta = event.getDelta();" + NL + "\t\t\t\ttry" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tclass ResourceDeltaVisitor implements IResourceDeltaVisitor" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tprotected ResourceSet resourceSet = editingDomain.getResourceSet();" + NL + "\t\t\t\t\t\tprotected ";
-  protected final String TEXT_95 = "();" + NL + "\t\t\t\t\t\tprotected ";
-  protected final String TEXT_96 = "();" + NL + "" + NL + "\t\t\t\t\t\tpublic boolean visit(";
-  protected final String TEXT_97 = "final ";
-  protected final String TEXT_98 = "IResourceDelta delta)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tif (delta.getResource().getType() == IResource.FILE)" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tif (delta.getKind() == IResourceDelta.REMOVED ||" + NL + "\t\t\t\t\t\t\t\t    delta.getKind() == IResourceDelta.CHANGED";
-  protected final String TEXT_99 = " && delta.getFlags() != IResourceDelta.MARKERS";
-  protected final String TEXT_100 = ")" + NL + "\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t";
-  protected final String TEXT_101 = "Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);" + NL + "\t\t\t\t\t\t\t\t\tif (resource != null)" + NL + "\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\tif (delta.getKind() == IResourceDelta.REMOVED)" + NL + "\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\tremovedResources.add(resource);" + NL + "\t\t\t\t\t\t\t\t\t\t}";
-  protected final String TEXT_102 = NL + "\t\t\t\t\t\t\t\t\t\telse if (!savedResources.remove(resource))" + NL + "\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\tchangedResources.add(resource);" + NL + "\t\t\t\t\t\t\t\t\t\t}";
-  protected final String TEXT_103 = NL + "\t\t\t\t\t\t\t\t\t\telse" + NL + "\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\tif ((delta.getFlags() & IResourceDelta.MARKERS) != 0)" + NL + "\t\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\t\t";
-  protected final String TEXT_104 = ".DiagnosticAdapter.update(resource, markerHelper.getMarkerDiagnostics(resource, (IFile)delta.getResource()";
-  protected final String TEXT_105 = ", false";
-  protected final String TEXT_106 = "));" + NL + "\t\t\t\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\t\t\t\tif ((delta.getFlags() & IResourceDelta.CONTENT) != 0)" + NL + "\t\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\t\tif (!savedResources.remove(resource))" + NL + "\t\t\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\t\t\tchangedResources.add(resource);" + NL + "\t\t\t\t\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\t\t\t}";
-  protected final String TEXT_107 = NL + "\t\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\treturn false;" + NL + "\t\t\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t\t\treturn true;" + NL + "\t\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t\tpublic ";
-  protected final String TEXT_108 = " getChangedResources()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn changedResources;" + NL + "\t\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t\tpublic ";
-  protected final String TEXT_109 = " getRemovedResources()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn removedResources;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\tfinal ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();" + NL + "\t\t\t\t\tdelta.accept(visitor);" + NL + "" + NL + "\t\t\t\t\tif (!visitor.getRemovedResources().isEmpty())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t\t\t\t\t(new Runnable()" + NL + "\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t\t removedResources.addAll(visitor.getRemovedResources());" + NL + "\t\t\t\t\t\t\t\t\t if (!isDirty())" + NL + "\t\t\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t\t\t getSite().getPage().closeEditor(";
-  protected final String TEXT_110 = ".this, false);" + NL + "\t\t\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t\t });" + NL + "\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\tif (!visitor.getChangedResources().isEmpty())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t\t\t\t\t(new Runnable()" + NL + "\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t\t changedResources.addAll(visitor.getChangedResources());" + NL + "\t\t\t\t\t\t\t\t\t if (getSite().getPage().getActiveEditor() == ";
-  protected final String TEXT_111 = ".this)" + NL + "\t\t\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t\t\t handleActivate();" + NL + "\t\t\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t\t });" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (CoreException exception)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_112 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t};";
-  protected final String TEXT_113 = NL + NL + "\t/**" + NL + "\t * Handles activation of the editor or it's associated views." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void handleActivate()" + NL + "\t{" + NL + "\t\t// Recompute the read only state." + NL + "\t\t//" + NL + "\t\tif (editingDomain.getResourceToReadOnlyMap() != null)" + NL + "\t\t{" + NL + "\t\t  editingDomain.getResourceToReadOnlyMap().clear();" + NL + "" + NL + "\t\t  // Refresh any actions that may become enabled or disabled." + NL + "\t\t  //" + NL + "\t\t  setSelection(getSelection());" + NL + "\t\t}" + NL + "" + NL + "\t\tif (!removedResources.isEmpty())" + NL + "\t\t{" + NL + "\t\t\tif (handleDirtyConflict())" + NL + "\t\t\t{" + NL + "\t\t\t\tgetSite().getPage().closeEditor(";
-  protected final String TEXT_114 = ".this, false);" + NL + "\t\t\t}" + NL + "\t\t\telse" + NL + "\t\t\t{" + NL + "\t\t\t\tremovedResources.clear();" + NL + "\t\t\t\tchangedResources.clear();" + NL + "\t\t\t\tsavedResources.clear();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\telse if (!changedResources.isEmpty())" + NL + "\t\t{" + NL + "\t\t\tchangedResources.removeAll(savedResources);" + NL + "\t\t\thandleChangedResources();" + NL + "\t\t\tchangedResources.clear();" + NL + "\t\t\tsavedResources.clear();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Handles what to do with changed resources on activation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void handleChangedResources()" + NL + "\t{" + NL + "\t\tif (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict()))" + NL + "\t\t{" + NL + "\t\t\tResourceSet resourceSet = editingDomain.getResourceSet();" + NL + "\t\t\tif (isDirty())" + NL + "\t\t\t{" + NL + "\t\t\t\tchangedResources.addAll(resourceSet.getResources());" + NL + "\t\t\t}" + NL + "\t\t\teditingDomain.getCommandStack().flush();" + NL + "" + NL + "\t\t\tupdateProblemIndication = false;";
-  protected final String TEXT_115 = NL + "\t\t\tfor (Resource resource : changedResources)";
-  protected final String TEXT_116 = NL + "\t\t\tfor (Iterator i = changedResources.iterator(); i.hasNext(); )";
-  protected final String TEXT_117 = NL + "\t\t\t{";
-  protected final String TEXT_118 = NL + "\t\t\t\tResource resource = (Resource)i.next();";
-  protected final String TEXT_119 = NL + "\t\t\t\tif (resource.isLoaded())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tresource.unload();" + NL + "\t\t\t\t\ttry" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tresource.load(resourceSet.getLoadOptions());" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tcatch (IOException exception)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tif (!resourceToDiagnosticMap.containsKey(resource))" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tresourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL;
-  protected final String TEXT_120 = NL + "\t\t\tif (AdapterFactoryEditingDomain.isStale(editorSelection))" + NL + "\t\t\t{" + NL + "\t\t\t\tsetSelection(StructuredSelection.EMPTY);" + NL + "\t\t\t}";
-  protected final String TEXT_121 = NL + NL + "\t\t\tupdateProblemIndication = true;" + NL + "\t\t\tupdateProblemIndication();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Updates the problems indication with the information described in the specified diagnostic." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void updateProblemIndication()" + NL + "\t{" + NL + "\t\tif (updateProblemIndication)" + NL + "\t\t{" + NL + "\t\t\tBasicDiagnostic diagnostic =" + NL + "\t\t\t\tnew BasicDiagnostic" + NL + "\t\t\t\t\t(Diagnostic.OK," + NL + "\t\t\t\t\t \"";
-  protected final String TEXT_122 = "\",";
-  protected final String TEXT_123 = NL + "\t\t\t\t\t 0," + NL + "\t\t\t\t\t null," + NL + "\t\t\t\t\t new Object [] { editingDomain.getResourceSet() });";
-  protected final String TEXT_124 = NL + "\t\t\tfor (Diagnostic childDiagnostic : resourceToDiagnosticMap.values())";
-  protected final String TEXT_125 = NL + "\t\t\tfor (Iterator i = resourceToDiagnosticMap.values().iterator(); i.hasNext(); )";
-  protected final String TEXT_126 = NL + "\t\t\t\tDiagnostic childDiagnostic = (Diagnostic)i.next();";
-  protected final String TEXT_127 = NL + "\t\t\t\tif (childDiagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tdiagnostic.add(childDiagnostic);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tint lastEditorPage = getPageCount() - 1;" + NL + "\t\t\tif (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart)" + NL + "\t\t\t{" + NL + "\t\t\t\t((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);" + NL + "\t\t\t\tif (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsetActivePage(lastEditorPage);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\telse if (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t{" + NL + "\t\t\t\tProblemEditorPart problemEditorPart = new ProblemEditorPart();" + NL + "\t\t\t\tproblemEditorPart.setDiagnostic(diagnostic);";
-  protected final String TEXT_128 = NL + "\t\t\t\tproblemEditorPart.setMarkerHelper(markerHelper);";
-  protected final String TEXT_129 = NL + "\t\t\t\ttry" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\taddPage(++lastEditorPage, problemEditorPart, getEditorInput());" + NL + "\t\t\t\t\tsetPageText(lastEditorPage, problemEditorPart.getPartName());" + NL + "\t\t\t\t\tsetActivePage(lastEditorPage);" + NL + "\t\t\t\t\tshowTabs();" + NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (PartInitException exception)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_130 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t}" + NL + "\t\t\t}";
-  protected final String TEXT_131 = NL + NL + "\t\t\tif (markerHelper.hasMarkers(editingDomain.getResourceSet()))" + NL + "\t\t\t{";
-  protected final String TEXT_132 = NL + "\t\t\t\tmarkerHelper.deleteMarkers(editingDomain.getResourceSet());" + NL + "\t\t\t\tif (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\ttry" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tmarkerHelper.createMarkers(diagnostic);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tcatch (CoreException exception)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\t";
-  protected final String TEXT_133 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}";
-  protected final String TEXT_134 = NL + "\t\t\t\ttry" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmarkerHelper.updateMarkers(diagnostic);" + NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (CoreException exception)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_135 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t}";
-  protected final String TEXT_136 = NL + "\t\t\t}";
-  protected final String TEXT_137 = NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Shows a dialog that asks if conflicting changes should be discarded." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean handleDirtyConflict()" + NL + "\t{" + NL + "\t\treturn" + NL + "\t\t\tMessageDialog.openQuestion" + NL + "\t\t\t\t(getSite().getShell()," + NL + "\t\t\t\t getString(\"_UI_FileConflict_label\"),";
-  protected final String TEXT_138 = NL + "\t\t\t\t getString(\"_WARN_FileConflict\"));";
-  protected final String TEXT_139 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This creates a model editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_140 = "()" + NL + "\t{" + NL + "\t\tsuper();" + NL + "\t\tinitializeEditingDomain();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This sets up the editing domain for the model editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void initializeEditingDomain()" + NL + "\t{" + NL + "\t\t// Create an adapter factory that yields item providers." + NL + "\t\t//" + NL + "\t\tadapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);" + NL + "" + NL + "\t\tadapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());";
-  protected final String TEXT_141 = NL + "\t\tadapterFactory.addAdapterFactory(new ";
-  protected final String TEXT_142 = "());";
-  protected final String TEXT_143 = NL + "\t\tadapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());" + NL + "" + NL + "\t\t// Create the command stack that will notify this editor as commands are executed." + NL + "\t\t//";
-  protected final String TEXT_144 = NL + "\t\tBasicCommandStack commandStack = new BasicCommandStack();";
-  protected final String TEXT_145 = NL + "\t\tBasicCommandStack commandStack =" + NL + "\t\t\tnew BasicCommandStack()" + NL + "\t\t\t{";
-  protected final String TEXT_146 = NL + "\t\t\t\t@Override";
-  protected final String TEXT_147 = NL + "\t\t\t\tpublic void execute(Command command)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t// Cancel live validation before executing a command that will trigger a new round of validation." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tif (!(command instanceof ";
-  protected final String TEXT_148 = ".NonDirtying))" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\t";
-  protected final String TEXT_149 = ".cancel(editingDomain);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tsuper.execute(command);" + NL + "\t\t\t\t}" + NL + "\t\t\t};";
-  protected final String TEXT_150 = NL + NL + "\t\t// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus." + NL + "\t\t//" + NL + "\t\tcommandStack.addCommandStackListener" + NL + "\t\t\t(new CommandStackListener()" + NL + "\t\t\t {" + NL + "\t\t\t\t public void commandStackChanged(final EventObject event)" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t getContainer().getDisplay().asyncExec" + NL + "\t\t\t\t\t\t (new Runnable()" + NL + "\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t  public void run()" + NL + "\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t  firePropertyChange(IEditorPart.PROP_DIRTY);" + NL + "" + NL + "\t\t\t\t\t\t\t\t  // Try to select the affected objects." + NL + "\t\t\t\t\t\t\t\t  //" + NL + "\t\t\t\t\t\t\t\t  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();" + NL + "\t\t\t\t\t\t\t\t  if (mostRecentCommand != null)" + NL + "\t\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t\t  setSelectionToViewer(mostRecentCommand.getAffectedObjects());" + NL + "\t\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t\t\t  for (Iterator";
-  protected final String TEXT_151 = "<PropertySheetPage>";
-  protected final String TEXT_152 = " i = propertySheetPages.iterator(); i.hasNext(); )" + NL + "\t\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t\t  PropertySheetPage propertySheetPage = ";
-  protected final String TEXT_153 = "(PropertySheetPage)";
-  protected final String TEXT_154 = "i.next();" + NL + "\t\t\t\t\t\t\t\t\t  if (propertySheetPage.getControl().isDisposed())" + NL + "\t\t\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t\t\t  i.remove();" + NL + "\t\t\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t\t\t\t  else" + NL + "\t\t\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t\t\t  propertySheetPage.refresh();" + NL + "\t\t\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t  });" + NL + "\t\t\t\t }" + NL + "\t\t\t });" + NL + "" + NL + "\t\t// Create the editing domain with a special command stack." + NL + "\t\t//" + NL + "\t\teditingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new ";
-  protected final String TEXT_155 = "());" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is here for the listener to be able to call it." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_156 = NL + "\tprotected void firePropertyChange(int action)" + NL + "\t{" + NL + "\t\tsuper.firePropertyChange(action);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This sets the selection into whichever viewer is active." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setSelectionToViewer(";
-  protected final String TEXT_157 = " collection)" + NL + "\t{" + NL + "\t\tfinal ";
-  protected final String TEXT_158 = " theSelection = collection;" + NL + "\t\t// Make sure it's okay." + NL + "\t\t//" + NL + "\t\tif (theSelection != null && !theSelection.isEmpty())" + NL + "\t\t{" + NL + "\t\t\tRunnable runnable =" + NL + "\t\t\t\tnew Runnable()" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tpublic void run()" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\t// Try to select the items in the current content viewer of the editor." + NL + "\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\tif (currentViewer != null)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tcurrentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\tgetSite().getShell().getDisplay().asyncExec(runnable);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This returns the editing domain as required by the {@link IEditingDomainProvider} interface." + NL + "\t * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}" + NL + "\t * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic EditingDomain getEditingDomain()" + NL + "\t{" + NL + "\t\treturn editingDomain;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory)" + NL + "\t\t{" + NL + "\t\t\tsuper(adapterFactory);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_159 = NL + "\t\t@Override";
-  protected final String TEXT_160 = NL + "\t\tpublic Object [] getElements(Object object)" + NL + "\t\t{" + NL + "\t\t\tObject parent = super.getParent(object);" + NL + "\t\t\treturn (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_161 = NL + "\t\tpublic Object [] getChildren(Object object)" + NL + "\t\t{" + NL + "\t\t\tObject parent = super.getParent(object);" + NL + "\t\t\treturn (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_162 = NL + "\t\tpublic boolean hasChildren(Object object)" + NL + "\t\t{" + NL + "\t\t\tObject parent = super.getParent(object);" + NL + "\t\t\treturn parent != null;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_163 = NL + "\t\tpublic Object getParent(Object object)" + NL + "\t\t{" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t}";
-  protected final String TEXT_164 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setCurrentViewerPane(ViewerPane viewerPane)" + NL + "\t{" + NL + "\t\tif (currentViewerPane != viewerPane)" + NL + "\t\t{" + NL + "\t\t\tif (currentViewerPane != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcurrentViewerPane.showFocus(false);" + NL + "\t\t\t}" + NL + "\t\t\tcurrentViewerPane = viewerPane;" + NL + "\t\t}" + NL + "\t\tsetCurrentViewer(currentViewerPane.getViewer());" + NL + "\t}";
-  protected final String TEXT_165 = NL + NL + "\t/**" + NL + "\t * This makes sure that one content viewer, either for the current page or the outline view, if it has focus," + NL + "\t * is the current one." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setCurrentViewer(Viewer viewer)" + NL + "\t{" + NL + "\t\t// If it is changing..." + NL + "\t\t//" + NL + "\t\tif (currentViewer != viewer)" + NL + "\t\t{" + NL + "\t\t\tif (selectionChangedListener == null)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Create the listener on demand." + NL + "\t\t\t\t//" + NL + "\t\t\t\tselectionChangedListener =" + NL + "\t\t\t\t\tnew ISelectionChangedListener()" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\t// This just notifies those things that are affected by the section." + NL + "\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\tpublic void selectionChanged(SelectionChangedEvent selectionChangedEvent)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsetSelection(selectionChangedEvent.getSelection());" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Stop listening to the old one." + NL + "\t\t\t//" + NL + "\t\t\tif (currentViewer != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcurrentViewer.removeSelectionChangedListener(selectionChangedListener);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Start listening to the new one." + NL + "\t\t\t//" + NL + "\t\t\tif (viewer != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tviewer.addSelectionChangedListener(selectionChangedListener);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Remember it." + NL + "\t\t\t//" + NL + "\t\t\tcurrentViewer = viewer;" + NL + "" + NL + "\t\t\t// Set the editors selection based on the current viewer's selection." + NL + "\t\t\t//" + NL + "\t\t\tsetSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This returns the viewer as required by the {@link IViewerProvider} interface." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Viewer getViewer()" + NL + "\t{" + NL + "\t\treturn currentViewer;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This creates a context menu for the viewer and adds a listener as well registering the menu for extension." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createContextMenuFor(StructuredViewer viewer)" + NL + "\t{" + NL + "\t\tMenuManager contextMenu = new MenuManager(\"#PopUp\");";
-  protected final String TEXT_166 = NL + "\t\tcontextMenu.add(new Separator(\"additions\"));";
-  protected final String TEXT_167 = NL + "\t\tcontextMenu.setRemoveAllWhenShown(true);" + NL + "\t\tcontextMenu.addMenuListener(this);" + NL + "\t\tMenu menu= contextMenu.createContextMenu(viewer.getControl());" + NL + "\t\tviewer.getControl().setMenu(menu);";
-  protected final String TEXT_168 = NL + "\t\tgetSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));";
-  protected final String TEXT_169 = NL + "\t\tgetSite().registerContextMenu(contextMenu, viewer);";
-  protected final String TEXT_170 = NL + NL + "\t\tint dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;" + NL + "\t\tTransfer[] transfers = new Transfer[] { LocalTransfer.getInstance()";
-  protected final String TEXT_171 = ", LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance()";
-  protected final String TEXT_172 = " };" + NL + "\t\tviewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));" + NL + "\t\tviewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is the method called to load a resource into the editing domain's resource set based on the editor's input." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void createModel()" + NL + "\t{";
-  protected final String TEXT_173 = NL + "\t\tURI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter());";
-  protected final String TEXT_174 = NL + "\t\tURI resourceURI = EditUIUtil.getURI(getEditorInput());";
-  protected final String TEXT_175 = NL + "\t\tURI resourceURI = URI.createURI(getEditorInput().getName());";
-  protected final String TEXT_176 = NL + "\t\t// Assumes that the input is a file object." + NL + "\t\t//" + NL + "\t\tIFileEditorInput modelFile = (IFileEditorInput)getEditorInput();" + NL + "\t\tURI resourceURI = URI.createPlatformResourceURI(modelFile.getFile().getFullPath().toString(), true);";
-  protected final String TEXT_177 = NL + "\t\tException exception = null;" + NL + "\t\tResource resource = null;" + NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\t// Load the resource through the editing domain." + NL + "\t\t\t//" + NL + "\t\t\tresource = editingDomain.getResourceSet().getResource(resourceURI, true);" + NL + "\t\t}" + NL + "\t\tcatch (Exception e)" + NL + "\t\t{" + NL + "\t\t\texception = e;" + NL + "\t\t\tresource = editingDomain.getResourceSet().getResource(resourceURI, false);" + NL + "\t\t}" + NL + "" + NL + "\t\tDiagnostic diagnostic = analyzeResourceProblems(resource, exception);" + NL + "\t\tif (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t{" + NL + "\t\t\tresourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));" + NL + "\t\t}" + NL + "\t\teditingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Returns a diagnostic describing the errors and warnings listed in the resource" + NL + "\t * and the specified exception (if any)." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Diagnostic analyzeResourceProblems(Resource resource, Exception exception)" + NL + "\t{" + NL + "\t\tboolean hasErrors = !resource.getErrors().isEmpty();" + NL + "\t\tif (hasErrors || !resource.getWarnings().isEmpty())" + NL + "\t\t{" + NL + "\t\t\tBasicDiagnostic basicDiagnostic =" + NL + "\t\t\t\tnew BasicDiagnostic" + NL + "\t\t\t\t\t(hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING," + NL + "\t\t\t\t\t \"";
-  protected final String TEXT_178 = NL + "\t\t\t\t\t 0," + NL + "\t\t\t\t\t getString(\"_UI_CreateModelError_message\", resource.getURI()),";
-  protected final String TEXT_179 = NL + "\t\t\t\t\t new Object [] { exception == null ? (Object)resource : exception });" + NL + "\t\t\tbasicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));" + NL + "\t\t\treturn basicDiagnostic;" + NL + "\t\t}" + NL + "\t\telse if (exception != null)" + NL + "\t\t{" + NL + "\t\t\treturn" + NL + "\t\t\t\tnew BasicDiagnostic" + NL + "\t\t\t\t\t(Diagnostic.ERROR," + NL + "\t\t\t\t\t \"";
-  protected final String TEXT_180 = NL + "\t\t\t\t\t new Object[] { exception });" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\treturn Diagnostic.OK_INSTANCE;" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is the method used by the framework to install your own controls." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_181 = NL + "\t@Override";
-  protected final String TEXT_182 = NL + "\tpublic void createPages()" + NL + "\t{" + NL + "\t\t// Creates the model from the editor input" + NL + "\t\t//" + NL + "\t\tcreateModel();" + NL + "" + NL + "\t\t// Only creates the other pages if there is something that can be edited" + NL + "\t\t//" + NL + "\t\tif (!getEditingDomain().getResourceSet().getResources().isEmpty())" + NL + "\t\t{" + NL + "\t\t\t// Create a page for the selection tree view." + NL + "\t\t\t//";
-  protected final String TEXT_183 = NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
-  protected final String TEXT_184 = ".this)" + NL + "\t\t\t\t\t{";
-  protected final String TEXT_185 = NL + "\t\t\t\t\t\t@Override";
-  protected final String TEXT_186 = NL + "\t\t\t\t\t\tpublic Viewer createViewer(Composite composite)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tTree tree = new Tree(composite, SWT.MULTI);" + NL + "\t\t\t\t\t\t\tTreeViewer newTreeViewer = new TreeViewer(tree);" + NL + "\t\t\t\t\t\t\treturn newTreeViewer;" + NL + "\t\t\t\t\t\t}";
-  protected final String TEXT_187 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "" + NL + "\t\t\t\tselectionViewer = (TreeViewer)viewerPane.getViewer();" + NL + "\t\t\t\tselectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\tselectionViewer.setUseHashlookup(true);" + NL + "" + NL + "\t\t\t\tselectionViewer.setLabelProvider(";
-  protected final String TEXT_188 = "new ";
-  protected final String TEXT_189 = "(";
-  protected final String TEXT_190 = "(adapterFactory";
-  protected final String TEXT_191 = ", selectionViewer";
-  protected final String TEXT_192 = ")";
-  protected final String TEXT_193 = ", new ";
-  protected final String TEXT_194 = "(editingDomain";
-  protected final String TEXT_195 = ".getResourceSet()";
-  protected final String TEXT_196 = ".getPlugin().getDialogSettings()";
-  protected final String TEXT_197 = "))";
-  protected final String TEXT_198 = ");" + NL + "\t\t\t\tselectionViewer.setInput(editingDomain.getResourceSet());" + NL + "\t\t\t\tselectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);" + NL + "\t\t\t\tviewerPane.setTitle(editingDomain.getResourceSet());" + NL + "" + NL + "\t\t\t\tnew AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);";
-  protected final String TEXT_199 = NL + "\t\t\t\tnew ";
-  protected final String TEXT_200 = "(selectionViewer, new ";
-  protected final String TEXT_201 = ".EditingDomainLocationListener(editingDomain, selectionViewer));";
-  protected final String TEXT_202 = NL + NL + "\t\t\t\tcreateContextMenuFor(selectionViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_SelectionPage_label\"));";
-  protected final String TEXT_203 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Create a page for the parent tree view." + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
-  protected final String TEXT_204 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "" + NL + "\t\t\t\tparentViewer = (TreeViewer)viewerPane.getViewer();" + NL + "\t\t\t\tparentViewer.setAutoExpandLevel(30);" + NL + "\t\t\t\tparentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\tparentViewer.setLabelProvider(";
-  protected final String TEXT_205 = ", parentViewer";
-  protected final String TEXT_206 = ");" + NL + "" + NL + "\t\t\t\tcreateContextMenuFor(parentViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_ParentPage_label\"));";
-  protected final String TEXT_207 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// This is the page for the list viewer" + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
-  protected final String TEXT_208 = NL + "\t\t\t\t\t\tpublic Viewer createViewer(Composite composite)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn new ListViewer(composite);" + NL + "\t\t\t\t\t\t}";
-  protected final String TEXT_209 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "\t\t\t\tlistViewer = (ListViewer)viewerPane.getViewer();" + NL + "\t\t\t\tlistViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\tlistViewer.setLabelProvider(";
-  protected final String TEXT_210 = ", listViewer";
-  protected final String TEXT_211 = ");" + NL + "" + NL + "\t\t\t\tcreateContextMenuFor(listViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_ListPage_label\"));";
-  protected final String TEXT_212 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// This is the page for the tree viewer" + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
-  protected final String TEXT_213 = NL + "\t\t\t\t\t\tpublic Viewer createViewer(Composite composite)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn new TreeViewer(composite);" + NL + "\t\t\t\t\t\t}";
-  protected final String TEXT_214 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "\t\t\t\ttreeViewer = (TreeViewer)viewerPane.getViewer();" + NL + "\t\t\t\ttreeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\ttreeViewer.setLabelProvider(";
-  protected final String TEXT_215 = ", treeViewer";
-  protected final String TEXT_216 = ", treeViewer))";
-  protected final String TEXT_217 = ");" + NL + "" + NL + "\t\t\t\tnew AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);";
-  protected final String TEXT_218 = "(treeViewer, new ";
-  protected final String TEXT_219 = ".EditingDomainLocationListener(editingDomain, treeViewer));";
-  protected final String TEXT_220 = NL + NL + "\t\t\t\tcreateContextMenuFor(treeViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_TreePage_label\"));";
-  protected final String TEXT_221 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// This is the page for the table viewer." + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
-  protected final String TEXT_222 = NL + "\t\t\t\t\t\tpublic Viewer createViewer(Composite composite)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn new TableViewer(composite);" + NL + "\t\t\t\t\t\t}";
-  protected final String TEXT_223 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "\t\t\t\ttableViewer = (TableViewer)viewerPane.getViewer();" + NL + "" + NL + "\t\t\t\tTable table = tableViewer.getTable();" + NL + "\t\t\t\tTableLayout layout = new TableLayout();" + NL + "\t\t\t\ttable.setLayout(layout);" + NL + "\t\t\t\ttable.setHeaderVisible(true);" + NL + "\t\t\t\ttable.setLinesVisible(true);" + NL + "" + NL + "\t\t\t\tTableColumn objectColumn = new TableColumn(table, SWT.NONE);" + NL + "\t\t\t\tlayout.addColumnData(new ColumnWeightData(3, 100, true));" + NL + "\t\t\t\tobjectColumn.setText(getString(\"_UI_ObjectColumn_label\"));";
-  protected final String TEXT_224 = NL + "\t\t\t\tobjectColumn.setResizable(true);" + NL + "" + NL + "\t\t\t\tTableColumn selfColumn = new TableColumn(table, SWT.NONE);" + NL + "\t\t\t\tlayout.addColumnData(new ColumnWeightData(2, 100, true));" + NL + "\t\t\t\tselfColumn.setText(getString(\"_UI_SelfColumn_label\"));";
-  protected final String TEXT_225 = NL + "\t\t\t\tselfColumn.setResizable(true);" + NL + "" + NL + "\t\t\t\ttableViewer.setColumnProperties(new String [] {\"a\", \"b\"});";
-  protected final String TEXT_226 = NL + "\t\t\t\ttableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\ttableViewer.setLabelProvider(";
-  protected final String TEXT_227 = ", tableViewer";
-  protected final String TEXT_228 = ");" + NL;
-  protected final String TEXT_229 = "(tableViewer, new ";
-  protected final String TEXT_230 = ".EditingDomainLocationListener(editingDomain, tableViewer));" + NL;
-  protected final String TEXT_231 = NL + "\t\t\t\tcreateContextMenuFor(tableViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_TablePage_label\"));";
-  protected final String TEXT_232 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// This is the page for the table tree viewer." + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
-  protected final String TEXT_233 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "" + NL + "\t\t\t\ttreeViewerWithColumns = (TreeViewer)viewerPane.getViewer();" + NL + "" + NL + "\t\t\t\tTree tree = treeViewerWithColumns.getTree();" + NL + "\t\t\t\ttree.setLayoutData(new FillLayout());" + NL + "\t\t\t\ttree.setHeaderVisible(true);" + NL + "\t\t\t\ttree.setLinesVisible(true);" + NL + "" + NL + "\t\t\t\tTreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);" + NL + "\t\t\t\tobjectColumn.setText(getString(\"_UI_ObjectColumn_label\"));";
-  protected final String TEXT_234 = NL + "\t\t\t\tobjectColumn.setResizable(true);" + NL + "\t\t\t\tobjectColumn.setWidth(250);" + NL + "" + NL + "\t\t\t\tTreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);" + NL + "\t\t\t\tselfColumn.setText(getString(\"_UI_SelfColumn_label\"));";
-  protected final String TEXT_235 = NL + "\t\t\t\tselfColumn.setResizable(true);" + NL + "\t\t\t\tselfColumn.setWidth(200);" + NL + "" + NL + "\t\t\t\ttreeViewerWithColumns.setColumnProperties(new String [] {\"a\", \"b\"});";
-  protected final String TEXT_236 = NL + "\t\t\t\ttreeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\ttreeViewerWithColumns.setLabelProvider(";
-  protected final String TEXT_237 = ", treeViewerWithColumns";
-  protected final String TEXT_238 = "(treeViewerWithColumns, new ";
-  protected final String TEXT_239 = ".EditingDomainLocationListener(editingDomain, treeViewerWithColumns));" + NL;
-  protected final String TEXT_240 = NL + "\t\t\t\tcreateContextMenuFor(treeViewerWithColumns);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_TreeWithColumnsPage_label\"));";
-  protected final String TEXT_241 = NL + "\t\t\tTree tree = new Tree(getContainer(), SWT.MULTI);" + NL + "\t\t\tselectionViewer = new TreeViewer(tree);" + NL + "\t\t\tsetCurrentViewer(selectionViewer);" + NL + "" + NL + "\t\t\tselectionViewer.setUseHashlookup(true);" + NL + "\t\t\tselectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\tselectionViewer.setLabelProvider(";
-  protected final String TEXT_242 = ");" + NL + "\t\t\tselectionViewer.setInput(editingDomain.getResourceSet());" + NL + "\t\t\tselectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);" + NL + "" + NL + "\t\t\tnew AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);";
-  protected final String TEXT_243 = NL + "\t\t\tnew ";
-  protected final String TEXT_244 = NL + NL + "\t\t\tcreateContextMenuFor(selectionViewer);" + NL + "\t\t\tint pageIndex = addPage(tree);" + NL + "\t\t\tsetPageText(pageIndex, getString(\"_UI_SelectionPage_label\"));";
-  protected final String TEXT_245 = NL + NL + "\t\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t\t(new Runnable()" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t {" + NL + "\t\t\t\t\t\t if (!getContainer().isDisposed())" + NL + "\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t setActivePage(0);" + NL + "\t\t\t\t\t\t }" + NL + "\t\t\t\t\t }" + NL + "\t\t\t\t });" + NL + "\t\t}" + NL + "" + NL + "\t\t// Ensures that this editor will only display the page's tab" + NL + "\t\t// area if there are more than one page" + NL + "\t\t//" + NL + "\t\tgetContainer().addControlListener" + NL + "\t\t\t(new ControlAdapter()" + NL + "\t\t\t {" + NL + "\t\t\t\tboolean guard = false;";
-  protected final String TEXT_246 = NL + "\t\t\t\tpublic void controlResized(ControlEvent event)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tif (!guard)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tguard = true;" + NL + "\t\t\t\t\t\thideTabs();" + NL + "\t\t\t\t\t\tguard = false;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t });" + NL + "" + NL + "\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t(new Runnable()" + NL + "\t\t\t {" + NL + "\t\t\t\t public void run()" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t updateProblemIndication();" + NL + "\t\t\t\t }" + NL + "\t\t\t });" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * If there is just one page in the multi-page editor part," + NL + "\t * this hides the single tab at the bottom." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void hideTabs()" + NL + "\t{" + NL + "\t\tif (getPageCount() <= 1)" + NL + "\t\t{" + NL + "\t\t\tsetPageText(0, \"\");";
-  protected final String TEXT_247 = NL + "\t\t\tif (getContainer() instanceof CTabFolder)" + NL + "\t\t\t{" + NL + "\t\t\t\tPoint point = getContainer().getSize();" + NL + "\t\t\t\tRectangle clientArea = getContainer().getClientArea();" + NL + "\t\t\t\tgetContainer().setSize(point.x,  2 * point.y - clientArea.height - clientArea.y);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * If there is more than one page in the multi-page editor part," + NL + "\t * this shows the tabs at the bottom." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void showTabs()" + NL + "\t{" + NL + "\t\tif (getPageCount() > 1)" + NL + "\t\t{" + NL + "\t\t\tsetPageText(0, getString(\"_UI_SelectionPage_label\"));";
-  protected final String TEXT_248 = NL + "\t\t\tif (getContainer() instanceof CTabFolder)" + NL + "\t\t\t{" + NL + "\t\t\t\tPoint point = getContainer().getSize();" + NL + "\t\t\t\tRectangle clientArea = getContainer().getClientArea();" + NL + "\t\t\t\tgetContainer().setSize(point.x, clientArea.height + clientArea.y);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is used to track the active viewer." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_249 = NL + "\tprotected void pageChange(int pageIndex)" + NL + "\t{" + NL + "\t\tsuper.pageChange(pageIndex);" + NL + "" + NL + "\t\tif (contentOutlinePage != null)" + NL + "\t\t{" + NL + "\t\t\thandleContentOutlineSelection(contentOutlinePage.getSelection());" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is how the framework determines which interfaces we implement." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_250 = NL + "\t@SuppressWarnings(\"";
-  protected final String TEXT_251 = "rawtypes";
-  protected final String TEXT_252 = "unchecked";
-  protected final String TEXT_253 = "\")";
-  protected final String TEXT_254 = NL + "\tpublic <T> T getAdapter(Class<T> key)";
-  protected final String TEXT_255 = NL + "\tpublic Object getAdapter(Class key)";
-  protected final String TEXT_256 = NL + "\t{" + NL + "\t\tif (key.equals(IContentOutlinePage.class))" + NL + "\t\t{";
-  protected final String TEXT_257 = NL + "\t\t\treturn showOutlineView() ? key.cast(getContentOutlinePage()) : null;";
-  protected final String TEXT_258 = NL + "\t\t\treturn showOutlineView() ? getContentOutlinePage() : null;";
-  protected final String TEXT_259 = NL + "\t\t}" + NL + "\t\telse if (key.equals(IPropertySheetPage.class))" + NL + "\t\t{";
-  protected final String TEXT_260 = NL + "\t\t\treturn key.cast(getPropertySheetPage());";
-  protected final String TEXT_261 = NL + "\t\t\treturn getPropertySheetPage();";
-  protected final String TEXT_262 = NL + "\t\t}";
-  protected final String TEXT_263 = NL + "\t\telse if (key.equals(IGotoMarker.class))" + NL + "\t\t{";
-  protected final String TEXT_264 = NL + "\t\t\treturn key.cast(this);";
-  protected final String TEXT_265 = NL + "\t\t\treturn this;";
-  protected final String TEXT_266 = NL + "\t\telse if (key.equals(";
-  protected final String TEXT_267 = ".class)) " + NL + "\t\t{" + NL + "\t\t\treturn ";
-  protected final String TEXT_268 = ".getAdapter(key, this, ";
-  protected final String TEXT_269 = ".getPlugin());" + NL + "\t\t}";
-  protected final String TEXT_270 = NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\treturn super.getAdapter(key);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This accesses a cached version of the content outliner." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IContentOutlinePage getContentOutlinePage()" + NL + "\t{" + NL + "\t\tif (contentOutlinePage == null)" + NL + "\t\t{" + NL + "\t\t\t// The content outline is just a tree." + NL + "\t\t\t//" + NL + "\t\t\tclass MyContentOutlinePage extends ContentOutlinePage" + NL + "\t\t\t{";
-  protected final String TEXT_271 = NL + "\t\t\t\tpublic void createControl(Composite parent)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.createControl(parent);" + NL + "\t\t\t\t\tcontentOutlineViewer = getTreeViewer();" + NL + "\t\t\t\t\tcontentOutlineViewer.addSelectionChangedListener(this);" + NL + "" + NL + "\t\t\t\t\t// Set up the tree viewer." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tcontentOutlineViewer.setUseHashlookup(true);" + NL + "\t\t\t\t\tcontentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\t\tcontentOutlineViewer.setLabelProvider(";
-  protected final String TEXT_272 = ", contentOutlineViewer";
-  protected final String TEXT_273 = ");" + NL + "\t\t\t\t\tcontentOutlineViewer.setInput(editingDomain.getResourceSet());" + NL;
-  protected final String TEXT_274 = NL + "\t\t\t\t\tnew ";
-  protected final String TEXT_275 = "(contentOutlineViewer, new ";
-  protected final String TEXT_276 = ".EditingDomainLocationListener(editingDomain, contentOutlineViewer));" + NL;
-  protected final String TEXT_277 = NL + "\t\t\t\t\t// Make sure our popups work." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tcreateContextMenuFor(contentOutlineViewer);" + NL + "" + NL + "\t\t\t\t\tif (!editingDomain.getResourceSet().getResources().isEmpty())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t  // Select the root object in the view." + NL + "\t\t\t\t\t  //" + NL + "\t\t\t\t\t  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL;
-  protected final String TEXT_278 = NL + "\t\t\t\tpublic void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.makeContributions(menuManager, toolBarManager, statusLineManager);" + NL + "\t\t\t\t\tcontentOutlineStatusLineManager = statusLineManager;" + NL + "\t\t\t\t}" + NL;
-  protected final String TEXT_279 = NL + "\t\t\t\tpublic void setActionBars(IActionBars actionBars)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.setActionBars(actionBars);" + NL + "\t\t\t\t\tgetActionBarContributor().shareGlobalActions(this, actionBars);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tcontentOutlinePage = new MyContentOutlinePage();" + NL + "" + NL + "\t\t\t// Listen to selection so that we can handle it is a special way." + NL + "\t\t\t//" + NL + "\t\t\tcontentOutlinePage.addSelectionChangedListener" + NL + "\t\t\t\t(new ISelectionChangedListener()" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t // This ensures that we handle selections correctly." + NL + "\t\t\t\t\t //" + NL + "\t\t\t\t\t public void selectionChanged(SelectionChangedEvent event)" + NL + "\t\t\t\t\t {" + NL + "\t\t\t\t\t\t handleContentOutlineSelection(event.getSelection());" + NL + "\t\t\t\t\t }" + NL + "\t\t\t\t });" + NL + "\t\t}" + NL + "" + NL + "\t\treturn contentOutlinePage;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This accesses a cached version of the property sheet." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IPropertySheetPage getPropertySheetPage()" + NL + "\t{" + NL + "\t\tPropertySheetPage propertySheetPage =" + NL + "\t\t\tnew ExtendedPropertySheetPage(editingDomain";
-  protected final String TEXT_280 = ", ExtendedPropertySheetPage.Decoration.MANUAL";
-  protected final String TEXT_281 = ", ExtendedPropertySheetPage.Decoration.LIVE, ";
-  protected final String TEXT_282 = "ExtendedPropertySheetPage.Decoration.NONE, ";
-  protected final String TEXT_283 = "null, ";
-  protected final String TEXT_284 = ")" + NL + "\t\t\t{";
-  protected final String TEXT_285 = NL + "\t\t\t\tpublic void setSelectionToViewer(";
-  protected final String TEXT_286 = " selection)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_287 = ".this.setSelectionToViewer(selection);" + NL + "\t\t\t\t\t";
-  protected final String TEXT_288 = ".this.setFocus();" + NL + "\t\t\t\t}" + NL;
-  protected final String TEXT_289 = NL + "\t\t\t\tpublic void setActionBars(IActionBars actionBars)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.setActionBars(actionBars);" + NL + "\t\t\t\t\tgetActionBarContributor().shareGlobalActions(this, actionBars);" + NL + "\t\t\t\t}" + NL + "\t\t\t};" + NL + "\t\tpropertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\tpropertySheetPages.add(propertySheetPage);" + NL + "" + NL + "\t\treturn propertySheetPage;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This deals with how we want selection in the outliner to affect the other views." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void handleContentOutlineSelection(ISelection selection)" + NL + "\t{";
-  protected final String TEXT_290 = NL + "\t\tif (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection)";
-  protected final String TEXT_291 = NL + "\t\tif (selectionViewer != null && !selection.isEmpty() && selection instanceof IStructuredSelection)";
-  protected final String TEXT_292 = NL + "\t\t{" + NL + "\t\t\tIterator";
-  protected final String TEXT_293 = "<?>";
-  protected final String TEXT_294 = " selectedElements = ((IStructuredSelection)selection).iterator();" + NL + "\t\t\tif (selectedElements.hasNext())" + NL + "\t\t\t{" + NL + "\t\t\t\t// Get the first selected element." + NL + "\t\t\t\t//" + NL + "\t\t\t\tObject selectedElement = selectedElements.next();" + NL;
-  protected final String TEXT_295 = NL + "\t\t\t\t// If it's the selection viewer, then we want it to select the same selection as this selection." + NL + "\t\t\t\t//" + NL + "\t\t\t\tif (currentViewerPane.getViewer() == selectionViewer)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_296 = " selectionList = new ";
-  protected final String TEXT_297 = "();" + NL + "\t\t\t\t\tselectionList.add(selectedElement);" + NL + "\t\t\t\t\twhile (selectedElements.hasNext())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tselectionList.add(selectedElements.next());" + NL + "\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t// Set the selection to the widget." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tselectionViewer.setSelection(new StructuredSelection(selectionList));" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t// Set the input to the widget." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tif (currentViewerPane.getViewer().getInput() != selectedElement)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tcurrentViewerPane.getViewer().setInput(selectedElement);" + NL + "\t\t\t\t\t\tcurrentViewerPane.setTitle(selectedElement);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}";
-  protected final String TEXT_298 = NL + "\t\t\t\t";
-  protected final String TEXT_299 = "();" + NL + "\t\t\t\tselectionList.add(selectedElement);" + NL + "\t\t\t\twhile (selectedElements.hasNext())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tselectionList.add(selectedElements.next());" + NL + "\t\t\t\t}" + NL + "" + NL + "\t\t\t\t// Set the selection to the widget." + NL + "\t\t\t\t//" + NL + "\t\t\t\tselectionViewer.setSelection(new StructuredSelection(selectionList));";
-  protected final String TEXT_300 = NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is for implementing {@link IEditorPart} and simply tests the command stack." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_301 = NL + "\tpublic boolean isDirty()" + NL + "\t{" + NL + "\t\treturn ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();" + NL + "\t}" + NL;
-  protected final String TEXT_302 = NL + "\t/**" + NL + "\t * This is for implementing {@link IRevertablePart}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void doRevert()" + NL + "\t{";
-  protected final String TEXT_303 = NL + "\t\tDiagnosticDecorator.cancel(editingDomain);" + NL;
-  protected final String TEXT_304 = "\t\t" + NL + "\t\tResourceSet resourceSet = editingDomain.getResourceSet();" + NL + "\t\t";
-  protected final String TEXT_305 = " resources = resourceSet.getResources();" + NL + "\t\t";
-  protected final String TEXT_306 = " unloadedResources = new ";
-  protected final String TEXT_307 = "();" + NL + "\t\tupdateProblemIndication = false;" + NL + "\t\tfor (int i = 0; i < resources.size(); ++i)" + NL + "\t\t{" + NL + "\t\t\tResource resource = resources.get(i);" + NL + "\t\t\tif (resource.isLoaded())" + NL + "\t\t\t{" + NL + "\t\t\t\tresource.unload();" + NL + "\t\t\t\tunloadedResources.add(resource);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\tresourceToDiagnosticMap.clear();";
-  protected final String TEXT_308 = NL + "\t\tfor (Resource resource : unloadedResources)";
-  protected final String TEXT_309 = NL + "\t\tfor (Iterator i = unloadedResources.iterator(); i.hasNext(); )";
-  protected final String TEXT_310 = NL + "\t\t{";
-  protected final String TEXT_311 = NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\tresource.load(resourceSet.getLoadOptions());" + NL + "\t\t\t}" + NL + "\t\t\tcatch (IOException exception)" + NL + "\t\t\t{" + NL + "\t\t\t\tif (!resourceToDiagnosticMap.containsKey(resource))" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tresourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\teditingDomain.getCommandStack().flush();" + NL + "" + NL + "\t\tif (AdapterFactoryEditingDomain.isStale(editorSelection))" + NL + "\t\t{" + NL + "\t\t\tsetSelection(StructuredSelection.EMPTY);" + NL + "\t\t}" + NL + "" + NL + "\t\tupdateProblemIndication = true;" + NL + "\t\tupdateProblemIndication();" + NL + "\t}" + NL;
-  protected final String TEXT_312 = NL + "\t/**" + NL + "\t * This is for implementing {@link IEditorPart} and simply saves the model file." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_313 = NL + "\tpublic void doSave(IProgressMonitor progressMonitor)" + NL + "\t{" + NL + "\t\t// Save only resources that have actually changed." + NL + "\t\t//" + NL + "\t\tfinal ";
-  protected final String TEXT_314 = " saveOptions = new ";
-  protected final String TEXT_315 = NL + "\t\tsaveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);";
-  protected final String TEXT_316 = NL + "\t\tsaveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);";
-  protected final String TEXT_317 = NL + NL + "\t\t// Do the work within an operation because this is a long running activity that modifies the workbench." + NL + "\t\t//" + NL + "\t\t";
-  protected final String TEXT_318 = " operation =" + NL + "\t\t\tnew ";
-  protected final String TEXT_319 = "()" + NL + "\t\t\t{" + NL + "\t\t\t\t// This is the method that gets invoked when the operation runs." + NL + "\t\t\t\t//";
-  protected final String TEXT_320 = NL + "\t\t\t\tpublic void ";
-  protected final String TEXT_321 = "(IProgressMonitor monitor)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t// Save the resources to the file system." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tboolean first = true;" + NL + "\t\t\t\t\t";
-  protected final String TEXT_322 = " resources = editingDomain.getResourceSet().getResources();" + NL + "\t\t\t\t\tfor (int i = 0; i < resources.size(); ++i)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tResource resource = ";
-  protected final String TEXT_323 = "(Resource)";
-  protected final String TEXT_324 = "resources.get(i);" + NL + "\t\t\t\t\t\tif ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource))" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\ttry" + NL + "\t\t\t\t\t\t\t{";
-  protected final String TEXT_325 = NL + "\t\t\t\t\t\t\t\tlong timeStamp = resource.getTimeStamp();" + NL + "\t\t\t\t\t\t\t\tresource.save(saveOptions);" + NL + "\t\t\t\t\t\t\t\tif (resource.getTimeStamp() != timeStamp)" + NL + "\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\tsavedResources.add(resource);" + NL + "\t\t\t\t\t\t\t\t}";
-  protected final String TEXT_326 = NL + "\t\t\t\t\t\t\t\tresource.save(saveOptions);" + NL + "\t\t\t\t\t\t\t\tsavedResources.add(resource);";
-  protected final String TEXT_327 = NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tcatch (Exception exception)" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tresourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tfirst = false;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t};" + NL + "" + NL + "\t\tupdateProblemIndication = false;" + NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\t// This runs the options, and shows progress." + NL + "\t\t\t//" + NL + "\t\t\tnew ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);" + NL + "" + NL + "\t\t\t// Refresh the necessary state." + NL + "\t\t\t//" + NL + "\t\t\t((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();" + NL + "\t\t\tfirePropertyChange(IEditorPart.PROP_DIRTY);" + NL + "\t\t}" + NL + "\t\tcatch (Exception exception)" + NL + "\t\t{" + NL + "\t\t\t// Something went wrong that shouldn't." + NL + "\t\t\t//" + NL + "\t\t\t";
-  protected final String TEXT_328 = ".INSTANCE.log(exception);" + NL + "\t\t}" + NL + "\t\tupdateProblemIndication = true;" + NL + "\t\tupdateProblemIndication();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This returns whether something has been persisted to the URI of the specified resource." + NL + "\t * The implementation uses the URI converter from the editor's resource set to try to open an input stream." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean isPersisted(Resource resource)" + NL + "\t{" + NL + "\t\tboolean result = false;" + NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\tInputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());" + NL + "\t\t\tif (stream != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tresult = true;" + NL + "\t\t\t\tstream.close();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tcatch (IOException e)" + NL + "\t\t{" + NL + "\t\t\t// Ignore" + NL + "\t\t}" + NL + "\t\treturn result;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This always returns true because it is not currently supported." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_329 = NL + "\tpublic boolean isSaveAsAllowed()" + NL + "\t{" + NL + "\t\treturn true;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This also changes the editor's input." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_330 = NL + "\tpublic void doSaveAs()" + NL + "\t{";
-  protected final String TEXT_331 = NL + "\t\tnew ";
-  protected final String TEXT_332 = "(getSite().getShell(), null, SWT.NONE)" + NL + "\t\t\t{";
-  protected final String TEXT_333 = NL + "\t\t\t\tprotected boolean isSave()" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\treturn true;" + NL + "\t\t\t\t}" + NL;
-  protected final String TEXT_334 = NL + "\t\t\t\tprotected boolean processResources()" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
-  protected final String TEXT_335 = " uris = getURIs();" + NL + "\t\t\t\t\tif (uris.size() > 0)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tURI uri = ";
-  protected final String TEXT_336 = "uris.get(0);" + NL + "\t\t\t\t\t\tdoSaveAs(uri, new ";
-  protected final String TEXT_337 = "(uri));" + NL + "\t\t\t\t\t\treturn true;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\telse" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\treturn false;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}.open();";
-  protected final String TEXT_338 = NL + "\t\tString[] filters = ";
-  protected final String TEXT_339 = "(String[])";
-  protected final String TEXT_340 = "FILE_EXTENSION_FILTERS.toArray(new String[FILE_EXTENSION_FILTERS.size()]);" + NL + "\t\tString[] files = ";
-  protected final String TEXT_341 = ".openFilePathDialog(getSite().getShell(), ";
-  protected final String TEXT_342 = ".SAVE, filters);" + NL + "\t\tif (files.length > 0)" + NL + "\t\t{" + NL + "\t\t\tURI uri = URI.createFileURI(files[0]);" + NL + "\t\t\tdoSaveAs(uri, new ";
-  protected final String TEXT_343 = "(uri));" + NL + "\t\t}";
-  protected final String TEXT_344 = NL + "\t\tSaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());" + NL + "\t\tsaveAsDialog.open();" + NL + "\t\tIPath path = saveAsDialog.getResult();" + NL + "\t\tif (path != null)" + NL + "\t\t{" + NL + "\t\t\tIFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);" + NL + "\t\t\tif (file != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tdoSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_345 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void doSaveAs(URI uri, IEditorInput editorInput)" + NL + "\t{" + NL + "\t\t(";
-  protected final String TEXT_346 = "editingDomain.getResourceSet().getResources().get(0)).setURI(uri);" + NL + "\t\tsetInputWithNotify(editorInput);" + NL + "\t\tsetPartName(editorInput.getName());" + NL + "\t\tIProgressMonitor progressMonitor =" + NL + "\t\t\tgetActionBars().getStatusLineManager() != null ?" + NL + "\t\t\t\tgetActionBars().getStatusLineManager().getProgressMonitor() :" + NL + "\t\t\t\tnew ";
-  protected final String TEXT_347 = "();" + NL + "\t\tdoSave(progressMonitor);" + NL + "\t}";
-  protected final String TEXT_348 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void gotoMarker(IMarker marker)" + NL + "\t{";
-  protected final String TEXT_349 = NL + "\t\t";
-  protected final String TEXT_350 = " targetObjects = markerHelper.getTargetObjects(editingDomain, marker);" + NL + "\t\tif (!targetObjects.isEmpty())" + NL + "\t\t{" + NL + "\t\t\tsetSelectionToViewer(targetObjects);" + NL + "\t\t}";
-  protected final String TEXT_351 = NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\tif (marker.isSubtypeOf(EValidator.MARKER))" + NL + "\t\t\t{" + NL + "\t\t\t\tString uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);" + NL + "\t\t\t\tif (uriAttribute != null)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tURI uri = URI.createURI(uriAttribute);" + NL + "\t\t\t\t\tEObject eObject = editingDomain.getResourceSet().getEObject(uri, true);" + NL + "\t\t\t\t\tif (eObject != null)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t  setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tcatch (CoreException exception)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_352 = ".INSTANCE.log(exception);" + NL + "\t\t}";
-  protected final String TEXT_353 = NL + "\t}";
-  protected final String TEXT_354 = NL + NL + "\t/**" + NL + "\t * This is called during startup." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_355 = NL + "\tpublic void init(IEditorSite site, IEditorInput editorInput)" + NL + "\t{" + NL + "\t\tsetSite(site);" + NL + "\t\tsetInputWithNotify(editorInput);" + NL + "\t\tsetPartName(editorInput.getName());" + NL + "\t\tsite.setSelectionProvider(this);" + NL + "\t\tsite.getPage().addPartListener(partListener);";
-  protected final String TEXT_356 = NL + "\t\tResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);";
-  protected final String TEXT_357 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_358 = NL + "\tpublic void setFocus()" + NL + "\t{";
-  protected final String TEXT_359 = NL + "\t\tif (currentViewerPane != null)" + NL + "\t\t{" + NL + "\t\t\tcurrentViewerPane.setFocus();" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\tgetControl(getActivePage()).setFocus();" + NL + "\t\t}";
-  protected final String TEXT_360 = NL + "\t\tgetControl(getActivePage()).setFocus();";
-  protected final String TEXT_361 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void addSelectionChangedListener(ISelectionChangedListener listener)" + NL + "\t{" + NL + "\t\tselectionChangedListeners.add(listener);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void removeSelectionChangedListener(ISelectionChangedListener listener)" + NL + "\t{" + NL + "\t\tselectionChangedListeners.remove(listener);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ISelection getSelection()" + NL + "\t{" + NL + "\t\treturn editorSelection;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection." + NL + "\t * Calling this result will notify the listeners." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setSelection(ISelection selection)" + NL + "\t{" + NL + "\t\teditorSelection = selection;" + NL;
-  protected final String TEXT_362 = NL + "\t\tfor (ISelectionChangedListener listener : selectionChangedListeners)";
-  protected final String TEXT_363 = NL + "\t\tfor (Iterator listeners = selectionChangedListeners.iterator(); listeners.hasNext(); )";
-  protected final String TEXT_364 = NL + "\t\t\tISelectionChangedListener listener = (ISelectionChangedListener)listeners.next();";
-  protected final String TEXT_365 = NL + "\t\t\tlistener.selectionChanged(new SelectionChangedEvent(this, selection));" + NL + "\t\t}" + NL + "\t\tsetStatusLineManager(selection);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setStatusLineManager(ISelection selection)" + NL + "\t{" + NL + "\t\tIStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?" + NL + "\t\t\tcontentOutlineStatusLineManager : getActionBars().getStatusLineManager();" + NL + "" + NL + "\t\tif (statusLineManager != null)" + NL + "\t\t{" + NL + "\t\t\tif (selection instanceof IStructuredSelection)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_366 = " collection = ((IStructuredSelection)selection).toList();" + NL + "\t\t\t\tswitch (collection.size())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tcase 0:" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tstatusLineManager.setMessage(getString(\"_UI_NoObjectSelected\"));";
-  protected final String TEXT_367 = NL + "\t\t\t\t\t\tbreak;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tcase 1:" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tString text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());" + NL + "\t\t\t\t\t\tstatusLineManager.setMessage(getString(\"_UI_SingleObjectSelected\", text));";
-  protected final String TEXT_368 = NL + "\t\t\t\t\t\tbreak;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tdefault:" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tstatusLineManager.setMessage(getString(\"_UI_MultiObjectSelected\", Integer.toString(collection.size())));";
-  protected final String TEXT_369 = NL + "\t\t\t\t\t\tbreak;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\telse" + NL + "\t\t\t{" + NL + "\t\t\t\tstatusLineManager.setMessage(\"\");";
-  protected final String TEXT_370 = NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This looks up a string in the plugin's plugin.properties file." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static String getString(String key)" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_371 = ".INSTANCE.getString(key);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This looks up a string in plugin.properties, making a substitution." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static String getString(String key, Object s1)" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_372 = ".INSTANCE.getString(key, new Object [] { s1 });" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void menuAboutToShow(IMenuManager menuManager)" + NL + "\t{" + NL + "\t\t((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic EditingDomainActionBarContributor getActionBarContributor()" + NL + "\t{" + NL + "\t\treturn (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IActionBars getActionBars()" + NL + "\t{" + NL + "\t\treturn getActionBarContributor().getActionBars();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic AdapterFactory getAdapterFactory()" + NL + "\t{" + NL + "\t\treturn adapterFactory;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_373 = NL + "\tpublic void dispose()" + NL + "\t{" + NL + "\t\tupdateProblemIndication = false;" + NL;
-  protected final String TEXT_374 = NL + "\t\tResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);" + NL;
-  protected final String TEXT_375 = NL + "\t\tgetSite().getPage().removePartListener(partListener);" + NL + "" + NL + "\t\tadapterFactory.dispose();" + NL + "" + NL + "\t\tif (getActionBarContributor().getActiveEditor() == this)" + NL + "\t\t{" + NL + "\t\t\tgetActionBarContributor().setActiveEditor(null);" + NL + "\t\t}" + NL;
-  protected final String TEXT_376 = NL + "\t\tfor (PropertySheetPage propertySheetPage : propertySheetPages)";
-  protected final String TEXT_377 = NL + "\t\tfor (Iterator i = propertySheetPages.iterator(); i.hasNext(); )";
-  protected final String TEXT_378 = NL + "\t\t\tPropertySheetPage propertySheetPage = (PropertySheetPage)i.next();";
-  protected final String TEXT_379 = NL + "\t\t\tpropertySheetPage.dispose();" + NL + "\t\t}" + NL + "" + NL + "\t\tif (contentOutlinePage != null)" + NL + "\t\t{" + NL + "\t\t\tcontentOutlinePage.dispose();" + NL + "\t\t}" + NL + "" + NL + "\t\tsuper.dispose();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Returns whether the outline view should be presented to the user." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean showOutlineView()" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_380 = ";" + NL + "\t}" + NL + "}";
+  protected final String TEXT_81 = ".this)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\thandleActivate();" + NL + "\t\t\t\t}" + NL + "\t\t\t}";
+  protected final String TEXT_82 = NL + "\t\t\tpublic void partBroughtToTop(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore." + NL + "\t\t\t}";
+  protected final String TEXT_83 = NL + "\t\t\tpublic void partClosed(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore." + NL + "\t\t\t}";
+  protected final String TEXT_84 = NL + "\t\t\tpublic void partDeactivated(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore." + NL + "\t\t\t}";
+  protected final String TEXT_85 = NL + "\t\t\tpublic void partOpened(IWorkbenchPart p)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore." + NL + "\t\t\t}" + NL + "\t\t};" + NL + "" + NL + "\t/**" + NL + "\t * Resources that have been removed since last activation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_86 = " removedResources = new ";
+  protected final String TEXT_87 = "();" + NL + "" + NL + "\t/**" + NL + "\t * Resources that have been changed since last activation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_88 = " changedResources = new ";
+  protected final String TEXT_89 = "();" + NL + "" + NL + "\t/**" + NL + "\t * Resources that have been saved." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_90 = " savedResources = new ";
+  protected final String TEXT_91 = "();" + NL + "" + NL + "\t/**" + NL + "\t * Map to store the diagnostic associated with a resource." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_92 = " resourceToDiagnosticMap = new ";
+  protected final String TEXT_93 = "();" + NL + "" + NL + "\t/**" + NL + "\t * Controls whether the problem indication should be updated." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean updateProblemIndication = true;" + NL + "" + NL + "\t/**" + NL + "\t * Adapter used to update the problem indication when resources are demanded loaded." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected EContentAdapter problemIndicationAdapter =" + NL + "\t\tnew EContentAdapter()" + NL + "\t\t{" + NL + "\t\t\tprotected boolean dispatching;" + NL;
+  protected final String TEXT_94 = NL + "\t\t\tpublic void notifyChanged(Notification notification)" + NL + "\t\t\t{" + NL + "\t\t\t\tif (notification.getNotifier() instanceof Resource)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tswitch (notification.getFeatureID(Resource.class))" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tcase Resource.RESOURCE__IS_LOADED:" + NL + "\t\t\t\t\t\tcase Resource.RESOURCE__ERRORS:" + NL + "\t\t\t\t\t\tcase Resource.RESOURCE__WARNINGS:" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tResource resource = (Resource)notification.getNotifier();" + NL + "\t\t\t\t\t\t\tDiagnostic diagnostic = analyzeResourceProblems(resource, null);" + NL + "\t\t\t\t\t\t\tif (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tresourceToDiagnosticMap.put(resource, diagnostic);" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\telse" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tresourceToDiagnosticMap.remove(resource);" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tdispatchUpdateProblemIndication();" + NL + "\t\t\t\t\t\t\tbreak;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.notifyChanged(notification);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected void dispatchUpdateProblemIndication()" + NL + "\t\t\t{" + NL + "\t\t\t\tif (updateProblemIndication && !dispatching)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tdispatching = true;" + NL + "\t\t\t\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t\t\t\t(new Runnable()" + NL + "\t\t\t\t\t\t {";
+  protected final String TEXT_95 = NL + "\t\t\t\t\t\t\t @Override";
+  protected final String TEXT_96 = NL + "\t\t\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t dispatching = false;" + NL + "\t\t\t\t\t\t\t\t updateProblemIndication();" + NL + "\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t });" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL;
+  protected final String TEXT_97 = NL + "\t\t\tprotected void setTarget(Resource target)" + NL + "\t\t\t{" + NL + "\t\t\t\tbasicSetTarget(target);" + NL + "\t\t\t}" + NL;
+  protected final String TEXT_98 = NL + "\t\t\tprotected void unsetTarget(Resource target)" + NL + "\t\t\t{" + NL + "\t\t\t\tbasicUnsetTarget(target);" + NL + "\t\t\t\tresourceToDiagnosticMap.remove(target);" + NL + "\t\t\t\tdispatchUpdateProblemIndication();" + NL + "\t\t\t}" + NL + "\t\t};";
+  protected final String TEXT_99 = NL + NL + "\t/**" + NL + "\t * This listens for workspace changes." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IResourceChangeListener resourceChangeListener =" + NL + "\t\tnew IResourceChangeListener()" + NL + "\t\t{";
+  protected final String TEXT_100 = NL + "\t\t\tpublic void resourceChanged(IResourceChangeEvent event)" + NL + "\t\t\t{" + NL + "\t\t\t\tIResourceDelta delta = event.getDelta();" + NL + "\t\t\t\ttry" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tclass ResourceDeltaVisitor implements IResourceDeltaVisitor" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tprotected ResourceSet resourceSet = editingDomain.getResourceSet();" + NL + "\t\t\t\t\t\tprotected ";
+  protected final String TEXT_101 = "();" + NL + "\t\t\t\t\t\tprotected ";
+  protected final String TEXT_102 = "();" + NL;
+  protected final String TEXT_103 = NL + "\t\t\t\t\t\t@Override";
+  protected final String TEXT_104 = NL + "\t\t\t\t\t\tpublic boolean visit(";
+  protected final String TEXT_105 = "final ";
+  protected final String TEXT_106 = "IResourceDelta delta)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tif (delta.getResource().getType() == IResource.FILE)" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tif (delta.getKind() == IResourceDelta.REMOVED ||" + NL + "\t\t\t\t\t\t\t\t    delta.getKind() == IResourceDelta.CHANGED";
+  protected final String TEXT_107 = " && delta.getFlags() != IResourceDelta.MARKERS";
+  protected final String TEXT_108 = ")" + NL + "\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t";
+  protected final String TEXT_109 = "Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);" + NL + "\t\t\t\t\t\t\t\t\tif (resource != null)" + NL + "\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\tif (delta.getKind() == IResourceDelta.REMOVED)" + NL + "\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\tremovedResources.add(resource);" + NL + "\t\t\t\t\t\t\t\t\t\t}";
+  protected final String TEXT_110 = NL + "\t\t\t\t\t\t\t\t\t\telse if (!savedResources.remove(resource))" + NL + "\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\tchangedResources.add(resource);" + NL + "\t\t\t\t\t\t\t\t\t\t}";
+  protected final String TEXT_111 = NL + "\t\t\t\t\t\t\t\t\t\telse" + NL + "\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\tif ((delta.getFlags() & IResourceDelta.MARKERS) != 0)" + NL + "\t\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\t\t";
+  protected final String TEXT_112 = ".DiagnosticAdapter.update(resource, markerHelper.getMarkerDiagnostics(resource, (IFile)delta.getResource()";
+  protected final String TEXT_113 = ", false";
+  protected final String TEXT_114 = "));" + NL + "\t\t\t\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\t\t\t\tif ((delta.getFlags() & IResourceDelta.CONTENT) != 0)" + NL + "\t\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\t\tif (!savedResources.remove(resource))" + NL + "\t\t\t\t\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\t\t\t\t\tchangedResources.add(resource);" + NL + "\t\t\t\t\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\t\t\t}";
+  protected final String TEXT_115 = NL + "\t\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\treturn false;" + NL + "\t\t\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t\t\treturn true;" + NL + "\t\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t\tpublic ";
+  protected final String TEXT_116 = " getChangedResources()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn changedResources;" + NL + "\t\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t\tpublic ";
+  protected final String TEXT_117 = " getRemovedResources()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn removedResources;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\tfinal ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();" + NL + "\t\t\t\t\tdelta.accept(visitor);" + NL + "" + NL + "\t\t\t\t\tif (!visitor.getRemovedResources().isEmpty())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t\t\t\t\t(new Runnable()" + NL + "\t\t\t\t\t\t\t {";
+  protected final String TEXT_118 = NL + "\t\t\t\t\t\t\t\t @Override";
+  protected final String TEXT_119 = NL + "\t\t\t\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t\t removedResources.addAll(visitor.getRemovedResources());" + NL + "\t\t\t\t\t\t\t\t\t if (!isDirty())" + NL + "\t\t\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t\t\t getSite().getPage().closeEditor(";
+  protected final String TEXT_120 = ".this, false);" + NL + "\t\t\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t\t });" + NL + "\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\tif (!visitor.getChangedResources().isEmpty())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t\t\t\t\t(new Runnable()" + NL + "\t\t\t\t\t\t\t {";
+  protected final String TEXT_121 = NL + "\t\t\t\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t\t changedResources.addAll(visitor.getChangedResources());" + NL + "\t\t\t\t\t\t\t\t\t if (getSite().getPage().getActiveEditor() == ";
+  protected final String TEXT_122 = ".this)" + NL + "\t\t\t\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t\t\t\t handleActivate();" + NL + "\t\t\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t\t });" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (CoreException exception)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_123 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t};";
+  protected final String TEXT_124 = NL + NL + "\t/**" + NL + "\t * Handles activation of the editor or it's associated views." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void handleActivate()" + NL + "\t{" + NL + "\t\t// Recompute the read only state." + NL + "\t\t//" + NL + "\t\tif (editingDomain.getResourceToReadOnlyMap() != null)" + NL + "\t\t{" + NL + "\t\t  editingDomain.getResourceToReadOnlyMap().clear();" + NL + "" + NL + "\t\t  // Refresh any actions that may become enabled or disabled." + NL + "\t\t  //" + NL + "\t\t  setSelection(getSelection());" + NL + "\t\t}" + NL + "" + NL + "\t\tif (!removedResources.isEmpty())" + NL + "\t\t{" + NL + "\t\t\tif (handleDirtyConflict())" + NL + "\t\t\t{" + NL + "\t\t\t\tgetSite().getPage().closeEditor(";
+  protected final String TEXT_125 = ".this, false);" + NL + "\t\t\t}" + NL + "\t\t\telse" + NL + "\t\t\t{" + NL + "\t\t\t\tremovedResources.clear();" + NL + "\t\t\t\tchangedResources.clear();" + NL + "\t\t\t\tsavedResources.clear();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\telse if (!changedResources.isEmpty())" + NL + "\t\t{" + NL + "\t\t\tchangedResources.removeAll(savedResources);" + NL + "\t\t\thandleChangedResources();" + NL + "\t\t\tchangedResources.clear();" + NL + "\t\t\tsavedResources.clear();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Handles what to do with changed resources on activation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void handleChangedResources()" + NL + "\t{" + NL + "\t\tif (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict()))" + NL + "\t\t{" + NL + "\t\t\tResourceSet resourceSet = editingDomain.getResourceSet();" + NL + "\t\t\tif (isDirty())" + NL + "\t\t\t{" + NL + "\t\t\t\tchangedResources.addAll(resourceSet.getResources());" + NL + "\t\t\t}" + NL + "\t\t\teditingDomain.getCommandStack().flush();" + NL + "" + NL + "\t\t\tupdateProblemIndication = false;";
+  protected final String TEXT_126 = NL + "\t\t\tfor (Resource resource : changedResources)";
+  protected final String TEXT_127 = NL + "\t\t\tfor (Iterator i = changedResources.iterator(); i.hasNext(); )";
+  protected final String TEXT_128 = NL + "\t\t\t{";
+  protected final String TEXT_129 = NL + "\t\t\t\tResource resource = (Resource)i.next();";
+  protected final String TEXT_130 = NL + "\t\t\t\tif (resource.isLoaded())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tresource.unload();" + NL + "\t\t\t\t\ttry" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tresource.load(resourceSet.getLoadOptions());" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tcatch (IOException exception)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tif (!resourceToDiagnosticMap.containsKey(resource))" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tresourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL;
+  protected final String TEXT_131 = NL + "\t\t\tif (AdapterFactoryEditingDomain.isStale(editorSelection))" + NL + "\t\t\t{" + NL + "\t\t\t\tsetSelection(StructuredSelection.EMPTY);" + NL + "\t\t\t}";
+  protected final String TEXT_132 = NL + NL + "\t\t\tupdateProblemIndication = true;" + NL + "\t\t\tupdateProblemIndication();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Updates the problems indication with the information described in the specified diagnostic." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void updateProblemIndication()" + NL + "\t{" + NL + "\t\tif (updateProblemIndication)" + NL + "\t\t{" + NL + "\t\t\tBasicDiagnostic diagnostic =" + NL + "\t\t\t\tnew BasicDiagnostic" + NL + "\t\t\t\t\t(Diagnostic.OK," + NL + "\t\t\t\t\t \"";
+  protected final String TEXT_133 = "\",";
+  protected final String TEXT_134 = NL + "\t\t\t\t\t 0," + NL + "\t\t\t\t\t null," + NL + "\t\t\t\t\t new Object [] { editingDomain.getResourceSet() });";
+  protected final String TEXT_135 = NL + "\t\t\tfor (Diagnostic childDiagnostic : resourceToDiagnosticMap.values())";
+  protected final String TEXT_136 = NL + "\t\t\tfor (Iterator i = resourceToDiagnosticMap.values().iterator(); i.hasNext(); )";
+  protected final String TEXT_137 = NL + "\t\t\t\tDiagnostic childDiagnostic = (Diagnostic)i.next();";
+  protected final String TEXT_138 = NL + "\t\t\t\tif (childDiagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tdiagnostic.add(childDiagnostic);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tint lastEditorPage = getPageCount() - 1;" + NL + "\t\t\tif (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart)" + NL + "\t\t\t{" + NL + "\t\t\t\t((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);" + NL + "\t\t\t\tif (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsetActivePage(lastEditorPage);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\telse if (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t{" + NL + "\t\t\t\tProblemEditorPart problemEditorPart = new ProblemEditorPart();" + NL + "\t\t\t\tproblemEditorPart.setDiagnostic(diagnostic);";
+  protected final String TEXT_139 = NL + "\t\t\t\tproblemEditorPart.setMarkerHelper(markerHelper);";
+  protected final String TEXT_140 = NL + "\t\t\t\ttry" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\taddPage(++lastEditorPage, problemEditorPart, getEditorInput());" + NL + "\t\t\t\t\tsetPageText(lastEditorPage, problemEditorPart.getPartName());" + NL + "\t\t\t\t\tsetActivePage(lastEditorPage);" + NL + "\t\t\t\t\tshowTabs();" + NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (PartInitException exception)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_141 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t}" + NL + "\t\t\t}";
+  protected final String TEXT_142 = NL + NL + "\t\t\tif (markerHelper.hasMarkers(editingDomain.getResourceSet()))" + NL + "\t\t\t{";
+  protected final String TEXT_143 = NL + "\t\t\t\tmarkerHelper.deleteMarkers(editingDomain.getResourceSet());" + NL + "\t\t\t\tif (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\ttry" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tmarkerHelper.createMarkers(diagnostic);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tcatch (CoreException exception)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\t";
+  protected final String TEXT_144 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}";
+  protected final String TEXT_145 = NL + "\t\t\t\ttry" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tmarkerHelper.updateMarkers(diagnostic);" + NL + "\t\t\t\t}" + NL + "\t\t\t\tcatch (CoreException exception)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_146 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t}";
+  protected final String TEXT_147 = NL + "\t\t\t}";
+  protected final String TEXT_148 = NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Shows a dialog that asks if conflicting changes should be discarded." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean handleDirtyConflict()" + NL + "\t{" + NL + "\t\treturn" + NL + "\t\t\tMessageDialog.openQuestion" + NL + "\t\t\t\t(getSite().getShell()," + NL + "\t\t\t\t getString(\"_UI_FileConflict_label\"),";
+  protected final String TEXT_149 = NL + "\t\t\t\t getString(\"_WARN_FileConflict\"));";
+  protected final String TEXT_150 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This creates a model editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+  protected final String TEXT_151 = "()" + NL + "\t{" + NL + "\t\tsuper();" + NL + "\t\tinitializeEditingDomain();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This sets up the editing domain for the model editor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void initializeEditingDomain()" + NL + "\t{" + NL + "\t\t// Create an adapter factory that yields item providers." + NL + "\t\t//" + NL + "\t\tadapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);" + NL + "" + NL + "\t\tadapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());";
+  protected final String TEXT_152 = NL + "\t\tadapterFactory.addAdapterFactory(new ";
+  protected final String TEXT_153 = "());";
+  protected final String TEXT_154 = NL + "\t\tadapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());" + NL + "" + NL + "\t\t// Create the command stack that will notify this editor as commands are executed." + NL + "\t\t//";
+  protected final String TEXT_155 = NL + "\t\tBasicCommandStack commandStack = new BasicCommandStack();";
+  protected final String TEXT_156 = NL + "\t\tBasicCommandStack commandStack =" + NL + "\t\t\tnew BasicCommandStack()" + NL + "\t\t\t{";
+  protected final String TEXT_157 = NL + "\t\t\t\t@Override";
+  protected final String TEXT_158 = NL + "\t\t\t\tpublic void execute(Command command)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t// Cancel live validation before executing a command that will trigger a new round of validation." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tif (!(command instanceof ";
+  protected final String TEXT_159 = ".NonDirtying))" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\t";
+  protected final String TEXT_160 = ".cancel(editingDomain);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tsuper.execute(command);" + NL + "\t\t\t\t}" + NL + "\t\t\t};";
+  protected final String TEXT_161 = NL + NL + "\t\t// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus." + NL + "\t\t//" + NL + "\t\tcommandStack.addCommandStackListener" + NL + "\t\t\t(new CommandStackListener()" + NL + "\t\t\t {";
+  protected final String TEXT_162 = NL + "\t\t\t\t @Override";
+  protected final String TEXT_163 = NL + "\t\t\t\t public void commandStackChanged(final EventObject event)" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t getContainer().getDisplay().asyncExec" + NL + "\t\t\t\t\t\t (new Runnable()" + NL + "\t\t\t\t\t\t  {";
+  protected final String TEXT_164 = NL + "\t\t\t\t\t\t\t  @Override";
+  protected final String TEXT_165 = NL + "\t\t\t\t\t\t\t  public void run()" + NL + "\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t  firePropertyChange(IEditorPart.PROP_DIRTY);" + NL + "" + NL + "\t\t\t\t\t\t\t\t  // Try to select the affected objects." + NL + "\t\t\t\t\t\t\t\t  //" + NL + "\t\t\t\t\t\t\t\t  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();" + NL + "\t\t\t\t\t\t\t\t  if (mostRecentCommand != null)" + NL + "\t\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t\t  setSelectionToViewer(mostRecentCommand.getAffectedObjects());" + NL + "\t\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t\t\t  for (Iterator";
+  protected final String TEXT_166 = "<PropertySheetPage>";
+  protected final String TEXT_167 = " i = propertySheetPages.iterator(); i.hasNext(); )" + NL + "\t\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t\t  PropertySheetPage propertySheetPage = ";
+  protected final String TEXT_168 = "(PropertySheetPage)";
+  protected final String TEXT_169 = "i.next();" + NL + "\t\t\t\t\t\t\t\t\t  if (propertySheetPage.getControl().isDisposed())" + NL + "\t\t\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t\t\t  i.remove();" + NL + "\t\t\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t\t\t\t  else" + NL + "\t\t\t\t\t\t\t\t\t  {" + NL + "\t\t\t\t\t\t\t\t\t\t  propertySheetPage.refresh();" + NL + "\t\t\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t\t  }" + NL + "\t\t\t\t\t\t  });" + NL + "\t\t\t\t }" + NL + "\t\t\t });" + NL + "" + NL + "\t\t// Create the editing domain with a special command stack." + NL + "\t\t//" + NL + "\t\teditingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new ";
+  protected final String TEXT_170 = "());" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is here for the listener to be able to call it." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_171 = NL + "\tprotected void firePropertyChange(int action)" + NL + "\t{" + NL + "\t\tsuper.firePropertyChange(action);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This sets the selection into whichever viewer is active." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setSelectionToViewer(";
+  protected final String TEXT_172 = " collection)" + NL + "\t{" + NL + "\t\tfinal ";
+  protected final String TEXT_173 = " theSelection = collection;" + NL + "\t\t// Make sure it's okay." + NL + "\t\t//" + NL + "\t\tif (theSelection != null && !theSelection.isEmpty())" + NL + "\t\t{" + NL + "\t\t\tRunnable runnable =" + NL + "\t\t\t\tnew Runnable()" + NL + "\t\t\t\t{";
+  protected final String TEXT_174 = NL + "\t\t\t\t\t@Override";
+  protected final String TEXT_175 = NL + "\t\t\t\t\tpublic void run()" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\t// Try to select the items in the current content viewer of the editor." + NL + "\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\tif (currentViewer != null)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tcurrentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\tgetSite().getShell().getDisplay().asyncExec(runnable);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This returns the editing domain as required by the {@link IEditingDomainProvider} interface." + NL + "\t * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}" + NL + "\t * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_176 = NL + "\t@Override";
+  protected final String TEXT_177 = NL + "\tpublic EditingDomain getEditingDomain()" + NL + "\t{" + NL + "\t\treturn editingDomain;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory)" + NL + "\t\t{" + NL + "\t\t\tsuper(adapterFactory);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_178 = NL + "\t\t@Override";
+  protected final String TEXT_179 = NL + "\t\tpublic Object [] getElements(Object object)" + NL + "\t\t{" + NL + "\t\t\tObject parent = super.getParent(object);" + NL + "\t\t\treturn (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_180 = NL + "\t\tpublic Object [] getChildren(Object object)" + NL + "\t\t{" + NL + "\t\t\tObject parent = super.getParent(object);" + NL + "\t\t\treturn (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_181 = NL + "\t\tpublic boolean hasChildren(Object object)" + NL + "\t\t{" + NL + "\t\t\tObject parent = super.getParent(object);" + NL + "\t\t\treturn parent != null;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_182 = NL + "\t\tpublic Object getParent(Object object)" + NL + "\t\t{" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t}";
+  protected final String TEXT_183 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setCurrentViewerPane(ViewerPane viewerPane)" + NL + "\t{" + NL + "\t\tif (currentViewerPane != viewerPane)" + NL + "\t\t{" + NL + "\t\t\tif (currentViewerPane != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcurrentViewerPane.showFocus(false);" + NL + "\t\t\t}" + NL + "\t\t\tcurrentViewerPane = viewerPane;" + NL + "\t\t}" + NL + "\t\tsetCurrentViewer(currentViewerPane.getViewer());" + NL + "\t}";
+  protected final String TEXT_184 = NL + NL + "\t/**" + NL + "\t * This makes sure that one content viewer, either for the current page or the outline view, if it has focus," + NL + "\t * is the current one." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setCurrentViewer(Viewer viewer)" + NL + "\t{" + NL + "\t\t// If it is changing..." + NL + "\t\t//" + NL + "\t\tif (currentViewer != viewer)" + NL + "\t\t{" + NL + "\t\t\tif (selectionChangedListener == null)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Create the listener on demand." + NL + "\t\t\t\t//" + NL + "\t\t\t\tselectionChangedListener =" + NL + "\t\t\t\t\tnew ISelectionChangedListener()" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\t// This just notifies those things that are affected by the section." + NL + "\t\t\t\t\t\t//";
+  protected final String TEXT_185 = NL + "\t\t\t\t\t\tpublic void selectionChanged(SelectionChangedEvent selectionChangedEvent)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsetSelection(selectionChangedEvent.getSelection());" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Stop listening to the old one." + NL + "\t\t\t//" + NL + "\t\t\tif (currentViewer != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcurrentViewer.removeSelectionChangedListener(selectionChangedListener);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Start listening to the new one." + NL + "\t\t\t//" + NL + "\t\t\tif (viewer != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tviewer.addSelectionChangedListener(selectionChangedListener);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Remember it." + NL + "\t\t\t//" + NL + "\t\t\tcurrentViewer = viewer;" + NL + "" + NL + "\t\t\t// Set the editors selection based on the current viewer's selection." + NL + "\t\t\t//" + NL + "\t\t\tsetSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This returns the viewer as required by the {@link IViewerProvider} interface." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_186 = NL + "\tpublic Viewer getViewer()" + NL + "\t{" + NL + "\t\treturn currentViewer;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This creates a context menu for the viewer and adds a listener as well registering the menu for extension." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createContextMenuFor(StructuredViewer viewer)" + NL + "\t{" + NL + "\t\tMenuManager contextMenu = new MenuManager(\"#PopUp\");";
+  protected final String TEXT_187 = NL + "\t\tcontextMenu.add(new Separator(\"additions\"));";
+  protected final String TEXT_188 = NL + "\t\tcontextMenu.setRemoveAllWhenShown(true);" + NL + "\t\tcontextMenu.addMenuListener(this);" + NL + "\t\tMenu menu= contextMenu.createContextMenu(viewer.getControl());" + NL + "\t\tviewer.getControl().setMenu(menu);";
+  protected final String TEXT_189 = NL + "\t\tgetSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));";
+  protected final String TEXT_190 = NL + "\t\tgetSite().registerContextMenu(contextMenu, viewer);";
+  protected final String TEXT_191 = NL + NL + "\t\tint dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;" + NL + "\t\tTransfer[] transfers = new Transfer[] { LocalTransfer.getInstance()";
+  protected final String TEXT_192 = ", LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance()";
+  protected final String TEXT_193 = " };" + NL + "\t\tviewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));" + NL + "\t\tviewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is the method called to load a resource into the editing domain's resource set based on the editor's input." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void createModel()" + NL + "\t{";
+  protected final String TEXT_194 = NL + "\t\tURI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter());";
+  protected final String TEXT_195 = NL + "\t\tURI resourceURI = EditUIUtil.getURI(getEditorInput());";
+  protected final String TEXT_196 = NL + "\t\tURI resourceURI = URI.createURI(getEditorInput().getName());";
+  protected final String TEXT_197 = NL + "\t\t// Assumes that the input is a file object." + NL + "\t\t//" + NL + "\t\tIFileEditorInput modelFile = (IFileEditorInput)getEditorInput();" + NL + "\t\tURI resourceURI = URI.createPlatformResourceURI(modelFile.getFile().getFullPath().toString(), true);";
+  protected final String TEXT_198 = NL + "\t\tException exception = null;" + NL + "\t\tResource resource = null;" + NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\t// Load the resource through the editing domain." + NL + "\t\t\t//" + NL + "\t\t\tresource = editingDomain.getResourceSet().getResource(resourceURI, true);" + NL + "\t\t}" + NL + "\t\tcatch (Exception e)" + NL + "\t\t{" + NL + "\t\t\texception = e;" + NL + "\t\t\tresource = editingDomain.getResourceSet().getResource(resourceURI, false);" + NL + "\t\t}" + NL + "" + NL + "\t\tDiagnostic diagnostic = analyzeResourceProblems(resource, exception);" + NL + "\t\tif (diagnostic.getSeverity() != Diagnostic.OK)" + NL + "\t\t{" + NL + "\t\t\tresourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));" + NL + "\t\t}" + NL + "\t\teditingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Returns a diagnostic describing the errors and warnings listed in the resource" + NL + "\t * and the specified exception (if any)." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Diagnostic analyzeResourceProblems(Resource resource, Exception exception)" + NL + "\t{" + NL + "\t\tboolean hasErrors = !resource.getErrors().isEmpty();" + NL + "\t\tif (hasErrors || !resource.getWarnings().isEmpty())" + NL + "\t\t{" + NL + "\t\t\tBasicDiagnostic basicDiagnostic =" + NL + "\t\t\t\tnew BasicDiagnostic" + NL + "\t\t\t\t\t(hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING," + NL + "\t\t\t\t\t \"";
+  protected final String TEXT_199 = NL + "\t\t\t\t\t 0," + NL + "\t\t\t\t\t getString(\"_UI_CreateModelError_message\", resource.getURI()),";
+  protected final String TEXT_200 = NL + "\t\t\t\t\t new Object [] { exception == null ? (Object)resource : exception });" + NL + "\t\t\tbasicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));" + NL + "\t\t\treturn basicDiagnostic;" + NL + "\t\t}" + NL + "\t\telse if (exception != null)" + NL + "\t\t{" + NL + "\t\t\treturn" + NL + "\t\t\t\tnew BasicDiagnostic" + NL + "\t\t\t\t\t(Diagnostic.ERROR," + NL + "\t\t\t\t\t \"";
+  protected final String TEXT_201 = NL + "\t\t\t\t\t new Object[] { exception });" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\treturn Diagnostic.OK_INSTANCE;" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is the method used by the framework to install your own controls." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_202 = NL + "\tpublic void createPages()" + NL + "\t{" + NL + "\t\t// Creates the model from the editor input" + NL + "\t\t//" + NL + "\t\tcreateModel();" + NL + "" + NL + "\t\t// Only creates the other pages if there is something that can be edited" + NL + "\t\t//" + NL + "\t\tif (!getEditingDomain().getResourceSet().getResources().isEmpty())" + NL + "\t\t{" + NL + "\t\t\t// Create a page for the selection tree view." + NL + "\t\t\t//";
+  protected final String TEXT_203 = NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
+  protected final String TEXT_204 = ".this)" + NL + "\t\t\t\t\t{";
+  protected final String TEXT_205 = NL + "\t\t\t\t\t\tpublic Viewer createViewer(Composite composite)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tTree tree = new Tree(composite, SWT.MULTI);" + NL + "\t\t\t\t\t\t\tTreeViewer newTreeViewer = new TreeViewer(tree);" + NL + "\t\t\t\t\t\t\treturn newTreeViewer;" + NL + "\t\t\t\t\t\t}";
+  protected final String TEXT_206 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "" + NL + "\t\t\t\tselectionViewer = (TreeViewer)viewerPane.getViewer();" + NL + "\t\t\t\tselectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\tselectionViewer.setUseHashlookup(true);" + NL + "" + NL + "\t\t\t\tselectionViewer.setLabelProvider(";
+  protected final String TEXT_207 = "new ";
+  protected final String TEXT_208 = "(";
+  protected final String TEXT_209 = "(adapterFactory";
+  protected final String TEXT_210 = ", selectionViewer";
+  protected final String TEXT_211 = ")";
+  protected final String TEXT_212 = ", new ";
+  protected final String TEXT_213 = "(editingDomain";
+  protected final String TEXT_214 = ".getResourceSet()";
+  protected final String TEXT_215 = ".getPlugin().getDialogSettings()";
+  protected final String TEXT_216 = "))";
+  protected final String TEXT_217 = ");" + NL + "\t\t\t\tselectionViewer.setInput(editingDomain.getResourceSet());" + NL + "\t\t\t\tselectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);" + NL + "\t\t\t\tviewerPane.setTitle(editingDomain.getResourceSet());" + NL + "" + NL + "\t\t\t\tnew AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);";
+  protected final String TEXT_218 = NL + "\t\t\t\tnew ";
+  protected final String TEXT_219 = "(selectionViewer, new ";
+  protected final String TEXT_220 = ".EditingDomainLocationListener(editingDomain, selectionViewer));";
+  protected final String TEXT_221 = NL + NL + "\t\t\t\tcreateContextMenuFor(selectionViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_SelectionPage_label\"));";
+  protected final String TEXT_222 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Create a page for the parent tree view." + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
+  protected final String TEXT_223 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "" + NL + "\t\t\t\tparentViewer = (TreeViewer)viewerPane.getViewer();" + NL + "\t\t\t\tparentViewer.setAutoExpandLevel(30);" + NL + "\t\t\t\tparentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\tparentViewer.setLabelProvider(";
+  protected final String TEXT_224 = ", parentViewer";
+  protected final String TEXT_225 = ");" + NL + "" + NL + "\t\t\t\tcreateContextMenuFor(parentViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_ParentPage_label\"));";
+  protected final String TEXT_226 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// This is the page for the list viewer" + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
+  protected final String TEXT_227 = NL + "\t\t\t\t\t\tpublic Viewer createViewer(Composite composite)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn new ListViewer(composite);" + NL + "\t\t\t\t\t\t}";
+  protected final String TEXT_228 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "\t\t\t\tlistViewer = (ListViewer)viewerPane.getViewer();" + NL + "\t\t\t\tlistViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\tlistViewer.setLabelProvider(";
+  protected final String TEXT_229 = ", listViewer";
+  protected final String TEXT_230 = ");" + NL + "" + NL + "\t\t\t\tcreateContextMenuFor(listViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_ListPage_label\"));";
+  protected final String TEXT_231 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// This is the page for the tree viewer" + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
+  protected final String TEXT_232 = NL + "\t\t\t\t\t\tpublic Viewer createViewer(Composite composite)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn new TreeViewer(composite);" + NL + "\t\t\t\t\t\t}";
+  protected final String TEXT_233 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "\t\t\t\ttreeViewer = (TreeViewer)viewerPane.getViewer();" + NL + "\t\t\t\ttreeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\ttreeViewer.setLabelProvider(";
+  protected final String TEXT_234 = ", treeViewer";
+  protected final String TEXT_235 = ", treeViewer))";
+  protected final String TEXT_236 = ");" + NL + "" + NL + "\t\t\t\tnew AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);";
+  protected final String TEXT_237 = "(treeViewer, new ";
+  protected final String TEXT_238 = ".EditingDomainLocationListener(editingDomain, treeViewer));";
+  protected final String TEXT_239 = NL + NL + "\t\t\t\tcreateContextMenuFor(treeViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_TreePage_label\"));";
+  protected final String TEXT_240 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// This is the page for the table viewer." + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
+  protected final String TEXT_241 = NL + "\t\t\t\t\t\tpublic Viewer createViewer(Composite composite)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\treturn new TableViewer(composite);" + NL + "\t\t\t\t\t\t}";
+  protected final String TEXT_242 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "\t\t\t\ttableViewer = (TableViewer)viewerPane.getViewer();" + NL + "" + NL + "\t\t\t\tTable table = tableViewer.getTable();" + NL + "\t\t\t\tTableLayout layout = new TableLayout();" + NL + "\t\t\t\ttable.setLayout(layout);" + NL + "\t\t\t\ttable.setHeaderVisible(true);" + NL + "\t\t\t\ttable.setLinesVisible(true);" + NL + "" + NL + "\t\t\t\tTableColumn objectColumn = new TableColumn(table, SWT.NONE);" + NL + "\t\t\t\tlayout.addColumnData(new ColumnWeightData(3, 100, true));" + NL + "\t\t\t\tobjectColumn.setText(getString(\"_UI_ObjectColumn_label\"));";
+  protected final String TEXT_243 = NL + "\t\t\t\tobjectColumn.setResizable(true);" + NL + "" + NL + "\t\t\t\tTableColumn selfColumn = new TableColumn(table, SWT.NONE);" + NL + "\t\t\t\tlayout.addColumnData(new ColumnWeightData(2, 100, true));" + NL + "\t\t\t\tselfColumn.setText(getString(\"_UI_SelfColumn_label\"));";
+  protected final String TEXT_244 = NL + "\t\t\t\tselfColumn.setResizable(true);" + NL + "" + NL + "\t\t\t\ttableViewer.setColumnProperties(new String [] {\"a\", \"b\"});";
+  protected final String TEXT_245 = NL + "\t\t\t\ttableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\ttableViewer.setLabelProvider(";
+  protected final String TEXT_246 = ", tableViewer";
+  protected final String TEXT_247 = ");" + NL;
+  protected final String TEXT_248 = "(tableViewer, new ";
+  protected final String TEXT_249 = ".EditingDomainLocationListener(editingDomain, tableViewer));" + NL;
+  protected final String TEXT_250 = NL + "\t\t\t\tcreateContextMenuFor(tableViewer);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_TablePage_label\"));";
+  protected final String TEXT_251 = NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// This is the page for the table tree viewer." + NL + "\t\t\t//" + NL + "\t\t\t{" + NL + "\t\t\t\tViewerPane viewerPane =" + NL + "\t\t\t\t\tnew ViewerPane(getSite().getPage(), ";
+  protected final String TEXT_252 = NL + "\t\t\t\t\t\tpublic void requestActivation()" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tsuper.requestActivation();" + NL + "\t\t\t\t\t\t\tsetCurrentViewerPane(this);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t};" + NL + "\t\t\t\tviewerPane.createControl(getContainer());" + NL + "" + NL + "\t\t\t\ttreeViewerWithColumns = (TreeViewer)viewerPane.getViewer();" + NL + "" + NL + "\t\t\t\tTree tree = treeViewerWithColumns.getTree();" + NL + "\t\t\t\ttree.setLayoutData(new FillLayout());" + NL + "\t\t\t\ttree.setHeaderVisible(true);" + NL + "\t\t\t\ttree.setLinesVisible(true);" + NL + "" + NL + "\t\t\t\tTreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);" + NL + "\t\t\t\tobjectColumn.setText(getString(\"_UI_ObjectColumn_label\"));";
+  protected final String TEXT_253 = NL + "\t\t\t\tobjectColumn.setResizable(true);" + NL + "\t\t\t\tobjectColumn.setWidth(250);" + NL + "" + NL + "\t\t\t\tTreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);" + NL + "\t\t\t\tselfColumn.setText(getString(\"_UI_SelfColumn_label\"));";
+  protected final String TEXT_254 = NL + "\t\t\t\tselfColumn.setResizable(true);" + NL + "\t\t\t\tselfColumn.setWidth(200);" + NL + "" + NL + "\t\t\t\ttreeViewerWithColumns.setColumnProperties(new String [] {\"a\", \"b\"});";
+  protected final String TEXT_255 = NL + "\t\t\t\ttreeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\ttreeViewerWithColumns.setLabelProvider(";
+  protected final String TEXT_256 = ", treeViewerWithColumns";
+  protected final String TEXT_257 = "(treeViewerWithColumns, new ";
+  protected final String TEXT_258 = ".EditingDomainLocationListener(editingDomain, treeViewerWithColumns));" + NL;
+  protected final String TEXT_259 = NL + "\t\t\t\tcreateContextMenuFor(treeViewerWithColumns);" + NL + "\t\t\t\tint pageIndex = addPage(viewerPane.getControl());" + NL + "\t\t\t\tsetPageText(pageIndex, getString(\"_UI_TreeWithColumnsPage_label\"));";
+  protected final String TEXT_260 = NL + "\t\t\tTree tree = new Tree(getContainer(), SWT.MULTI);" + NL + "\t\t\tselectionViewer = new TreeViewer(tree);" + NL + "\t\t\tsetCurrentViewer(selectionViewer);" + NL + "" + NL + "\t\t\tselectionViewer.setUseHashlookup(true);" + NL + "\t\t\tselectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\tselectionViewer.setLabelProvider(";
+  protected final String TEXT_261 = ");" + NL + "\t\t\tselectionViewer.setInput(editingDomain.getResourceSet());" + NL + "\t\t\tselectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);" + NL + "" + NL + "\t\t\tnew AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);";
+  protected final String TEXT_262 = NL + "\t\t\tnew ";
+  protected final String TEXT_263 = NL + NL + "\t\t\tcreateContextMenuFor(selectionViewer);" + NL + "\t\t\tint pageIndex = addPage(tree);" + NL + "\t\t\tsetPageText(pageIndex, getString(\"_UI_SelectionPage_label\"));";
+  protected final String TEXT_264 = NL + NL + "\t\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t\t(new Runnable()" + NL + "\t\t\t\t {";
+  protected final String TEXT_265 = NL + "\t\t\t\t\t @Override";
+  protected final String TEXT_266 = NL + "\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t {" + NL + "\t\t\t\t\t\t if (!getContainer().isDisposed())" + NL + "\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t setActivePage(0);" + NL + "\t\t\t\t\t\t }" + NL + "\t\t\t\t\t }" + NL + "\t\t\t\t });" + NL + "\t\t}" + NL + "" + NL + "\t\t// Ensures that this editor will only display the page's tab" + NL + "\t\t// area if there are more than one page" + NL + "\t\t//" + NL + "\t\tgetContainer().addControlListener" + NL + "\t\t\t(new ControlAdapter()" + NL + "\t\t\t {" + NL + "\t\t\t\tboolean guard = false;";
+  protected final String TEXT_267 = NL + "\t\t\t\tpublic void controlResized(ControlEvent event)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tif (!guard)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tguard = true;" + NL + "\t\t\t\t\t\thideTabs();" + NL + "\t\t\t\t\t\tguard = false;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t });" + NL + "" + NL + "\t\tgetSite().getShell().getDisplay().asyncExec" + NL + "\t\t\t(new Runnable()" + NL + "\t\t\t {";
+  protected final String TEXT_268 = NL + "\t\t\t\t public void run()" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t updateProblemIndication();" + NL + "\t\t\t\t }" + NL + "\t\t\t });" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * If there is just one page in the multi-page editor part," + NL + "\t * this hides the single tab at the bottom." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void hideTabs()" + NL + "\t{" + NL + "\t\tif (getPageCount() <= 1)" + NL + "\t\t{" + NL + "\t\t\tsetPageText(0, \"\");";
+  protected final String TEXT_269 = NL + "\t\t\tif (getContainer() instanceof CTabFolder)" + NL + "\t\t\t{" + NL + "\t\t\t\tPoint point = getContainer().getSize();" + NL + "\t\t\t\tRectangle clientArea = getContainer().getClientArea();" + NL + "\t\t\t\tgetContainer().setSize(point.x,  2 * point.y - clientArea.height - clientArea.y);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * If there is more than one page in the multi-page editor part," + NL + "\t * this shows the tabs at the bottom." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void showTabs()" + NL + "\t{" + NL + "\t\tif (getPageCount() > 1)" + NL + "\t\t{" + NL + "\t\t\tsetPageText(0, getString(\"_UI_SelectionPage_label\"));";
+  protected final String TEXT_270 = NL + "\t\t\tif (getContainer() instanceof CTabFolder)" + NL + "\t\t\t{" + NL + "\t\t\t\tPoint point = getContainer().getSize();" + NL + "\t\t\t\tRectangle clientArea = getContainer().getClientArea();" + NL + "\t\t\t\tgetContainer().setSize(point.x, clientArea.height + clientArea.y);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is used to track the active viewer." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_271 = NL + "\tprotected void pageChange(int pageIndex)" + NL + "\t{" + NL + "\t\tsuper.pageChange(pageIndex);" + NL + "" + NL + "\t\tif (contentOutlinePage != null)" + NL + "\t\t{" + NL + "\t\t\thandleContentOutlineSelection(contentOutlinePage.getSelection());" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is how the framework determines which interfaces we implement." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_272 = NL + "\t@SuppressWarnings(\"";
+  protected final String TEXT_273 = "rawtypes";
+  protected final String TEXT_274 = "unchecked";
+  protected final String TEXT_275 = "\")";
+  protected final String TEXT_276 = NL + "\tpublic <T> T getAdapter(Class<T> key)";
+  protected final String TEXT_277 = NL + "\tpublic Object getAdapter(Class key)";
+  protected final String TEXT_278 = NL + "\t{" + NL + "\t\tif (key.equals(IContentOutlinePage.class))" + NL + "\t\t{";
+  protected final String TEXT_279 = NL + "\t\t\treturn showOutlineView() ? key.cast(getContentOutlinePage()) : null;";
+  protected final String TEXT_280 = NL + "\t\t\treturn showOutlineView() ? getContentOutlinePage() : null;";
+  protected final String TEXT_281 = NL + "\t\t}" + NL + "\t\telse if (key.equals(IPropertySheetPage.class))" + NL + "\t\t{";
+  protected final String TEXT_282 = NL + "\t\t\treturn key.cast(getPropertySheetPage());";
+  protected final String TEXT_283 = NL + "\t\t\treturn getPropertySheetPage();";
+  protected final String TEXT_284 = NL + "\t\t}";
+  protected final String TEXT_285 = NL + "\t\telse if (key.equals(IGotoMarker.class))" + NL + "\t\t{";
+  protected final String TEXT_286 = NL + "\t\t\treturn key.cast(this);";
+  protected final String TEXT_287 = NL + "\t\t\treturn this;";
+  protected final String TEXT_288 = NL + "\t\telse if (key.equals(";
+  protected final String TEXT_289 = ".class)) " + NL + "\t\t{" + NL + "\t\t\treturn ";
+  protected final String TEXT_290 = ".getAdapter(key, this, ";
+  protected final String TEXT_291 = ".getPlugin());" + NL + "\t\t}";
+  protected final String TEXT_292 = NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\treturn super.getAdapter(key);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This accesses a cached version of the content outliner." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IContentOutlinePage getContentOutlinePage()" + NL + "\t{" + NL + "\t\tif (contentOutlinePage == null)" + NL + "\t\t{" + NL + "\t\t\t// The content outline is just a tree." + NL + "\t\t\t//" + NL + "\t\t\tclass MyContentOutlinePage extends ContentOutlinePage" + NL + "\t\t\t{";
+  protected final String TEXT_293 = NL + "\t\t\t\tpublic void createControl(Composite parent)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.createControl(parent);" + NL + "\t\t\t\t\tcontentOutlineViewer = getTreeViewer();" + NL + "\t\t\t\t\tcontentOutlineViewer.addSelectionChangedListener(this);" + NL + "" + NL + "\t\t\t\t\t// Set up the tree viewer." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tcontentOutlineViewer.setUseHashlookup(true);" + NL + "\t\t\t\t\tcontentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\t\t\t\tcontentOutlineViewer.setLabelProvider(";
+  protected final String TEXT_294 = ", contentOutlineViewer";
+  protected final String TEXT_295 = ");" + NL + "\t\t\t\t\tcontentOutlineViewer.setInput(editingDomain.getResourceSet());" + NL;
+  protected final String TEXT_296 = NL + "\t\t\t\t\tnew ";
+  protected final String TEXT_297 = "(contentOutlineViewer, new ";
+  protected final String TEXT_298 = ".EditingDomainLocationListener(editingDomain, contentOutlineViewer));" + NL;
+  protected final String TEXT_299 = NL + "\t\t\t\t\t// Make sure our popups work." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tcreateContextMenuFor(contentOutlineViewer);" + NL + "" + NL + "\t\t\t\t\tif (!editingDomain.getResourceSet().getResources().isEmpty())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t  // Select the root object in the view." + NL + "\t\t\t\t\t  //" + NL + "\t\t\t\t\t  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL;
+  protected final String TEXT_300 = NL + "\t\t\t\tpublic void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.makeContributions(menuManager, toolBarManager, statusLineManager);" + NL + "\t\t\t\t\tcontentOutlineStatusLineManager = statusLineManager;" + NL + "\t\t\t\t}" + NL;
+  protected final String TEXT_301 = NL + "\t\t\t\tpublic void setActionBars(IActionBars actionBars)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.setActionBars(actionBars);" + NL + "\t\t\t\t\tgetActionBarContributor().shareGlobalActions(this, actionBars);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tcontentOutlinePage = new MyContentOutlinePage();" + NL + "" + NL + "\t\t\t// Listen to selection so that we can handle it is a special way." + NL + "\t\t\t//" + NL + "\t\t\tcontentOutlinePage.addSelectionChangedListener" + NL + "\t\t\t\t(new ISelectionChangedListener()" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t // This ensures that we handle selections correctly." + NL + "\t\t\t\t\t //";
+  protected final String TEXT_302 = NL + "\t\t\t\t\t public void selectionChanged(SelectionChangedEvent event)" + NL + "\t\t\t\t\t {" + NL + "\t\t\t\t\t\t handleContentOutlineSelection(event.getSelection());" + NL + "\t\t\t\t\t }" + NL + "\t\t\t\t });" + NL + "\t\t}" + NL + "" + NL + "\t\treturn contentOutlinePage;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This accesses a cached version of the property sheet." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IPropertySheetPage getPropertySheetPage()" + NL + "\t{" + NL + "\t\tPropertySheetPage propertySheetPage =" + NL + "\t\t\tnew ExtendedPropertySheetPage(editingDomain";
+  protected final String TEXT_303 = ", ExtendedPropertySheetPage.Decoration.MANUAL";
+  protected final String TEXT_304 = ", ExtendedPropertySheetPage.Decoration.LIVE, ";
+  protected final String TEXT_305 = "ExtendedPropertySheetPage.Decoration.NONE, ";
+  protected final String TEXT_306 = "null, ";
+  protected final String TEXT_307 = ")" + NL + "\t\t\t{";
+  protected final String TEXT_308 = NL + "\t\t\t\tpublic void setSelectionToViewer(";
+  protected final String TEXT_309 = " selection)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_310 = ".this.setSelectionToViewer(selection);" + NL + "\t\t\t\t\t";
+  protected final String TEXT_311 = ".this.setFocus();" + NL + "\t\t\t\t}" + NL;
+  protected final String TEXT_312 = NL + "\t\t\t\tpublic void setActionBars(IActionBars actionBars)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsuper.setActionBars(actionBars);" + NL + "\t\t\t\t\tgetActionBarContributor().shareGlobalActions(this, actionBars);" + NL + "\t\t\t\t}" + NL + "\t\t\t};" + NL + "\t\tpropertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));" + NL + "\t\tpropertySheetPages.add(propertySheetPage);" + NL + "" + NL + "\t\treturn propertySheetPage;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This deals with how we want selection in the outliner to affect the other views." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void handleContentOutlineSelection(ISelection selection)" + NL + "\t{";
+  protected final String TEXT_313 = NL + "\t\tif (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection)";
+  protected final String TEXT_314 = NL + "\t\tif (selectionViewer != null && !selection.isEmpty() && selection instanceof IStructuredSelection)";
+  protected final String TEXT_315 = NL + "\t\t{" + NL + "\t\t\tIterator";
+  protected final String TEXT_316 = "<?>";
+  protected final String TEXT_317 = " selectedElements = ((IStructuredSelection)selection).iterator();" + NL + "\t\t\tif (selectedElements.hasNext())" + NL + "\t\t\t{" + NL + "\t\t\t\t// Get the first selected element." + NL + "\t\t\t\t//" + NL + "\t\t\t\tObject selectedElement = selectedElements.next();" + NL;
+  protected final String TEXT_318 = NL + "\t\t\t\t// If it's the selection viewer, then we want it to select the same selection as this selection." + NL + "\t\t\t\t//" + NL + "\t\t\t\tif (currentViewerPane.getViewer() == selectionViewer)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_319 = " selectionList = new ";
+  protected final String TEXT_320 = "();" + NL + "\t\t\t\t\tselectionList.add(selectedElement);" + NL + "\t\t\t\t\twhile (selectedElements.hasNext())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tselectionList.add(selectedElements.next());" + NL + "\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t// Set the selection to the widget." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tselectionViewer.setSelection(new StructuredSelection(selectionList));" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t// Set the input to the widget." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tif (currentViewerPane.getViewer().getInput() != selectedElement)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tcurrentViewerPane.getViewer().setInput(selectedElement);" + NL + "\t\t\t\t\t\tcurrentViewerPane.setTitle(selectedElement);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}";
+  protected final String TEXT_321 = NL + "\t\t\t\t";
+  protected final String TEXT_322 = "();" + NL + "\t\t\t\tselectionList.add(selectedElement);" + NL + "\t\t\t\twhile (selectedElements.hasNext())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tselectionList.add(selectedElements.next());" + NL + "\t\t\t\t}" + NL + "" + NL + "\t\t\t\t// Set the selection to the widget." + NL + "\t\t\t\t//" + NL + "\t\t\t\tselectionViewer.setSelection(new StructuredSelection(selectionList));";
+  protected final String TEXT_323 = NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This is for implementing {@link IEditorPart} and simply tests the command stack." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_324 = NL + "\tpublic boolean isDirty()" + NL + "\t{" + NL + "\t\treturn ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();" + NL + "\t}" + NL;
+  protected final String TEXT_325 = NL + "\t/**" + NL + "\t * This is for implementing {@link IRevertablePart}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_326 = NL + "\tpublic void doRevert()" + NL + "\t{";
+  protected final String TEXT_327 = NL + "\t\tDiagnosticDecorator.cancel(editingDomain);" + NL;
+  protected final String TEXT_328 = "\t\t" + NL + "\t\tResourceSet resourceSet = editingDomain.getResourceSet();" + NL + "\t\t";
+  protected final String TEXT_329 = " resources = resourceSet.getResources();" + NL + "\t\t";
+  protected final String TEXT_330 = " unloadedResources = new ";
+  protected final String TEXT_331 = "();" + NL + "\t\tupdateProblemIndication = false;" + NL + "\t\tfor (int i = 0; i < resources.size(); ++i)" + NL + "\t\t{" + NL + "\t\t\tResource resource = resources.get(i);" + NL + "\t\t\tif (resource.isLoaded())" + NL + "\t\t\t{" + NL + "\t\t\t\tresource.unload();" + NL + "\t\t\t\tunloadedResources.add(resource);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\tresourceToDiagnosticMap.clear();";
+  protected final String TEXT_332 = NL + "\t\tfor (Resource resource : unloadedResources)";
+  protected final String TEXT_333 = NL + "\t\tfor (Iterator i = unloadedResources.iterator(); i.hasNext(); )";
+  protected final String TEXT_334 = NL + "\t\t{";
+  protected final String TEXT_335 = NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\tresource.load(resourceSet.getLoadOptions());" + NL + "\t\t\t}" + NL + "\t\t\tcatch (IOException exception)" + NL + "\t\t\t{" + NL + "\t\t\t\tif (!resourceToDiagnosticMap.containsKey(resource))" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tresourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\teditingDomain.getCommandStack().flush();" + NL + "" + NL + "\t\tif (AdapterFactoryEditingDomain.isStale(editorSelection))" + NL + "\t\t{" + NL + "\t\t\tsetSelection(StructuredSelection.EMPTY);" + NL + "\t\t}" + NL + "" + NL + "\t\tupdateProblemIndication = true;" + NL + "\t\tupdateProblemIndication();" + NL + "\t}" + NL;
+  protected final String TEXT_336 = NL + "\t/**" + NL + "\t * This is for implementing {@link IEditorPart} and simply saves the model file." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_337 = NL + "\tpublic void doSave(IProgressMonitor progressMonitor)" + NL + "\t{" + NL + "\t\t// Save only resources that have actually changed." + NL + "\t\t//" + NL + "\t\tfinal ";
+  protected final String TEXT_338 = " saveOptions = new ";
+  protected final String TEXT_339 = NL + "\t\tsaveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);";
+  protected final String TEXT_340 = NL + "\t\tsaveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);";
+  protected final String TEXT_341 = NL + NL + "\t\t// Do the work within an operation because this is a long running activity that modifies the workbench." + NL + "\t\t//" + NL + "\t\t";
+  protected final String TEXT_342 = " operation =" + NL + "\t\t\tnew ";
+  protected final String TEXT_343 = "()" + NL + "\t\t\t{" + NL + "\t\t\t\t// This is the method that gets invoked when the operation runs." + NL + "\t\t\t\t//";
+  protected final String TEXT_344 = NL + "\t\t\t\tpublic void ";
+  protected final String TEXT_345 = "(IProgressMonitor monitor)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t// Save the resources to the file system." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tboolean first = true;" + NL + "\t\t\t\t\t";
+  protected final String TEXT_346 = " resources = editingDomain.getResourceSet().getResources();" + NL + "\t\t\t\t\tfor (int i = 0; i < resources.size(); ++i)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tResource resource = ";
+  protected final String TEXT_347 = "(Resource)";
+  protected final String TEXT_348 = "resources.get(i);" + NL + "\t\t\t\t\t\tif ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource))" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\ttry" + NL + "\t\t\t\t\t\t\t{";
+  protected final String TEXT_349 = NL + "\t\t\t\t\t\t\t\tlong timeStamp = resource.getTimeStamp();" + NL + "\t\t\t\t\t\t\t\tresource.save(saveOptions);" + NL + "\t\t\t\t\t\t\t\tif (resource.getTimeStamp() != timeStamp)" + NL + "\t\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\t\tsavedResources.add(resource);" + NL + "\t\t\t\t\t\t\t\t}";
+  protected final String TEXT_350 = NL + "\t\t\t\t\t\t\t\tresource.save(saveOptions);" + NL + "\t\t\t\t\t\t\t\tsavedResources.add(resource);";
+  protected final String TEXT_351 = NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tcatch (Exception exception)" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tresourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tfirst = false;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t};" + NL + "" + NL + "\t\tupdateProblemIndication = false;" + NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\t// This runs the options, and shows progress." + NL + "\t\t\t//" + NL + "\t\t\tnew ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);" + NL + "" + NL + "\t\t\t// Refresh the necessary state." + NL + "\t\t\t//" + NL + "\t\t\t((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();" + NL + "\t\t\tfirePropertyChange(IEditorPart.PROP_DIRTY);" + NL + "\t\t}" + NL + "\t\tcatch (Exception exception)" + NL + "\t\t{" + NL + "\t\t\t// Something went wrong that shouldn't." + NL + "\t\t\t//" + NL + "\t\t\t";
+  protected final String TEXT_352 = ".INSTANCE.log(exception);" + NL + "\t\t}" + NL + "\t\tupdateProblemIndication = true;" + NL + "\t\tupdateProblemIndication();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This returns whether something has been persisted to the URI of the specified resource." + NL + "\t * The implementation uses the URI converter from the editor's resource set to try to open an input stream." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean isPersisted(Resource resource)" + NL + "\t{" + NL + "\t\tboolean result = false;" + NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\tInputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());" + NL + "\t\t\tif (stream != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tresult = true;" + NL + "\t\t\t\tstream.close();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tcatch (IOException e)" + NL + "\t\t{" + NL + "\t\t\t// Ignore" + NL + "\t\t}" + NL + "\t\treturn result;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This always returns true because it is not currently supported." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_353 = NL + "\tpublic boolean isSaveAsAllowed()" + NL + "\t{" + NL + "\t\treturn true;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This also changes the editor's input." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_354 = NL + "\tpublic void doSaveAs()" + NL + "\t{";
+  protected final String TEXT_355 = NL + "\t\tnew ";
+  protected final String TEXT_356 = "(getSite().getShell(), null, SWT.NONE)" + NL + "\t\t\t{";
+  protected final String TEXT_357 = NL + "\t\t\t\tprotected boolean isSave()" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\treturn true;" + NL + "\t\t\t\t}" + NL;
+  protected final String TEXT_358 = NL + "\t\t\t\tprotected boolean processResources()" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t";
+  protected final String TEXT_359 = " uris = getURIs();" + NL + "\t\t\t\t\tif (uris.size() > 0)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tURI uri = ";
+  protected final String TEXT_360 = "uris.get(0);" + NL + "\t\t\t\t\t\tdoSaveAs(uri, new ";
+  protected final String TEXT_361 = "(uri));" + NL + "\t\t\t\t\t\treturn true;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\telse" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\treturn false;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}.open();";
+  protected final String TEXT_362 = NL + "\t\tString[] filters = ";
+  protected final String TEXT_363 = "(String[])";
+  protected final String TEXT_364 = "FILE_EXTENSION_FILTERS.toArray(new String[FILE_EXTENSION_FILTERS.size()]);" + NL + "\t\tString[] files = ";
+  protected final String TEXT_365 = ".openFilePathDialog(getSite().getShell(), ";
+  protected final String TEXT_366 = ".SAVE, filters);" + NL + "\t\tif (files.length > 0)" + NL + "\t\t{" + NL + "\t\t\tURI uri = URI.createFileURI(files[0]);" + NL + "\t\t\tdoSaveAs(uri, new ";
+  protected final String TEXT_367 = "(uri));" + NL + "\t\t}";
+  protected final String TEXT_368 = NL + "\t\tSaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());" + NL + "\t\tsaveAsDialog.open();" + NL + "\t\tIPath path = saveAsDialog.getResult();" + NL + "\t\tif (path != null)" + NL + "\t\t{" + NL + "\t\t\tIFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);" + NL + "\t\t\tif (file != null)" + NL + "\t\t\t{" + NL + "\t\t\t\tdoSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_369 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void doSaveAs(URI uri, IEditorInput editorInput)" + NL + "\t{" + NL + "\t\t(";
+  protected final String TEXT_370 = "editingDomain.getResourceSet().getResources().get(0)).setURI(uri);" + NL + "\t\tsetInputWithNotify(editorInput);" + NL + "\t\tsetPartName(editorInput.getName());" + NL + "\t\tIProgressMonitor progressMonitor =" + NL + "\t\t\tgetActionBars().getStatusLineManager() != null ?" + NL + "\t\t\t\tgetActionBars().getStatusLineManager().getProgressMonitor() :" + NL + "\t\t\t\tnew ";
+  protected final String TEXT_371 = "();" + NL + "\t\tdoSave(progressMonitor);" + NL + "\t}";
+  protected final String TEXT_372 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_373 = NL + "\tpublic void gotoMarker(IMarker marker)" + NL + "\t{";
+  protected final String TEXT_374 = NL + "\t\t";
+  protected final String TEXT_375 = " targetObjects = markerHelper.getTargetObjects(editingDomain, marker);" + NL + "\t\tif (!targetObjects.isEmpty())" + NL + "\t\t{" + NL + "\t\t\tsetSelectionToViewer(targetObjects);" + NL + "\t\t}";
+  protected final String TEXT_376 = NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\tif (marker.isSubtypeOf(EValidator.MARKER))" + NL + "\t\t\t{" + NL + "\t\t\t\tString uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);" + NL + "\t\t\t\tif (uriAttribute != null)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tURI uri = URI.createURI(uriAttribute);" + NL + "\t\t\t\t\tEObject eObject = editingDomain.getResourceSet().getEObject(uri, true);" + NL + "\t\t\t\t\tif (eObject != null)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t  setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tcatch (CoreException exception)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_377 = ".INSTANCE.log(exception);" + NL + "\t\t}";
+  protected final String TEXT_378 = NL + "\t}";
+  protected final String TEXT_379 = NL + NL + "\t/**" + NL + "\t * This is called during startup." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_380 = NL + "\tpublic void init(IEditorSite site, IEditorInput editorInput)" + NL + "\t{" + NL + "\t\tsetSite(site);" + NL + "\t\tsetInputWithNotify(editorInput);" + NL + "\t\tsetPartName(editorInput.getName());" + NL + "\t\tsite.setSelectionProvider(this);" + NL + "\t\tsite.getPage().addPartListener(partListener);";
+  protected final String TEXT_381 = NL + "\t\tResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);";
+  protected final String TEXT_382 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_383 = NL + "\tpublic void setFocus()" + NL + "\t{";
+  protected final String TEXT_384 = NL + "\t\tif (currentViewerPane != null)" + NL + "\t\t{" + NL + "\t\t\tcurrentViewerPane.setFocus();" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\tgetControl(getActivePage()).setFocus();" + NL + "\t\t}";
+  protected final String TEXT_385 = NL + "\t\tgetControl(getActivePage()).setFocus();";
+  protected final String TEXT_386 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_387 = NL + "\tpublic void addSelectionChangedListener(ISelectionChangedListener listener)" + NL + "\t{" + NL + "\t\tselectionChangedListeners.add(listener);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_388 = NL + "\tpublic void removeSelectionChangedListener(ISelectionChangedListener listener)" + NL + "\t{" + NL + "\t\tselectionChangedListeners.remove(listener);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_389 = NL + "\tpublic ISelection getSelection()" + NL + "\t{" + NL + "\t\treturn editorSelection;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection." + NL + "\t * Calling this result will notify the listeners." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_390 = NL + "\tpublic void setSelection(ISelection selection)" + NL + "\t{" + NL + "\t\teditorSelection = selection;" + NL;
+  protected final String TEXT_391 = NL + "\t\tfor (ISelectionChangedListener listener : selectionChangedListeners)";
+  protected final String TEXT_392 = NL + "\t\tfor (Iterator listeners = selectionChangedListeners.iterator(); listeners.hasNext(); )";
+  protected final String TEXT_393 = NL + "\t\t\tISelectionChangedListener listener = (ISelectionChangedListener)listeners.next();";
+  protected final String TEXT_394 = NL + "\t\t\tlistener.selectionChanged(new SelectionChangedEvent(this, selection));" + NL + "\t\t}" + NL + "\t\tsetStatusLineManager(selection);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setStatusLineManager(ISelection selection)" + NL + "\t{" + NL + "\t\tIStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?" + NL + "\t\t\tcontentOutlineStatusLineManager : getActionBars().getStatusLineManager();" + NL + "" + NL + "\t\tif (statusLineManager != null)" + NL + "\t\t{" + NL + "\t\t\tif (selection instanceof IStructuredSelection)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_395 = " collection = ((IStructuredSelection)selection).toList();" + NL + "\t\t\t\tswitch (collection.size())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tcase 0:" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tstatusLineManager.setMessage(getString(\"_UI_NoObjectSelected\"));";
+  protected final String TEXT_396 = NL + "\t\t\t\t\t\tbreak;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tcase 1:" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tString text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());" + NL + "\t\t\t\t\t\tstatusLineManager.setMessage(getString(\"_UI_SingleObjectSelected\", text));";
+  protected final String TEXT_397 = NL + "\t\t\t\t\t\tbreak;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tdefault:" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tstatusLineManager.setMessage(getString(\"_UI_MultiObjectSelected\", Integer.toString(collection.size())));";
+  protected final String TEXT_398 = NL + "\t\t\t\t\t\tbreak;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\telse" + NL + "\t\t\t{" + NL + "\t\t\t\tstatusLineManager.setMessage(\"\");";
+  protected final String TEXT_399 = NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This looks up a string in the plugin's plugin.properties file." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static String getString(String key)" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_400 = ".INSTANCE.getString(key);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This looks up a string in plugin.properties, making a substitution." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static String getString(String key, Object s1)" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_401 = ".INSTANCE.getString(key, new Object [] { s1 });" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_402 = NL + "\tpublic void menuAboutToShow(IMenuManager menuManager)" + NL + "\t{" + NL + "\t\t((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic EditingDomainActionBarContributor getActionBarContributor()" + NL + "\t{" + NL + "\t\treturn (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IActionBars getActionBars()" + NL + "\t{" + NL + "\t\treturn getActionBarContributor().getActionBars();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic AdapterFactory getAdapterFactory()" + NL + "\t{" + NL + "\t\treturn adapterFactory;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_403 = NL + "\tpublic void dispose()" + NL + "\t{" + NL + "\t\tupdateProblemIndication = false;" + NL;
+  protected final String TEXT_404 = NL + "\t\tResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);" + NL;
+  protected final String TEXT_405 = NL + "\t\tgetSite().getPage().removePartListener(partListener);" + NL + "" + NL + "\t\tadapterFactory.dispose();" + NL + "" + NL + "\t\tif (getActionBarContributor().getActiveEditor() == this)" + NL + "\t\t{" + NL + "\t\t\tgetActionBarContributor().setActiveEditor(null);" + NL + "\t\t}" + NL;
+  protected final String TEXT_406 = NL + "\t\tfor (PropertySheetPage propertySheetPage : propertySheetPages)";
+  protected final String TEXT_407 = NL + "\t\tfor (Iterator i = propertySheetPages.iterator(); i.hasNext(); )";
+  protected final String TEXT_408 = NL + "\t\t\tPropertySheetPage propertySheetPage = (PropertySheetPage)i.next();";
+  protected final String TEXT_409 = NL + "\t\t\tpropertySheetPage.dispose();" + NL + "\t\t}" + NL + "" + NL + "\t\tif (contentOutlinePage != null)" + NL + "\t\t{" + NL + "\t\t\tcontentOutlinePage.dispose();" + NL + "\t\t}" + NL + "" + NL + "\t\tsuper.dispose();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Returns whether the outline view should be presented to the user." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean showOutlineView()" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_410 = ";" + NL + "\t}" + NL + "}";
 
   public String generate(Object argument)
   {
@@ -510,109 +540,109 @@
     stringBuffer.append(TEXT_33);
     }
     stringBuffer.append(TEXT_34);
-    if (!genModel.isRichClientPlatform()) {
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
     stringBuffer.append(TEXT_35);
     }
-    stringBuffer.append(TEXT_36);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
-    stringBuffer.append(TEXT_37);
-    }
     if (!genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_38);
+    stringBuffer.append(TEXT_36);
     }
     if (genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {
-    stringBuffer.append(TEXT_39);
+    stringBuffer.append(TEXT_37);
     }
-    stringBuffer.append(TEXT_40);
+    stringBuffer.append(TEXT_38);
     stringBuffer.append(genPackage.getQualifiedItemProviderAdapterFactoryClassName());
-    stringBuffer.append(TEXT_41);
+    stringBuffer.append(TEXT_39);
     genModel.markImportLocation(stringBuffer);
-    stringBuffer.append(TEXT_42);
+    stringBuffer.append(TEXT_40);
     stringBuffer.append(genPackage.getPrefix());
-    stringBuffer.append(TEXT_43);
+    stringBuffer.append(TEXT_41);
     if (genPackage.hasAPITags()) {
     stringBuffer.append(TEXT_3);
     stringBuffer.append(genPackage.getAPITags(genModel.getIndentation(stringBuffer)));
     }
-    stringBuffer.append(TEXT_44);
+    stringBuffer.append(TEXT_42);
     if (isJDK50 && genPackage.hasAPIDeprecatedTag()) {
-    stringBuffer.append(TEXT_45);
+    stringBuffer.append(TEXT_43);
     }
-    stringBuffer.append(TEXT_46);
+    stringBuffer.append(TEXT_44);
     stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_47);
+    stringBuffer.append(TEXT_45);
     if (!genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_48);
+    stringBuffer.append(TEXT_46);
     }
     if (genModel.isRevertAction()) {
-    stringBuffer.append(TEXT_49);
+    stringBuffer.append(TEXT_47);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.util.IRevertablePart"));
     }
-    stringBuffer.append(TEXT_50);
+    stringBuffer.append(TEXT_48);
     if (genModel.hasCopyrightField()) {
-    stringBuffer.append(TEXT_51);
+    stringBuffer.append(TEXT_49);
     stringBuffer.append(genModel.getImportedName("java.lang.String"));
-    stringBuffer.append(TEXT_52);
+    stringBuffer.append(TEXT_50);
     stringBuffer.append(genModel.getCopyrightFieldLiteral());
-    stringBuffer.append(TEXT_53);
+    stringBuffer.append(TEXT_51);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_7);
     }
     if (genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_54);
+    stringBuffer.append(TEXT_52);
     if (genPackage.isGenerateModelWizard()) {
-    stringBuffer.append(TEXT_55);
+    stringBuffer.append(TEXT_53);
     stringBuffer.append(_ListOfString);
-    stringBuffer.append(TEXT_56);
+    stringBuffer.append(TEXT_54);
     stringBuffer.append(genPackage.getImportedModelWizardClassName());
-    stringBuffer.append(TEXT_57);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_58);
-    } else {
     stringBuffer.append(TEXT_55);
-    stringBuffer.append(_ListOfString);
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_56);
+    } else {
+    stringBuffer.append(TEXT_53);
+    stringBuffer.append(_ListOfString);
+    stringBuffer.append(TEXT_54);
     stringBuffer.append(genModel.getImportedName("java.util.Arrays"));
-    stringBuffer.append(TEXT_59);
+    stringBuffer.append(TEXT_57);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_60);
+    stringBuffer.append(TEXT_58);
     stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_61);
+    stringBuffer.append(TEXT_59);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
     stringBuffer.append(genModel.getNonNLS(3));
-    stringBuffer.append(TEXT_58);
+    stringBuffer.append(TEXT_56);
     }
+    stringBuffer.append(TEXT_60);
+    stringBuffer.append(_ListOfString);
+    stringBuffer.append(TEXT_61);
+    stringBuffer.append(_ListOfString);
     stringBuffer.append(TEXT_62);
     stringBuffer.append(_ListOfString);
     stringBuffer.append(TEXT_63);
-    stringBuffer.append(_ListOfString);
-    stringBuffer.append(TEXT_64);
-    stringBuffer.append(_ListOfString);
-    stringBuffer.append(TEXT_65);
     stringBuffer.append(_ArrayListOfString);
-    stringBuffer.append(TEXT_66);
+    stringBuffer.append(TEXT_64);
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_67);
+    stringBuffer.append(TEXT_65);
     } else {
+    stringBuffer.append(TEXT_66);
+    }
+    stringBuffer.append(TEXT_67);
+    }
     stringBuffer.append(TEXT_68);
-    }
-    stringBuffer.append(TEXT_69);
-    }
-    stringBuffer.append(TEXT_70);
     stringBuffer.append(_ListOfPropertySheetPage);
-    stringBuffer.append(TEXT_71);
+    stringBuffer.append(TEXT_69);
     stringBuffer.append(_ArrayListOfPropertySheetPage);
-    stringBuffer.append(TEXT_72);
+    stringBuffer.append(TEXT_70);
     if (genPackage.isMultipleEditorPages()) {
-    stringBuffer.append(TEXT_73);
+    stringBuffer.append(TEXT_71);
     }
-    stringBuffer.append(TEXT_74);
+    stringBuffer.append(TEXT_72);
     stringBuffer.append(_CollectionOfSelectionChangedListener);
-    stringBuffer.append(TEXT_75);
+    stringBuffer.append(TEXT_73);
     stringBuffer.append(_ArrayListOfSelectionChangedListener);
-    stringBuffer.append(TEXT_76);
+    stringBuffer.append(TEXT_74);
     if (!genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_75);
+    }
+    stringBuffer.append(TEXT_76);
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_77);
     }
     stringBuffer.append(TEXT_78);
@@ -622,951 +652,1051 @@
     stringBuffer.append(TEXT_80);
     stringBuffer.append(genPackage.getEditorClassName());
     stringBuffer.append(TEXT_81);
-    stringBuffer.append(_CollectionOfResource);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_77);
+    }
     stringBuffer.append(TEXT_82);
-    stringBuffer.append(_ArrayListOfResource);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_77);
+    }
     stringBuffer.append(TEXT_83);
-    stringBuffer.append(_CollectionOfResource);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_77);
+    }
     stringBuffer.append(TEXT_84);
-    stringBuffer.append(_ArrayListOfResource);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_77);
+    }
     stringBuffer.append(TEXT_85);
     stringBuffer.append(_CollectionOfResource);
     stringBuffer.append(TEXT_86);
     stringBuffer.append(_ArrayListOfResource);
     stringBuffer.append(TEXT_87);
-    stringBuffer.append(_MapOfResourceToDiagnostic);
+    stringBuffer.append(_CollectionOfResource);
     stringBuffer.append(TEXT_88);
-    stringBuffer.append(_LinkedHashMapOfResourceToDiagnostic);
+    stringBuffer.append(_ArrayListOfResource);
     stringBuffer.append(TEXT_89);
-    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(_CollectionOfResource);
     stringBuffer.append(TEXT_90);
-    }
+    stringBuffer.append(_ArrayListOfResource);
     stringBuffer.append(TEXT_91);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_90);
-    }
+    stringBuffer.append(_MapOfResourceToDiagnostic);
     stringBuffer.append(TEXT_92);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_90);
-    }
+    stringBuffer.append(_LinkedHashMapOfResourceToDiagnostic);
     stringBuffer.append(TEXT_93);
-    if (!genModel.isRichClientPlatform()) {
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_77);
+    }
     stringBuffer.append(TEXT_94);
-    stringBuffer.append(_CollectionOfResource);
-    stringBuffer.append(TEXT_84);
-    stringBuffer.append(_ArrayListOfResource);
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_95);
-    stringBuffer.append(_CollectionOfResource);
-    stringBuffer.append(TEXT_82);
-    stringBuffer.append(_ArrayListOfResource);
+    }
     stringBuffer.append(TEXT_96);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_77);
+    }
     stringBuffer.append(TEXT_97);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_77);
     }
     stringBuffer.append(TEXT_98);
-    if (genModel.getDecoration() == GenDecoration.NONE) {
+    if (!genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_99);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_77);
     }
     stringBuffer.append(TEXT_100);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_97);
-    }
+    stringBuffer.append(_CollectionOfResource);
+    stringBuffer.append(TEXT_88);
+    stringBuffer.append(_ArrayListOfResource);
     stringBuffer.append(TEXT_101);
-    if (genModel.getDecoration() == GenDecoration.NONE) {
+    stringBuffer.append(_CollectionOfResource);
+    stringBuffer.append(TEXT_86);
+    stringBuffer.append(_ArrayListOfResource);
     stringBuffer.append(TEXT_102);
-    } else {
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_103);
-    stringBuffer.append(_DiagnosticDecorator);
+    }
     stringBuffer.append(TEXT_104);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF211_VALUE) {
+    if (genModel.getDecoration() != GenDecoration.NONE) {
     stringBuffer.append(TEXT_105);
     }
     stringBuffer.append(TEXT_106);
-    }
+    if (genModel.getDecoration() == GenDecoration.NONE) {
     stringBuffer.append(TEXT_107);
-    stringBuffer.append(_CollectionOfResource);
+    }
     stringBuffer.append(TEXT_108);
-    stringBuffer.append(_CollectionOfResource);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_105);
+    }
     stringBuffer.append(TEXT_109);
-    stringBuffer.append(genPackage.getEditorClassName());
+    if (genModel.getDecoration() == GenDecoration.NONE) {
     stringBuffer.append(TEXT_110);
-    stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_111);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_112);
-    }
-    stringBuffer.append(TEXT_113);
-    stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_114);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_115);
     } else {
-    stringBuffer.append(TEXT_116);
+    stringBuffer.append(TEXT_111);
+    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(TEXT_112);
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF211_VALUE) {
+    stringBuffer.append(TEXT_113);
     }
+    stringBuffer.append(TEXT_114);
+    }
+    stringBuffer.append(TEXT_115);
+    stringBuffer.append(_CollectionOfResource);
+    stringBuffer.append(TEXT_116);
+    stringBuffer.append(_CollectionOfResource);
     stringBuffer.append(TEXT_117);
-    if (!genModel.useGenerics()) {
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_118);
     }
     stringBuffer.append(TEXT_119);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF24_VALUE) {
+    stringBuffer.append(genPackage.getEditorClassName());
     stringBuffer.append(TEXT_120);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_118);
     }
     stringBuffer.append(TEXT_121);
-    stringBuffer.append(genPackage.getGenModel().getEditorPluginID());
+    stringBuffer.append(genPackage.getEditorClassName());
     stringBuffer.append(TEXT_122);
-    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_123);
-    if (genModel.useGenerics()) {
+    }
     stringBuffer.append(TEXT_124);
-    } else {
+    stringBuffer.append(genPackage.getEditorClassName());
     stringBuffer.append(TEXT_125);
-    }
-    stringBuffer.append(TEXT_117);
-    if (!genModel.useGenerics()) {
+    if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_126);
-    }
-    stringBuffer.append(TEXT_127);
-    if (!genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_128);
-    }
-    stringBuffer.append(TEXT_129);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_130);
-    if (!genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_131);
-    if (genModel.getRuntimeVersion().getValue() < GenRuntimeVersion.EMF213_VALUE) {
-    stringBuffer.append(TEXT_132);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_133);
     } else {
-    stringBuffer.append(TEXT_134);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_135);
+    stringBuffer.append(TEXT_127);
     }
+    stringBuffer.append(TEXT_128);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_129);
+    }
+    stringBuffer.append(TEXT_130);
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF24_VALUE) {
+    stringBuffer.append(TEXT_131);
+    }
+    stringBuffer.append(TEXT_132);
+    stringBuffer.append(genPackage.getGenModel().getEditorPluginID());
+    stringBuffer.append(TEXT_133);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_134);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_135);
+    } else {
     stringBuffer.append(TEXT_136);
     }
+    stringBuffer.append(TEXT_128);
+    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_137);
-    stringBuffer.append(genModel.getNonNLS());
+    }
     stringBuffer.append(TEXT_138);
-    stringBuffer.append(genModel.getNonNLS());
+    if (!genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_139);
-    stringBuffer.append(genPackage.getEditorClassName());
+    }
     stringBuffer.append(TEXT_140);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_141);
+    if (!genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_142);
+    if (genModel.getRuntimeVersion().getValue() < GenRuntimeVersion.EMF213_VALUE) {
+    stringBuffer.append(TEXT_143);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_144);
+    } else {
+    stringBuffer.append(TEXT_145);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_146);
+    }
+    stringBuffer.append(TEXT_147);
+    }
+    stringBuffer.append(TEXT_148);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_149);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_150);
+    stringBuffer.append(genPackage.getEditorClassName());
+    stringBuffer.append(TEXT_151);
     for (GenPackage aGenPackage : genModel.getAllGenPackagesWithClassifiers()) {
     if (!aGenPackage.getGenClasses().isEmpty() && aGenPackage.getGenModel().hasEditSupport()) {
-    stringBuffer.append(TEXT_141);
+    stringBuffer.append(TEXT_152);
     stringBuffer.append(aGenPackage.getImportedItemProviderAdapterFactoryClassName());
-    stringBuffer.append(TEXT_142);
+    stringBuffer.append(TEXT_153);
     }
     }
     for (GenPackage aGenPackage : genModel.getAllUsedGenPackagesWithClassifiers()) {
     if (!aGenPackage.getGenClasses().isEmpty() && aGenPackage.getGenModel().hasEditSupport()) {
-    stringBuffer.append(TEXT_141);
+    stringBuffer.append(TEXT_152);
     stringBuffer.append(aGenPackage.getImportedItemProviderAdapterFactoryClassName());
-    stringBuffer.append(TEXT_142);
+    stringBuffer.append(TEXT_153);
     }
     }
     //Editor/addItemproviderFactories.override.javajetinc"
-    stringBuffer.append(TEXT_143);
-    if (genModel.getDecoration() != GenDecoration.LIVE || genModel.getRuntimeVersion().getValue() < GenRuntimeVersion.EMF212_VALUE) {
-    stringBuffer.append(TEXT_144);
-    } else {
-    stringBuffer.append(TEXT_145);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
-    }
-    stringBuffer.append(TEXT_147);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.AbstractCommand"));
-    stringBuffer.append(TEXT_148);
-    stringBuffer.append(_DiagnosticDecorator);
-    stringBuffer.append(TEXT_149);
-    }
-    stringBuffer.append(TEXT_150);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_151);
-    }
-    stringBuffer.append(TEXT_152);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_153);
-    }
     stringBuffer.append(TEXT_154);
-    stringBuffer.append(_HashMapOfResourceToBoolean);
+    if (genModel.getDecoration() != GenDecoration.LIVE || genModel.getRuntimeVersion().getValue() < GenRuntimeVersion.EMF212_VALUE) {
     stringBuffer.append(TEXT_155);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_90);
-    }
+    } else {
     stringBuffer.append(TEXT_156);
-    stringBuffer.append(_CollectionOfAnything);
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_157);
-    stringBuffer.append(_CollectionOfAnything);
-    stringBuffer.append(TEXT_158);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_159);
     }
-    stringBuffer.append(TEXT_160);
-    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_158);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.command.AbstractCommand"));
     stringBuffer.append(TEXT_159);
+    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(TEXT_160);
     }
     stringBuffer.append(TEXT_161);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_159);
-    }
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_162);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_159);
     }
     stringBuffer.append(TEXT_163);
-    if (genPackage.isMultipleEditorPages()) {
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_164);
     }
     stringBuffer.append(TEXT_165);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_166);
-    stringBuffer.append(genModel.getNonNLS());
+    }
     stringBuffer.append(TEXT_167);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
+    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_168);
-    } else {
+    }
     stringBuffer.append(TEXT_169);
-    }
+    stringBuffer.append(_HashMapOfResourceToBoolean);
     stringBuffer.append(TEXT_170);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF29_VALUE) {
-    stringBuffer.append(TEXT_171);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_77);
     }
+    stringBuffer.append(TEXT_171);
+    stringBuffer.append(_CollectionOfAnything);
     stringBuffer.append(TEXT_172);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF211_VALUE) {
+    stringBuffer.append(_CollectionOfAnything);
     stringBuffer.append(TEXT_173);
-    } else if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_174);
-    } else if (genModel.isRichClientPlatform()) {
+    }
     stringBuffer.append(TEXT_175);
-    } else {
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_176);
     }
     stringBuffer.append(TEXT_177);
-    stringBuffer.append(genPackage.getGenModel().getEditorPluginID());
-    stringBuffer.append(TEXT_122);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_178);
-    stringBuffer.append(genModel.getNonNLS());
+    }
     stringBuffer.append(TEXT_179);
-    stringBuffer.append(genPackage.getGenModel().getEditorPluginID());
-    stringBuffer.append(TEXT_122);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_178);
-    stringBuffer.append(genModel.getNonNLS());
+    }
     stringBuffer.append(TEXT_180);
     if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_178);
+    }
     stringBuffer.append(TEXT_181);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_178);
     }
     stringBuffer.append(TEXT_182);
     if (genPackage.isMultipleEditorPages()) {
     stringBuffer.append(TEXT_183);
-    stringBuffer.append(genPackage.getEditorClassName());
+    }
     stringBuffer.append(TEXT_184);
-    if (genModel.useClassOverrideAnnotation()) {
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_103);
+    }
     stringBuffer.append(TEXT_185);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
     }
     stringBuffer.append(TEXT_186);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
-    }
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_187);
-    if (useStyledLabelProvider) {
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
     stringBuffer.append(TEXT_189);
-    }
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DecoratingColumLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_AdapterFactoryLabelProvider);
+    } else {
     stringBuffer.append(TEXT_190);
-    if (useExtendedLabelProvider) {
-    stringBuffer.append(TEXT_191);
     }
+    stringBuffer.append(TEXT_191);
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF29_VALUE) {
     stringBuffer.append(TEXT_192);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
+    }
     stringBuffer.append(TEXT_193);
-    stringBuffer.append(_DiagnosticDecorator);
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF211_VALUE) {
     stringBuffer.append(TEXT_194);
-    if (genModel.getDecoration() == GenDecoration.MANUAL) {
+    } else if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
     stringBuffer.append(TEXT_195);
-    }
-    stringBuffer.append(TEXT_191);
-    if (genModel.getDecoration() == GenDecoration.LIVE) {
-    stringBuffer.append(TEXT_49);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    } else if (genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_196);
-    }
+    } else {
     stringBuffer.append(TEXT_197);
     }
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_192);
-    }
     stringBuffer.append(TEXT_198);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(genPackage.getGenModel().getEditorPluginID());
+    stringBuffer.append(TEXT_133);
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_199);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_200);
-    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(genPackage.getGenModel().getEditorPluginID());
+    stringBuffer.append(TEXT_133);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_199);
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_201);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
     }
     stringBuffer.append(TEXT_202);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genPackage.isMultipleEditorPages()) {
     stringBuffer.append(TEXT_203);
     stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_184);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
-    }
-    stringBuffer.append(TEXT_186);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
-    }
     stringBuffer.append(TEXT_204);
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_189);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_103);
     }
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_AdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_190);
-    if (useExtendedLabelProvider) {
     stringBuffer.append(TEXT_205);
-    }
-    stringBuffer.append(TEXT_192);
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_192);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_103);
     }
     stringBuffer.append(TEXT_206);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_207);
-    stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_184);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
-    }
-    stringBuffer.append(TEXT_208);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
-    }
-    stringBuffer.append(TEXT_209);
     if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_188);
+    stringBuffer.append(TEXT_207);
     stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_189);
+    stringBuffer.append(TEXT_208);
     }
-    stringBuffer.append(TEXT_188);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DecoratingColumLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    stringBuffer.append(TEXT_207);
     stringBuffer.append(_AdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_190);
+    stringBuffer.append(TEXT_209);
     if (useExtendedLabelProvider) {
     stringBuffer.append(TEXT_210);
     }
-    stringBuffer.append(TEXT_192);
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_192);
-    }
     stringBuffer.append(TEXT_211);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.getDecoration() != GenDecoration.NONE) {
     stringBuffer.append(TEXT_212);
-    stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_184);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
-    }
-    stringBuffer.append(TEXT_213);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
-    }
-    stringBuffer.append(TEXT_214);
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DecoratingColumLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_AdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_190);
-    if (useExtendedLabelProvider) {
-    stringBuffer.append(TEXT_215);
-    }
-    stringBuffer.append(TEXT_192);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_193);
     stringBuffer.append(_DiagnosticDecorator);
-    stringBuffer.append(TEXT_194);
+    stringBuffer.append(TEXT_213);
     if (genModel.getDecoration() == GenDecoration.MANUAL) {
-    stringBuffer.append(TEXT_195);
+    stringBuffer.append(TEXT_214);
+    }
+    stringBuffer.append(TEXT_210);
+    if (genModel.getDecoration() == GenDecoration.LIVE) {
+    stringBuffer.append(TEXT_47);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_215);
     }
     stringBuffer.append(TEXT_216);
     }
     if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_192);
+    stringBuffer.append(TEXT_211);
     }
     stringBuffer.append(TEXT_217);
     if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_199);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
     stringBuffer.append(TEXT_218);
-    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
     stringBuffer.append(TEXT_219);
-    }
+    stringBuffer.append(_DiagnosticDecorator);
     stringBuffer.append(TEXT_220);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_221);
-    stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_184);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
     }
+    stringBuffer.append(TEXT_221);
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_222);
+    stringBuffer.append(genPackage.getEditorClassName());
+    stringBuffer.append(TEXT_204);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
+    stringBuffer.append(TEXT_103);
+    }
+    stringBuffer.append(TEXT_205);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_103);
     }
     stringBuffer.append(TEXT_223);
-    stringBuffer.append(genModel.getNonNLS());
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_AdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_209);
+    if (useExtendedLabelProvider) {
     stringBuffer.append(TEXT_224);
-    stringBuffer.append(genModel.getNonNLS());
+    }
+    stringBuffer.append(TEXT_211);
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_211);
+    }
     stringBuffer.append(TEXT_225);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(genModel.getNonNLS(2));
     stringBuffer.append(TEXT_226);
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DecoratingColumLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_AdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_190);
-    if (useExtendedLabelProvider) {
-    stringBuffer.append(TEXT_227);
-    }
-    stringBuffer.append(TEXT_192);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_193);
-    stringBuffer.append(_DiagnosticDecorator);
-    stringBuffer.append(TEXT_194);
-    if (genModel.getDecoration() == GenDecoration.MANUAL) {
-    stringBuffer.append(TEXT_195);
+    stringBuffer.append(genPackage.getEditorClassName());
+    stringBuffer.append(TEXT_204);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_103);
     }
     stringBuffer.append(TEXT_227);
-    if (genModel.getDecoration() == GenDecoration.LIVE) {
-    stringBuffer.append(TEXT_49);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_196);
-    }
-    stringBuffer.append(TEXT_197);
-    }
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_192);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_103);
     }
     stringBuffer.append(TEXT_228);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_199);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_AdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_209);
+    if (useExtendedLabelProvider) {
     stringBuffer.append(TEXT_229);
-    stringBuffer.append(_DiagnosticDecorator);
+    }
+    stringBuffer.append(TEXT_211);
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_211);
+    }
     stringBuffer.append(TEXT_230);
-    }
-    stringBuffer.append(TEXT_231);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_232);
+    stringBuffer.append(TEXT_231);
     stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_184);
+    stringBuffer.append(TEXT_204);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
+    stringBuffer.append(TEXT_103);
     }
-    stringBuffer.append(TEXT_213);
+    stringBuffer.append(TEXT_232);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_185);
+    stringBuffer.append(TEXT_103);
     }
     stringBuffer.append(TEXT_233);
-    stringBuffer.append(genModel.getNonNLS());
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DecoratingColumLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_AdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_209);
+    if (useExtendedLabelProvider) {
     stringBuffer.append(TEXT_234);
-    stringBuffer.append(genModel.getNonNLS());
+    }
+    stringBuffer.append(TEXT_211);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_212);
+    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(TEXT_213);
+    if (genModel.getDecoration() == GenDecoration.MANUAL) {
+    stringBuffer.append(TEXT_214);
+    }
     stringBuffer.append(TEXT_235);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(genModel.getNonNLS(2));
+    }
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_211);
+    }
     stringBuffer.append(TEXT_236);
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
     if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DecoratingColumLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_AdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_190);
-    if (useExtendedLabelProvider) {
-    stringBuffer.append(TEXT_237);
-    }
-    stringBuffer.append(TEXT_192);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_193);
-    stringBuffer.append(_DiagnosticDecorator);
-    stringBuffer.append(TEXT_194);
-    if (genModel.getDecoration() == GenDecoration.MANUAL) {
-    stringBuffer.append(TEXT_195);
-    }
-    stringBuffer.append(TEXT_237);
-    if (genModel.getDecoration() == GenDecoration.LIVE) {
-    stringBuffer.append(TEXT_49);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_196);
-    }
-    stringBuffer.append(TEXT_197);
-    }
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_192);
-    }
-    stringBuffer.append(TEXT_228);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_199);
+    stringBuffer.append(TEXT_218);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
+    stringBuffer.append(TEXT_237);
+    stringBuffer.append(_DiagnosticDecorator);
     stringBuffer.append(TEXT_238);
-    stringBuffer.append(_DiagnosticDecorator);
+    }
     stringBuffer.append(TEXT_239);
-    }
-    stringBuffer.append(TEXT_240);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_136);
-    } else {
+    stringBuffer.append(TEXT_240);
+    stringBuffer.append(genPackage.getEditorClassName());
+    stringBuffer.append(TEXT_204);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_103);
+    }
     stringBuffer.append(TEXT_241);
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DecoratingColumLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_AdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_190);
-    if (useExtendedLabelProvider) {
-    stringBuffer.append(TEXT_191);
-    }
-    stringBuffer.append(TEXT_192);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_193);
-    stringBuffer.append(_DiagnosticDecorator);
-    stringBuffer.append(TEXT_194);
-    if (genModel.getDecoration() == GenDecoration.MANUAL) {
-    stringBuffer.append(TEXT_195);
-    }
-    stringBuffer.append(TEXT_191);
-    if (genModel.getDecoration() == GenDecoration.LIVE) {
-    stringBuffer.append(TEXT_49);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_196);
-    }
-    stringBuffer.append(TEXT_197);
-    }
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_192);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_103);
     }
     stringBuffer.append(TEXT_242);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_243);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
-    stringBuffer.append(TEXT_200);
-    stringBuffer.append(_DiagnosticDecorator);
-    stringBuffer.append(TEXT_201);
-    }
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_244);
     stringBuffer.append(genModel.getNonNLS());
-    }
+    stringBuffer.append(genModel.getNonNLS(2));
     stringBuffer.append(TEXT_245);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DecoratingColumLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_AdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_209);
+    if (useExtendedLabelProvider) {
+    stringBuffer.append(TEXT_246);
+    }
+    stringBuffer.append(TEXT_211);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_212);
+    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(TEXT_213);
+    if (genModel.getDecoration() == GenDecoration.MANUAL) {
+    stringBuffer.append(TEXT_214);
     }
     stringBuffer.append(TEXT_246);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.getDecoration() == GenDecoration.LIVE) {
+    stringBuffer.append(TEXT_47);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_215);
+    }
+    stringBuffer.append(TEXT_216);
+    }
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_211);
+    }
     stringBuffer.append(TEXT_247);
-    stringBuffer.append(genModel.getNonNLS());
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_218);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
     stringBuffer.append(TEXT_248);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_181);
-    }
+    stringBuffer.append(_DiagnosticDecorator);
     stringBuffer.append(TEXT_249);
-    if (genModel.useGenerics() && genModel.getEclipsePlatformVersion().getValue() < GenEclipsePlatformVersion.MARS_VALUE) {
+    }
     stringBuffer.append(TEXT_250);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF26_VALUE) {
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_251);
-    } else {
-    stringBuffer.append(TEXT_252);
-    }
-    stringBuffer.append(TEXT_253);
-    }
+    stringBuffer.append(genPackage.getEditorClassName());
+    stringBuffer.append(TEXT_204);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_181);
+    stringBuffer.append(TEXT_103);
     }
-    if (genModel.getEclipsePlatformVersion().getValue() >= GenEclipsePlatformVersion.MARS_VALUE) {
+    stringBuffer.append(TEXT_232);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_103);
+    }
+    stringBuffer.append(TEXT_252);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_253);
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_254);
-    } else {
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getNonNLS(2));
     stringBuffer.append(TEXT_255);
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DecoratingColumLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_AdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_209);
+    if (useExtendedLabelProvider) {
+    stringBuffer.append(TEXT_256);
+    }
+    stringBuffer.append(TEXT_211);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_212);
+    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(TEXT_213);
+    if (genModel.getDecoration() == GenDecoration.MANUAL) {
+    stringBuffer.append(TEXT_214);
     }
     stringBuffer.append(TEXT_256);
-    if (genModel.getEclipsePlatformVersion().getValue() >= GenEclipsePlatformVersion.MARS_VALUE) {
+    if (genModel.getDecoration() == GenDecoration.LIVE) {
+    stringBuffer.append(TEXT_47);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_215);
+    }
+    stringBuffer.append(TEXT_216);
+    }
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_211);
+    }
+    stringBuffer.append(TEXT_247);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_218);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
     stringBuffer.append(TEXT_257);
-    } else {
+    stringBuffer.append(_DiagnosticDecorator);
     stringBuffer.append(TEXT_258);
     }
     stringBuffer.append(TEXT_259);
-    if (genModel.getEclipsePlatformVersion().getValue() >= GenEclipsePlatformVersion.MARS_VALUE) {
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_147);
+    } else {
     stringBuffer.append(TEXT_260);
-    } else {
-    stringBuffer.append(TEXT_261);
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_208);
     }
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DecoratingColumLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_AdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_209);
+    if (useExtendedLabelProvider) {
+    stringBuffer.append(TEXT_210);
+    }
+    stringBuffer.append(TEXT_211);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_212);
+    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(TEXT_213);
+    if (genModel.getDecoration() == GenDecoration.MANUAL) {
+    stringBuffer.append(TEXT_214);
+    }
+    stringBuffer.append(TEXT_210);
+    if (genModel.getDecoration() == GenDecoration.LIVE) {
+    stringBuffer.append(TEXT_47);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_215);
+    }
+    stringBuffer.append(TEXT_216);
+    }
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_211);
+    }
+    stringBuffer.append(TEXT_261);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
     stringBuffer.append(TEXT_262);
-    if (!genModel.isRichClientPlatform()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
+    stringBuffer.append(TEXT_219);
+    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(TEXT_220);
+    }
     stringBuffer.append(TEXT_263);
-    if (genModel.getEclipsePlatformVersion().getValue() >= GenEclipsePlatformVersion.MARS_VALUE) {
+    stringBuffer.append(genModel.getNonNLS());
+    }
     stringBuffer.append(TEXT_264);
-    } else {
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_265);
     }
-    stringBuffer.append(TEXT_262);
-    }
-    if (genModel.isFindAction()) {
     stringBuffer.append(TEXT_266);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.text.IFindReplaceTarget"));
-    stringBuffer.append(TEXT_267);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.util.FindAndReplaceTarget"));
-    stringBuffer.append(TEXT_268);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_269);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_157);
     }
+    stringBuffer.append(TEXT_267);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_162);
+    }
+    stringBuffer.append(TEXT_268);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_269);
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_270);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
+    stringBuffer.append(TEXT_176);
     }
     stringBuffer.append(TEXT_271);
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_DecoratingColumLabelProvider);
-    stringBuffer.append(TEXT_189);
-    }
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(_AdapterFactoryLabelProvider);
-    stringBuffer.append(TEXT_190);
-    if (useExtendedLabelProvider) {
+    if (genModel.useGenerics() && genModel.getEclipsePlatformVersion().getValue() < GenEclipsePlatformVersion.MARS_VALUE) {
     stringBuffer.append(TEXT_272);
-    }
-    stringBuffer.append(TEXT_192);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
-    stringBuffer.append(TEXT_193);
-    stringBuffer.append(_DiagnosticDecorator);
-    stringBuffer.append(TEXT_194);
-    if (genModel.getDecoration() == GenDecoration.MANUAL) {
-    stringBuffer.append(TEXT_195);
-    }
-    stringBuffer.append(TEXT_272);
-    if (genModel.getDecoration() == GenDecoration.LIVE) {
-    stringBuffer.append(TEXT_49);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_196);
-    }
-    stringBuffer.append(TEXT_197);
-    }
-    if (useStyledLabelProvider) {
-    stringBuffer.append(TEXT_192);
-    }
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF26_VALUE) {
     stringBuffer.append(TEXT_273);
-    if (genModel.getDecoration() != GenDecoration.NONE) {
+    } else {
     stringBuffer.append(TEXT_274);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
-    stringBuffer.append(TEXT_275);
-    stringBuffer.append(_DiagnosticDecorator);
-    stringBuffer.append(TEXT_276);
     }
-    stringBuffer.append(TEXT_277);
+    stringBuffer.append(TEXT_275);
+    }
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
+    stringBuffer.append(TEXT_176);
+    }
+    if (genModel.getEclipsePlatformVersion().getValue() >= GenEclipsePlatformVersion.MARS_VALUE) {
+    stringBuffer.append(TEXT_276);
+    } else {
+    stringBuffer.append(TEXT_277);
     }
     stringBuffer.append(TEXT_278);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
-    }
+    if (genModel.getEclipsePlatformVersion().getValue() >= GenEclipsePlatformVersion.MARS_VALUE) {
     stringBuffer.append(TEXT_279);
-    if (genModel.getDecoration() == GenDecoration.MANUAL) {
+    } else {
     stringBuffer.append(TEXT_280);
-    } else if (genModel.getDecoration() == GenDecoration.LIVE) {
+    }
     stringBuffer.append(TEXT_281);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_196);
-    }
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF214_VALUE) {
-    stringBuffer.append(TEXT_49);
-    if (genModel.getDecoration() == GenDecoration.NONE) {
+    if (genModel.getEclipsePlatformVersion().getValue() >= GenEclipsePlatformVersion.MARS_VALUE) {
     stringBuffer.append(TEXT_282);
-    }
-    if (genModel.getDecoration() != GenDecoration.LIVE) {
+    } else {
     stringBuffer.append(TEXT_283);
     }
-    stringBuffer.append(genModel.getAutoExpandProperties());
-    stringBuffer.append(TEXT_49);
-    stringBuffer.append(genModel.isAutoResizeProperties());
+    stringBuffer.append(TEXT_284);
+    if (!genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_285);
+    if (genModel.getEclipsePlatformVersion().getValue() >= GenEclipsePlatformVersion.MARS_VALUE) {
+    stringBuffer.append(TEXT_286);
+    } else {
+    stringBuffer.append(TEXT_287);
     }
     stringBuffer.append(TEXT_284);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
     }
-    stringBuffer.append(TEXT_285);
-    stringBuffer.append(_ListOfAnything);
-    stringBuffer.append(TEXT_286);
-    stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_287);
-    stringBuffer.append(genPackage.getEditorClassName());
+    if (genModel.isFindAction()) {
     stringBuffer.append(TEXT_288);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.text.IFindReplaceTarget"));
     stringBuffer.append(TEXT_289);
-    if (genPackage.isMultipleEditorPages()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.edit.ui.util.FindAndReplaceTarget"));
     stringBuffer.append(TEXT_290);
-    } else {
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_291);
     }
     stringBuffer.append(TEXT_292);
-    if (genModel.useGenerics()) {
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_157);
+    }
     stringBuffer.append(TEXT_293);
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DelegatingAdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_DecoratingColumLabelProvider);
+    stringBuffer.append(TEXT_208);
+    }
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(_AdapterFactoryLabelProvider);
+    stringBuffer.append(TEXT_209);
+    if (useExtendedLabelProvider) {
+    stringBuffer.append(TEXT_294);
+    }
+    stringBuffer.append(TEXT_211);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
+    stringBuffer.append(TEXT_212);
+    stringBuffer.append(_DiagnosticDecorator);
+    stringBuffer.append(TEXT_213);
+    if (genModel.getDecoration() == GenDecoration.MANUAL) {
+    stringBuffer.append(TEXT_214);
     }
     stringBuffer.append(TEXT_294);
-    if (genPackage.isMultipleEditorPages()) {
+    if (genModel.getDecoration() == GenDecoration.LIVE) {
+    stringBuffer.append(TEXT_47);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_215);
+    }
+    stringBuffer.append(TEXT_216);
+    }
+    if (useStyledLabelProvider) {
+    stringBuffer.append(TEXT_211);
+    }
     stringBuffer.append(TEXT_295);
-    stringBuffer.append(_ArrayListOfObject);
+    if (genModel.getDecoration() != GenDecoration.NONE) {
     stringBuffer.append(TEXT_296);
-    stringBuffer.append(_ArrayListOfObject);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport"));
     stringBuffer.append(TEXT_297);
-    } else {
+    stringBuffer.append(_DiagnosticDecorator);
     stringBuffer.append(TEXT_298);
-    stringBuffer.append(_ArrayListOfObject);
-    stringBuffer.append(TEXT_296);
-    stringBuffer.append(_ArrayListOfObject);
+    }
     stringBuffer.append(TEXT_299);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_157);
     }
     stringBuffer.append(TEXT_300);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_181);
+    stringBuffer.append(TEXT_157);
     }
     stringBuffer.append(TEXT_301);
-    if (genModel.isRevertAction()) {
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_265);
+    }
     stringBuffer.append(TEXT_302);
-    if (genModel.getDecoration() == GenDecoration.LIVE) {
+    if (genModel.getDecoration() == GenDecoration.MANUAL) {
     stringBuffer.append(TEXT_303);
-    }
+    } else if (genModel.getDecoration() == GenDecoration.LIVE) {
     stringBuffer.append(TEXT_304);
-    stringBuffer.append(_ListOfResource);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_215);
+    }
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF214_VALUE) {
+    stringBuffer.append(TEXT_47);
+    if (genModel.getDecoration() == GenDecoration.NONE) {
     stringBuffer.append(TEXT_305);
-    stringBuffer.append(_ListOfResource);
+    }
+    if (genModel.getDecoration() != GenDecoration.LIVE) {
     stringBuffer.append(TEXT_306);
-    stringBuffer.append(_ArrayListOfResource);
+    }
+    stringBuffer.append(genModel.getAutoExpandProperties());
+    stringBuffer.append(TEXT_47);
+    stringBuffer.append(genModel.isAutoResizeProperties());
+    }
     stringBuffer.append(TEXT_307);
-    if (genModel.useGenerics()) {
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_157);
+    }
     stringBuffer.append(TEXT_308);
-    } else {
+    stringBuffer.append(_ListOfAnything);
     stringBuffer.append(TEXT_309);
-    }
+    stringBuffer.append(genPackage.getEditorClassName());
     stringBuffer.append(TEXT_310);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_118);
-    }
+    stringBuffer.append(genPackage.getEditorClassName());
     stringBuffer.append(TEXT_311);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_157);
     }
     stringBuffer.append(TEXT_312);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_181);
-    }
+    if (genPackage.isMultipleEditorPages()) {
     stringBuffer.append(TEXT_313);
-    stringBuffer.append(_MapOfObjectToObject);
+    } else {
     stringBuffer.append(TEXT_314);
-    stringBuffer.append(_HashMapOfObjectToObject);
-    stringBuffer.append(TEXT_66);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
-    stringBuffer.append(TEXT_315);
     }
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF29_VALUE) {
+    stringBuffer.append(TEXT_315);
+    if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_316);
     }
     stringBuffer.append(TEXT_317);
-    stringBuffer.append(importedOperationClassName);
+    if (genPackage.isMultipleEditorPages()) {
     stringBuffer.append(TEXT_318);
-    stringBuffer.append(importedOperationClassName);
+    stringBuffer.append(_ArrayListOfObject);
     stringBuffer.append(TEXT_319);
-    if (!genModel.isRichClientPlatform() && genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
-    }
+    stringBuffer.append(_ArrayListOfObject);
     stringBuffer.append(TEXT_320);
-    stringBuffer.append(operationMethodName);
+    } else {
     stringBuffer.append(TEXT_321);
-    stringBuffer.append(_ListOfResource);
+    stringBuffer.append(_ArrayListOfObject);
+    stringBuffer.append(TEXT_319);
+    stringBuffer.append(_ArrayListOfObject);
     stringBuffer.append(TEXT_322);
-    if (!genModel.useGenerics()) {
+    }
     stringBuffer.append(TEXT_323);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
     }
     stringBuffer.append(TEXT_324);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF24_VALUE) {
+    if (genModel.isRevertAction()) {
     stringBuffer.append(TEXT_325);
-    } else {
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
     stringBuffer.append(TEXT_326);
-    }
+    if (genModel.getDecoration() == GenDecoration.LIVE) {
     stringBuffer.append(TEXT_327);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    }
     stringBuffer.append(TEXT_328);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_181);
-    }
+    stringBuffer.append(_ListOfResource);
     stringBuffer.append(TEXT_329);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_181);
-    }
+    stringBuffer.append(_ListOfResource);
     stringBuffer.append(TEXT_330);
-    if (genModel.isRichClientPlatform()) {
-    if (genModel.isRichAjaxPlatform()) {
+    stringBuffer.append(_ArrayListOfResource);
     stringBuffer.append(TEXT_331);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.dialogs.ResourceDialog"));
+    if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_332);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
-    }
+    } else {
     stringBuffer.append(TEXT_333);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_146);
     }
     stringBuffer.append(TEXT_334);
-    stringBuffer.append("List" + (genModel.useGenerics() ? "<URI>" : ""));
-    stringBuffer.append(TEXT_335);
-    stringBuffer.append(genModel.useGenerics() ? "": "(URI)");
-    stringBuffer.append(TEXT_336);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.URIEditorInput"));
-    stringBuffer.append(TEXT_337);
-    } else {
-    stringBuffer.append(TEXT_338);
     if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_129);
+    }
+    stringBuffer.append(TEXT_335);
+    }
+    stringBuffer.append(TEXT_336);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
+    stringBuffer.append(TEXT_337);
+    stringBuffer.append(_MapOfObjectToObject);
+    stringBuffer.append(TEXT_338);
+    stringBuffer.append(_HashMapOfObjectToObject);
+    stringBuffer.append(TEXT_64);
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
     stringBuffer.append(TEXT_339);
     }
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF29_VALUE) {
     stringBuffer.append(TEXT_340);
-    stringBuffer.append(genModel.getImportedName(genModel.getQualifiedEditorAdvisorClassName()));
+    }
     stringBuffer.append(TEXT_341);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.SWT"));
+    stringBuffer.append(importedOperationClassName);
     stringBuffer.append(TEXT_342);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.URIEditorInput"));
+    stringBuffer.append(importedOperationClassName);
     stringBuffer.append(TEXT_343);
+    if (genModel.useInterfaceOverrideAnnotation() || !genModel.isRichClientPlatform() && genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_157);
     }
-    } else {
     stringBuffer.append(TEXT_344);
-    }
+    stringBuffer.append(operationMethodName);
     stringBuffer.append(TEXT_345);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_323);
-    }
+    stringBuffer.append(_ListOfResource);
     stringBuffer.append(TEXT_346);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.core.runtime.NullProgressMonitor"));
+    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_347);
-    if (!genModel.isRichClientPlatform()) {
+    }
     stringBuffer.append(TEXT_348);
-    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF24_VALUE) {
     stringBuffer.append(TEXT_349);
-    stringBuffer.append(_ListOfAnything);
-    stringBuffer.append(TEXT_350);
     } else {
+    stringBuffer.append(TEXT_350);
+    }
     stringBuffer.append(TEXT_351);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_352);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
     }
     stringBuffer.append(TEXT_353);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
     }
     stringBuffer.append(TEXT_354);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_181);
-    }
+    if (genModel.isRichClientPlatform()) {
+    if (genModel.isRichAjaxPlatform()) {
     stringBuffer.append(TEXT_355);
-    if (!genModel.isRichClientPlatform()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.dialogs.ResourceDialog"));
     stringBuffer.append(TEXT_356);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_157);
     }
     stringBuffer.append(TEXT_357);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_181);
+    stringBuffer.append(TEXT_157);
     }
     stringBuffer.append(TEXT_358);
-    if (genPackage.isMultipleEditorPages()) {
+    stringBuffer.append("List" + (genModel.useGenerics() ? "<URI>" : ""));
     stringBuffer.append(TEXT_359);
-    } else {
+    stringBuffer.append(genModel.useGenerics() ? "": "(URI)");
     stringBuffer.append(TEXT_360);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.URIEditorInput"));
     stringBuffer.append(TEXT_361);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_362);
     } else {
+    stringBuffer.append(TEXT_362);
+    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_363);
     }
-    stringBuffer.append(TEXT_310);
-    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_364);
-    }
+    stringBuffer.append(genModel.getImportedName(genModel.getQualifiedEditorAdvisorClassName()));
     stringBuffer.append(TEXT_365);
-    stringBuffer.append(_CollectionOfAnything);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.SWT"));
     stringBuffer.append(TEXT_366);
-    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.ui.URIEditorInput"));
     stringBuffer.append(TEXT_367);
-    stringBuffer.append(genModel.getNonNLS());
+    }
+    } else {
     stringBuffer.append(TEXT_368);
-    stringBuffer.append(genModel.getNonNLS());
+    }
     stringBuffer.append(TEXT_369);
-    stringBuffer.append(genModel.getNonNLS());
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_347);
+    }
     stringBuffer.append(TEXT_370);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.core.runtime.NullProgressMonitor"));
     stringBuffer.append(TEXT_371);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    if (!genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_372);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_181);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
     }
     stringBuffer.append(TEXT_373);
-    if (!genModel.isRichClientPlatform()) {
+    if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {
     stringBuffer.append(TEXT_374);
-    }
+    stringBuffer.append(_ListOfAnything);
     stringBuffer.append(TEXT_375);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_376);
     } else {
+    stringBuffer.append(TEXT_376);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_377);
     }
-    stringBuffer.append(TEXT_310);
-    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_378);
     }
     stringBuffer.append(TEXT_379);
-    stringBuffer.append(genPackage.isMultipleEditorPages());
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
     stringBuffer.append(TEXT_380);
+    if (!genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_381);
+    }
+    stringBuffer.append(TEXT_382);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
+    stringBuffer.append(TEXT_383);
+    if (genPackage.isMultipleEditorPages()) {
+    stringBuffer.append(TEXT_384);
+    } else {
+    stringBuffer.append(TEXT_385);
+    }
+    stringBuffer.append(TEXT_386);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
+    stringBuffer.append(TEXT_387);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
+    stringBuffer.append(TEXT_388);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
+    stringBuffer.append(TEXT_389);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
+    stringBuffer.append(TEXT_390);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_391);
+    } else {
+    stringBuffer.append(TEXT_392);
+    }
+    stringBuffer.append(TEXT_334);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_393);
+    }
+    stringBuffer.append(TEXT_394);
+    stringBuffer.append(_CollectionOfAnything);
+    stringBuffer.append(TEXT_395);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_396);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_397);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_398);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_399);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_400);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_401);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
+    stringBuffer.append(TEXT_402);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_176);
+    }
+    stringBuffer.append(TEXT_403);
+    if (!genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_404);
+    }
+    stringBuffer.append(TEXT_405);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_406);
+    } else {
+    stringBuffer.append(TEXT_407);
+    }
+    stringBuffer.append(TEXT_334);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_408);
+    }
+    stringBuffer.append(TEXT_409);
+    stringBuffer.append(genPackage.isMultipleEditorPages());
+    stringBuffer.append(TEXT_410);
     genModel.emitSortedImports();
     stringBuffer.append(TEXT_7);
     return stringBuffer.toString();
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ManifestMF.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ManifestMF.java
index 9abe995..a7d61da 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ManifestMF.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ManifestMF.java
@@ -36,7 +36,7 @@
   protected final String TEXT_19 = NL + " ";
   protected final String TEXT_20 = NL + "Require-Bundle: ";
   protected final String TEXT_21 = ";visibility:=reexport";
-  protected final String TEXT_22 = NL + "Import-Package: org.eclipse.emf.common.ui," + NL + " org.eclipse.emf.common.ui.action," + NL + " org.eclipse.emf.common.ui.dialogs," + NL + " org.eclipse.emf.common.ui.editor," + NL + " org.eclipse.emf.common.ui.viewer," + NL + " org.eclipse.emf.edit.ui," + NL + " org.eclipse.emf.edit.ui.action," + NL + " org.eclipse.emf.edit.ui.celleditor," + NL + " org.eclipse.emf.edit.ui.dnd," + NL + " org.eclipse.emf.edit.ui.provider," + NL + " org.eclipse.emf.edit.ui.util," + NL + " org.eclipse.emf.edit.ui.view," + NL + " org.eclipse.jface.action," + NL + " org.eclipse.jface.dialogs," + NL + " org.eclipse.jface.operation," + NL + " org.eclipse.jface.viewers," + NL + " org.eclipse.jface.window," + NL + " org.eclipse.jface.wizard," + NL + " org.eclipse.swt," + NL + " org.eclipse.swt.custom," + NL + " org.eclipse.swt.dnd," + NL + " org.eclipse.swt.events," + NL + " org.eclipse.swt.graphics," + NL + " org.eclipse.swt.layout," + NL + " org.eclipse.swt.widgets," + NL + " org.eclipse.ui;ui.workbench=\"split\"," + NL + " org.eclipse.ui.actions;ui.workbench=\"split\"," + NL + " org.eclipse.ui.application," + NL + " org.eclipse.ui.part;ui.workbench=\"split\"," + NL + " org.eclipse.ui.views," + NL + " org.eclipse.ui.views.contentoutline," + NL + " org.eclipse.ui.views.properties;ui.views=\"split\"";
+  protected final String TEXT_22 = NL + "Import-Package: org.eclipse.emf.common.ui," + NL + " org.eclipse.emf.common.ui.action," + NL + " org.eclipse.emf.common.ui.dialogs," + NL + " org.eclipse.emf.common.ui.editor," + NL + " org.eclipse.emf.common.ui.viewer," + NL + " org.eclipse.emf.edit.ui," + NL + " org.eclipse.emf.edit.ui.action," + NL + " org.eclipse.emf.edit.ui.celleditor," + NL + " org.eclipse.emf.edit.ui.dnd," + NL + " org.eclipse.emf.edit.ui.provider," + NL + " org.eclipse.emf.edit.ui.util," + NL + " org.eclipse.emf.edit.ui.view," + NL + " org.eclipse.jface.action," + NL + " org.eclipse.jface.dialogs," + NL + " org.eclipse.jface.operation," + NL + " org.eclipse.jface.text," + NL + " org.eclipse.jface.util," + NL + " org.eclipse.jface.viewers," + NL + " org.eclipse.jface.window," + NL + " org.eclipse.jface.wizard," + NL + " org.eclipse.swt," + NL + " org.eclipse.swt.custom," + NL + " org.eclipse.swt.dnd," + NL + " org.eclipse.swt.events," + NL + " org.eclipse.swt.graphics," + NL + " org.eclipse.swt.layout," + NL + " org.eclipse.swt.widgets," + NL + " org.eclipse.ui;ui.workbench=\"split\"," + NL + " org.eclipse.ui.actions;ui.workbench=\"split\"," + NL + " org.eclipse.ui.application," + NL + " org.eclipse.ui.part;ui.workbench=\"split\"," + NL + " org.eclipse.ui.plugin," + NL + " org.eclipse.ui.views," + NL + " org.eclipse.ui.views.contentoutline," + NL + " org.eclipse.ui.views.properties;ui.views=\"split\"";
   protected final String TEXT_23 = NL + "Eclipse-LazyStart: true";
   protected final String TEXT_24 = NL + "Bundle-ActivationPolicy: lazy";
   protected final String TEXT_25 = NL;
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ModelWizard.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ModelWizard.java
index 085e4ee..b5b864d 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ModelWizard.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/editor/ModelWizard.java
@@ -58,184 +58,191 @@
   protected final String TEXT_42 = NL + "\t * Caches the names of the types that can be created as the root object.";
   protected final String TEXT_43 = NL + "\t * Caches the names of the features representing global elements.";
   protected final String TEXT_44 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_45 = " initialObjectNames;" + NL + "" + NL + "\t/**" + NL + "\t * This just records the information." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void init(IWorkbench workbench, IStructuredSelection selection)" + NL + "\t{" + NL + "\t\tthis.workbench = workbench;" + NL + "\t\tthis.selection = selection;" + NL + "\t\tsetWindowTitle(";
-  protected final String TEXT_46 = ".INSTANCE.getString(\"_UI_Wizard_label\"));";
-  protected final String TEXT_47 = NL + "\t\tsetDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(";
-  protected final String TEXT_48 = ".INSTANCE.getImage(\"full/wizban/New";
-  protected final String TEXT_49 = "\")));";
-  protected final String TEXT_50 = NL + "\t}" + NL + "" + NL + "\t/**";
-  protected final String TEXT_51 = NL + "\t * Returns the names of the types that can be created as the root object.";
-  protected final String TEXT_52 = NL + "\t * Returns the names of the features representing global elements.";
-  protected final String TEXT_53 = " getInitialObjectNames()" + NL + "\t{" + NL + "\t\tif (initialObjectNames == null)" + NL + "\t\t{" + NL + "\t\t\tinitialObjectNames = new ";
-  protected final String TEXT_54 = "();";
-  protected final String TEXT_55 = NL + "\t\t\tfor (EClassifier eClassifier : ";
-  protected final String TEXT_56 = ".getEClassifiers())";
-  protected final String TEXT_57 = NL + "\t\t\tfor (Iterator classifiers = ";
-  protected final String TEXT_58 = ".getEClassifiers().iterator(); classifiers.hasNext(); )";
-  protected final String TEXT_59 = NL + "\t\t\t{";
-  protected final String TEXT_60 = NL + "\t\t\t\tEClassifier eClassifier = (EClassifier)classifiers.next();";
-  protected final String TEXT_61 = NL + "\t\t\t\tif (eClassifier instanceof EClass)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tEClass eClass = (EClass)eClassifier;" + NL + "\t\t\t\t\tif (!eClass.isAbstract())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tinitialObjectNames.add(eClass.getName());" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}";
-  protected final String TEXT_62 = NL + "\t\t\tfor (";
-  protected final String TEXT_63 = " eStructuralFeature : ";
-  protected final String TEXT_64 = ".INSTANCE.getAllElements(";
-  protected final String TEXT_65 = ".INSTANCE.getDocumentRoot(";
-  protected final String TEXT_66 = ")))";
-  protected final String TEXT_67 = NL + "\t\t\tfor (Iterator elements = ";
-  protected final String TEXT_68 = ")).iterator(); elements.hasNext(); )";
-  protected final String TEXT_69 = NL + "\t\t\t\t";
-  protected final String TEXT_70 = " eStructuralFeature = (";
-  protected final String TEXT_71 = ")elements.next();";
-  protected final String TEXT_72 = NL + "\t\t\t\tif (eStructuralFeature.isChangeable())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tEClassifier eClassifier = eStructuralFeature.getEType();" + NL + "\t\t\t\t\tif (eClassifier instanceof EClass)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tEClass eClass = (EClass)eClassifier;" + NL + "\t\t\t\t\t\tif (!eClass.isAbstract())" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tinitialObjectNames.add(eStructuralFeature.getName());" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}";
-  protected final String TEXT_73 = NL + "\t\t\tCollections.sort(initialObjectNames, ";
-  protected final String TEXT_74 = "CommonPlugin.INSTANCE.getComparator()";
-  protected final String TEXT_75 = "java.text.Collator.getInstance()";
-  protected final String TEXT_76 = ");" + NL + "\t\t}" + NL + "\t\treturn initialObjectNames;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Create a new model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected EObject createInitialModel()" + NL + "\t{";
-  protected final String TEXT_77 = NL + "\t\tEClass eClass = (EClass)";
-  protected final String TEXT_78 = ".getEClassifier(initialObjectCreationPage.getInitialObjectName());" + NL + "\t\tEObject rootObject = ";
-  protected final String TEXT_79 = ".create(eClass);";
-  protected final String TEXT_80 = NL + "\t\tEClass eClass = ";
-  protected final String TEXT_81 = ");" + NL + "\t\tEStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(initialObjectCreationPage.getInitialObjectName());" + NL + "\t\tEObject rootObject = ";
-  protected final String TEXT_82 = ".create(eClass);" + NL + "\t\trootObject.eSet(eStructuralFeature, ";
-  protected final String TEXT_83 = ".create((EClass)eStructuralFeature.getEType()));";
-  protected final String TEXT_84 = NL + "\t\treturn rootObject;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Do the work after everything is specified." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_85 = NL + "\t@Override";
-  protected final String TEXT_86 = NL + "\tpublic boolean performFinish()" + NL + "\t{" + NL + "\t\ttry" + NL + "\t\t{";
-  protected final String TEXT_87 = NL + "\t\t\t// Get the URI of the model file." + NL + "\t\t\t//" + NL + "\t\t\tfinal URI fileURI = getModelURI();" + NL + "\t\t\tif (new ";
-  protected final String TEXT_88 = "(fileURI.toFileString()).exists())" + NL + "\t\t\t{" + NL + "\t\t\t\tif (!MessageDialog.openQuestion" + NL + "\t\t\t\t\t\t(getShell()," + NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_89 = ".INSTANCE.getString(\"_UI_Question_title\"),";
-  protected final String TEXT_90 = NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_91 = ".INSTANCE.getString(\"_WARN_FileConflict\", new String []{ fileURI.toFileString() })))";
-  protected final String TEXT_92 = NL + "\t\t\t\t{" + NL + "\t\t\t\t\tinitialObjectCreationPage.selectFileField();" + NL + "\t\t\t\t\treturn false;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\t" + NL + "\t\t\t// Do the work within an operation." + NL + "\t\t\t//" + NL + "\t\t\t";
-  protected final String TEXT_93 = " operation = new ";
-  protected final String TEXT_94 = "()" + NL + "\t\t\t{" + NL + "\t\t\t\tpublic void run(IProgressMonitor progressMonitor)";
-  protected final String TEXT_95 = NL + "\t\t\t// Remember the file." + NL + "\t\t\t//" + NL + "\t\t\tfinal IFile modelFile = getModelFile();" + NL + "" + NL + "\t\t\t// Do the work within an operation." + NL + "\t\t\t//" + NL + "\t\t\tWorkspaceModifyOperation operation =" + NL + "\t\t\t\tnew WorkspaceModifyOperation()" + NL + "\t\t\t\t{";
-  protected final String TEXT_96 = NL + "\t\t\t\t\t@Override";
-  protected final String TEXT_97 = NL + "\t\t\t\t\tprotected void execute(IProgressMonitor progressMonitor)";
-  protected final String TEXT_98 = NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\ttry" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t// Create a resource set" + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\tResourceSet resourceSet = new ResourceSetImpl();" + NL;
-  protected final String TEXT_99 = NL + "\t\t\t\t\t\t\t// Get the URI of the model file." + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\tURI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);" + NL;
-  protected final String TEXT_100 = NL + "\t\t\t\t\t\t\t// Create a resource for this file." + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\tResource resource = resourceSet.createResource(fileURI";
-  protected final String TEXT_101 = ", ";
-  protected final String TEXT_102 = ".eCONTENT_TYPE";
-  protected final String TEXT_103 = ");" + NL + "" + NL + "\t\t\t\t\t\t\t// Add the initial model object to the contents." + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\tEObject rootObject = createInitialModel();" + NL + "\t\t\t\t\t\t\tif (rootObject != null)" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tresource.getContents().add(rootObject);" + NL + "\t\t\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t\t\t// Save the contents of the resource to the file system." + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\t";
-  protected final String TEXT_104 = " options = new ";
-  protected final String TEXT_105 = "();" + NL + "\t\t\t\t\t\t\toptions.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());" + NL + "\t\t\t\t\t\t\tresource.save(options);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\tcatch (Exception exception)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t";
-  protected final String TEXT_106 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\tfinally" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tprogressMonitor.done();" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "" + NL + "\t\t\tgetContainer().run(false, false, operation);" + NL;
-  protected final String TEXT_107 = NL + "\t\t\treturn ";
-  protected final String TEXT_108 = ".openEditor(workbench, fileURI);\t\t\t";
-  protected final String TEXT_109 = NL + "\t\t\t// Select the new file resource in the current view." + NL + "\t\t\t//" + NL + "\t\t\t";
-  protected final String TEXT_110 = " workbenchWindow = workbench.getActiveWorkbenchWindow();" + NL + "\t\t\t";
-  protected final String TEXT_111 = " page = workbenchWindow.getActivePage();" + NL + "\t\t\tfinal ";
-  protected final String TEXT_112 = " activePart = page.getActivePart();" + NL + "\t\t\tif (activePart instanceof ISetSelectionTarget)" + NL + "\t\t\t{" + NL + "\t\t\t\tfinal ";
-  protected final String TEXT_113 = " targetSelection = new ";
-  protected final String TEXT_114 = "(modelFile);" + NL + "\t\t\t\tgetShell().getDisplay().asyncExec" + NL + "\t\t\t\t\t(new Runnable()" + NL + "\t\t\t\t\t {" + NL + "\t\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t ((ISetSelectionTarget)activePart).selectReveal(targetSelection);" + NL + "\t\t\t\t\t\t }" + NL + "\t\t\t\t\t });" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Open an editor on the new file." + NL + "\t\t\t//" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\tpage.openEditor" + NL + "\t\t\t\t\t(new FileEditorInput(modelFile)," + NL + "\t\t\t\t\t workbench.getEditorRegistry().getDefaultEditor";
-  protected final String TEXT_115 = "(modelFile.getFullPath().toString()).getId());";
-  protected final String TEXT_116 = NL + "\t\t\t\t\t \t(modelFile.getFullPath().toString()," + NL + "\t\t\t\t\t \t ";
-  protected final String TEXT_117 = ".getContentTypeManager().getContentType(";
-  protected final String TEXT_118 = ".eCONTENT_TYPE)).getId());";
-  protected final String TEXT_119 = "\t\t\t\t\t \t " + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
-  protected final String TEXT_120 = " exception)" + NL + "\t\t\t{" + NL + "\t\t\t\tMessageDialog.openError(workbenchWindow.getShell(), ";
-  protected final String TEXT_121 = ".INSTANCE.getString(\"_UI_OpenEditorError_label\"), exception.getMessage());";
-  protected final String TEXT_122 = NL + "\t\t\t\treturn false;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\treturn true;";
-  protected final String TEXT_123 = NL + "\t\t}" + NL + "\t\tcatch (Exception exception)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_124 = ".INSTANCE.log(exception);" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_125 = NL + "\t/**" + NL + "\t * This is the one page of the wizard." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic class ";
-  protected final String TEXT_126 = "NewFileCreationPage extends WizardNewFileCreationPage" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * Pass in the selection." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ";
-  protected final String TEXT_127 = "NewFileCreationPage(String pageId, IStructuredSelection selection)" + NL + "\t\t{" + NL + "\t\t\tsuper(pageId, selection);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * The framework calls this to see if the file is correct." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_128 = NL + "\t\t@Override";
-  protected final String TEXT_129 = NL + "\t\tprotected boolean validatePage()" + NL + "\t\t{" + NL + "\t\t\tif (super.validatePage())" + NL + "\t\t\t{" + NL + "\t\t\t\tString extension = new ";
-  protected final String TEXT_130 = "(getFileName()).getFileExtension();" + NL + "\t\t\t\tif (extension == null || !FILE_EXTENSIONS.contains(extension))" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tString key = FILE_EXTENSIONS.size() > 1 ? \"_WARN_FilenameExtensions\" : \"_WARN_FilenameExtension\";";
-  protected final String TEXT_131 = NL + "\t\t\t\t\tsetErrorMessage(";
-  protected final String TEXT_132 = ".INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));" + NL + "\t\t\t\t\treturn false;" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn true;" + NL + "\t\t\t}" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic IFile getModelFile()" + NL + "\t\t{" + NL + "\t\t\treturn ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_133 = NL + "\t/**" + NL + "\t * This is the page where the type of object to create is selected." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic class ";
-  protected final String TEXT_134 = "InitialObjectCreationPage extends WizardPage" + NL + "\t{";
-  protected final String TEXT_135 = NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected ";
-  protected final String TEXT_136 = " fileField;" + NL;
-  protected final String TEXT_137 = NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected Combo initialObjectField;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t */" + NL + "\t\tprotected ";
-  protected final String TEXT_138 = " encodings;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected Combo encodingField;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * Pass in the selection." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ";
-  protected final String TEXT_139 = "InitialObjectCreationPage(String pageId)" + NL + "\t\t{" + NL + "\t\t\tsuper(pageId);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void createControl(Composite parent)" + NL + "\t\t{" + NL + "\t\t\tComposite composite = new Composite(parent, SWT.NONE);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridLayout layout = new GridLayout();" + NL + "\t\t\t\tlayout.numColumns = 1;" + NL + "\t\t\t\tlayout.verticalSpacing = 12;" + NL + "\t\t\t\tcomposite.setLayout(layout);" + NL + "" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.verticalAlignment = GridData.FILL;" + NL + "\t\t\t\tdata.grabExcessVerticalSpace = true;" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tcomposite.setLayoutData(data);" + NL + "\t\t\t}" + NL;
-  protected final String TEXT_140 = "\t\t\t" + NL + "\t\t\tLabel resourceURILabel = new Label(composite, SWT.LEFT);" + NL + "\t\t\t{" + NL + "\t\t\t\tresourceURILabel.setText(";
-  protected final String TEXT_141 = ".INSTANCE.getString(\"_UI_File_label\"));";
-  protected final String TEXT_142 = NL + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tresourceURILabel.setLayoutData(data);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tComposite fileComposite = new Composite(composite, SWT.NONE);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.END;" + NL + "\t\t\t\tfileComposite.setLayoutData(data);" + NL + "" + NL + "\t\t\t\tGridLayout layout = new GridLayout();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tlayout.marginHeight = 0;" + NL + "\t\t\t\tlayout.marginWidth = 0;" + NL + "\t\t\t\tlayout.numColumns = 2;" + NL + "\t\t\t\tfileComposite.setLayout(layout);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tfileField = new ";
-  protected final String TEXT_143 = "(fileComposite, SWT.BORDER);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tdata.grabExcessHorizontalSpace = true;" + NL + "\t\t\t\tdata.horizontalSpan = 1;" + NL + "\t\t\t\tfileField.setLayoutData(data);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tfileField.addModifyListener(validator);" + NL;
-  protected final String TEXT_144 = NL + "\t\t\t";
-  protected final String TEXT_145 = " resourceURIBrowseFileSystemButton = new ";
-  protected final String TEXT_146 = "(fileComposite, SWT.PUSH);" + NL + "\t\t\tresourceURIBrowseFileSystemButton.setText(";
-  protected final String TEXT_147 = ".INSTANCE.getString(\"_UI_Browse_label\"));";
-  protected final String TEXT_148 = NL + NL + "\t\t\tresourceURIBrowseFileSystemButton.addSelectionListener" + NL + "\t\t\t\t(new ";
-  protected final String TEXT_149 = "()" + NL + "\t\t\t\t {";
-  protected final String TEXT_150 = NL + "\t\t\t\t\t @Override";
-  protected final String TEXT_151 = NL + "\t\t\t\t\t public void widgetSelected(";
-  protected final String TEXT_152 = " event)" + NL + "\t\t\t\t\t {" + NL + "\t\t\t\t\t\t String[] filters = ";
-  protected final String TEXT_153 = "(String[])";
-  protected final String TEXT_154 = ".FILE_EXTENSION_FILTERS.toArray(new String[";
-  protected final String TEXT_155 = ".FILE_EXTENSION_FILTERS.size()]);" + NL + "\t\t\t\t\t\t String[] files = ";
-  protected final String TEXT_156 = ".openFilePathDialog(getShell(), ";
-  protected final String TEXT_157 = ".SAVE, filters);" + NL + "\t\t\t\t\t\t if (files.length > 0)" + NL + "\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t fileField.setText(files[0]);" + NL + "\t\t\t\t\t\t }" + NL + "\t\t\t\t\t }" + NL + "\t\t\t\t });";
-  protected final String TEXT_158 = NL + "\t\t\tLabel containerLabel = new Label(composite, SWT.LEFT);" + NL + "\t\t\t{" + NL + "\t\t\t\tcontainerLabel.setText(";
-  protected final String TEXT_159 = ".INSTANCE.getString(\"_UI_ModelObject\"));";
-  protected final String TEXT_160 = NL + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tcontainerLabel.setLayoutData(data);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tinitialObjectField = new Combo(composite, SWT.BORDER);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tdata.grabExcessHorizontalSpace = true;" + NL + "\t\t\t\tinitialObjectField.setLayoutData(data);" + NL + "\t\t\t}" + NL;
-  protected final String TEXT_161 = NL + "\t\t\tfor (String objectName : getInitialObjectNames())" + NL + "\t\t\t{" + NL + "\t\t\t\tinitialObjectField.add(getLabel(objectName));" + NL + "\t\t\t}";
-  protected final String TEXT_162 = NL + "\t\t\tfor (Iterator i = getInitialObjectNames().iterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\tinitialObjectField.add(getLabel((String)i.next()));" + NL + "\t\t\t}";
-  protected final String TEXT_163 = NL + NL + "\t\t\tif (initialObjectField.getItemCount() == 1)" + NL + "\t\t\t{" + NL + "\t\t\t\tinitialObjectField.select(0);" + NL + "\t\t\t}" + NL + "\t\t\tinitialObjectField.addModifyListener(validator);" + NL + "" + NL + "\t\t\tLabel encodingLabel = new Label(composite, SWT.LEFT);" + NL + "\t\t\t{" + NL + "\t\t\t\tencodingLabel.setText(";
-  protected final String TEXT_164 = ".INSTANCE.getString(\"_UI_XMLEncoding\"));";
-  protected final String TEXT_165 = NL + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tencodingLabel.setLayoutData(data);" + NL + "\t\t\t}" + NL + "\t\t\tencodingField = new Combo(composite, SWT.BORDER);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tdata.grabExcessHorizontalSpace = true;" + NL + "\t\t\t\tencodingField.setLayoutData(data);" + NL + "\t\t\t}" + NL;
-  protected final String TEXT_166 = NL + "\t\t\tfor (String encoding : getEncodings())" + NL + "\t\t\t{" + NL + "\t\t\t\tencodingField.add(encoding);" + NL + "\t\t\t}";
-  protected final String TEXT_167 = NL + "\t\t\tfor (Iterator i = getEncodings().iterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\tencodingField.add((String)i.next());" + NL + "\t\t\t}";
-  protected final String TEXT_168 = NL + NL + "\t\t\tencodingField.select(0);" + NL + "\t\t\tencodingField.addModifyListener(validator);" + NL + "" + NL + "\t\t\tsetPageComplete(validatePage());" + NL + "\t\t\tsetControl(composite);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected ModifyListener validator =" + NL + "\t\t\tnew ModifyListener()" + NL + "\t\t\t{" + NL + "\t\t\t\tpublic void modifyText(ModifyEvent e)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsetPageComplete(validatePage());" + NL + "\t\t\t\t}" + NL + "\t\t\t};" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected boolean validatePage()" + NL + "\t\t{";
-  protected final String TEXT_169 = NL + "\t\t\tURI fileURI = getFileURI();" + NL + "\t\t\tif (fileURI == null || fileURI.isEmpty())" + NL + "\t\t\t{" + NL + "\t\t\t\tsetErrorMessage(null);" + NL + "\t\t\t\treturn false;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tString extension = fileURI.fileExtension();" + NL + "\t\t\tif (extension == null || !FILE_EXTENSIONS.contains(extension))" + NL + "\t\t\t{" + NL + "\t\t\t\tString key = FILE_EXTENSIONS.size() > 1 ? \"_WARN_FilenameExtensions\" : \"_WARN_FilenameExtension\";";
-  protected final String TEXT_170 = NL + "\t\t\t\tsetErrorMessage(";
-  protected final String TEXT_171 = ".INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));" + NL + "\t\t\t\treturn false;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tsetErrorMessage(null);";
-  protected final String TEXT_172 = NL + "\t\t\treturn getInitialObjectName() != null && getEncodings().contains(encodingField.getText());" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_173 = NL + "\t\tpublic void setVisible(boolean visible)" + NL + "\t\t{" + NL + "\t\t\tsuper.setVisible(visible);" + NL + "\t\t\tif (visible)" + NL + "\t\t\t{";
-  protected final String TEXT_174 = NL + "\t\t\t\tif (initialObjectField.getItemCount() == 1)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tinitialObjectField.clearSelection();" + NL + "\t\t\t\t\tencodingField.setFocus();" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tencodingField.clearSelection();" + NL + "\t\t\t\t\tinitialObjectField.setFocus();" + NL + "\t\t\t\t}";
-  protected final String TEXT_175 = NL + "\t\t\t\tinitialObjectField.clearSelection();" + NL + "\t\t\t\tencodingField.clearSelection();" + NL + "\t\t\t\tfileField.setFocus();";
-  protected final String TEXT_176 = NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic String getInitialObjectName()" + NL + "\t\t{" + NL + "\t\t\tString label = initialObjectField.getText();" + NL;
-  protected final String TEXT_177 = NL + "\t\t\tfor (String name : getInitialObjectNames())";
-  protected final String TEXT_178 = NL + "\t\t\tfor (Iterator i = getInitialObjectNames().iterator(); i.hasNext(); )";
-  protected final String TEXT_179 = NL + "\t\t\t\tString name = (String)i.next();";
-  protected final String TEXT_180 = NL + "\t\t\t\tif (getLabel(name).equals(label))" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\treturn name;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic String getEncoding()" + NL + "\t\t{" + NL + "\t\t\treturn encodingField.getText();" + NL + "\t\t}";
-  protected final String TEXT_181 = NL + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic URI getFileURI()" + NL + "\t\t{" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\treturn URI.createFileURI(fileField.getText());" + NL + "\t\t\t}" + NL + "\t\t\tcatch (Exception exception)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore" + NL + "\t\t\t}" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void selectFileField()" + NL + "\t\t{" + NL + "\t\t\t\tinitialObjectField.clearSelection();" + NL + "\t\t\t\tencodingField.clearSelection();" + NL + "\t\t\t\tfileField.selectAll();" + NL + "\t\t\t\tfileField.setFocus();" + NL + "\t\t}\t\t";
-  protected final String TEXT_182 = NL + NL + "\t\t/**" + NL + "\t\t * Returns the label for the specified ";
-  protected final String TEXT_183 = " name." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected String getLabel(String ";
-  protected final String TEXT_184 = "Name)" + NL + "\t\t{" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\treturn ";
-  protected final String TEXT_185 = ".INSTANCE.getString(\"";
-  protected final String TEXT_186 = "\" + ";
-  protected final String TEXT_187 = "Name + \"_";
-  protected final String TEXT_188 = "\");";
-  protected final String TEXT_189 = NL + "\t\t\t}" + NL + "\t\t\tcatch(MissingResourceException mre)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_190 = ".INSTANCE.log(mre);" + NL + "\t\t\t}" + NL + "\t\t\treturn ";
-  protected final String TEXT_191 = "Name;" + NL + "\t\t}";
-  protected final String TEXT_192 = NL + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected ";
-  protected final String TEXT_193 = " getEncodings()" + NL + "\t\t{" + NL + "\t\t\tif (encodings == null)" + NL + "\t\t\t{" + NL + "\t\t\t\tencodings = new ";
-  protected final String TEXT_194 = "();" + NL + "\t\t\t\tfor (StringTokenizer stringTokenizer = new StringTokenizer(";
-  protected final String TEXT_195 = ".INSTANCE.getString(\"_UI_XMLEncodingChoices\")); stringTokenizer.hasMoreTokens(); )";
-  protected final String TEXT_196 = NL + "\t\t\t\t{" + NL + "\t\t\t\t\tencodings.add(stringTokenizer.nextToken());" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\treturn encodings;" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The framework calls this to create the contents of the wizard." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_197 = NL + "\tpublic void addPages()" + NL + "\t{";
-  protected final String TEXT_198 = NL + "\t\t// Create a page, set the title, and the initial model file name." + NL + "\t\t//" + NL + "\t\tnewFileCreationPage = new ";
-  protected final String TEXT_199 = "NewFileCreationPage(\"Whatever\", selection);";
-  protected final String TEXT_200 = NL + "\t\tnewFileCreationPage.setTitle(";
-  protected final String TEXT_201 = "_label\"));";
-  protected final String TEXT_202 = NL + "\t\tnewFileCreationPage.setDescription(";
-  protected final String TEXT_203 = "_description\"));";
-  protected final String TEXT_204 = NL + "\t\tnewFileCreationPage.setFileName(";
-  protected final String TEXT_205 = "FilenameDefaultBase\") + \".\" + ";
-  protected final String TEXT_206 = "(String)";
-  protected final String TEXT_207 = "FILE_EXTENSIONS.get(0));";
-  protected final String TEXT_208 = NL + "\t\taddPage(newFileCreationPage);" + NL + "" + NL + "\t\t// Try and get the resource selection to determine a current directory for the file dialog." + NL + "\t\t//" + NL + "\t\tif (selection != null && !selection.isEmpty())" + NL + "\t\t{" + NL + "\t\t\t// Get the resource..." + NL + "\t\t\t//" + NL + "\t\t\tObject selectedElement = selection.iterator().next();" + NL + "\t\t\tif (selectedElement instanceof IResource)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Get the resource parent, if its a file." + NL + "\t\t\t\t//" + NL + "\t\t\t\tIResource selectedResource = (IResource)selectedElement;" + NL + "\t\t\t\tif (selectedResource.getType() == IResource.FILE)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tselectedResource = selectedResource.getParent();" + NL + "\t\t\t\t}" + NL + "" + NL + "\t\t\t\t// This gives us a directory..." + NL + "\t\t\t\t//" + NL + "\t\t\t\tif (selectedResource instanceof IFolder || selectedResource instanceof IProject)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t// Set this for the container." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tnewFileCreationPage.setContainerFullPath(selectedResource.getFullPath());" + NL + "" + NL + "\t\t\t\t\t// Make up a unique new name here." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tString defaultModelBaseFilename = ";
-  protected final String TEXT_209 = "FilenameDefaultBase\");";
-  protected final String TEXT_210 = NL + "\t\t\t\t\tString defaultModelFilenameExtension = ";
-  protected final String TEXT_211 = "FILE_EXTENSIONS.get(0);" + NL + "\t\t\t\t\tString modelFilename = defaultModelBaseFilename + \".\" + defaultModelFilenameExtension;";
-  protected final String TEXT_212 = NL + "\t\t\t\t\tfor (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tmodelFilename = defaultModelBaseFilename + i + \".\" + defaultModelFilenameExtension;";
-  protected final String TEXT_213 = NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tnewFileCreationPage.setFileName(modelFilename);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_214 = NL + "\t\tinitialObjectCreationPage = new ";
-  protected final String TEXT_215 = "InitialObjectCreationPage(\"Whatever2\");";
-  protected final String TEXT_216 = NL + "\t\tinitialObjectCreationPage.setTitle(";
-  protected final String TEXT_217 = NL + "\t\tinitialObjectCreationPage.setDescription(";
-  protected final String TEXT_218 = ".INSTANCE.getString(\"_UI_Wizard_initial_object_description\"));";
-  protected final String TEXT_219 = NL + "\t\taddPage(initialObjectCreationPage);" + NL + "\t}" + NL;
-  protected final String TEXT_220 = NL + "\t/**" + NL + "\t * Get the URI from the page." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic URI getModelURI()" + NL + "\t{" + NL + "\t\treturn initialObjectCreationPage.getFileURI();" + NL + "\t}" + NL;
-  protected final String TEXT_221 = NL + "\t/**" + NL + "\t * Get the file from the page." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IFile getModelFile()" + NL + "\t{" + NL + "\t\treturn newFileCreationPage.getModelFile();" + NL + "\t}" + NL;
-  protected final String TEXT_222 = NL + "}";
+  protected final String TEXT_45 = " initialObjectNames;" + NL + "" + NL + "\t/**" + NL + "\t * This just records the information." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_46 = NL + "\t@Override";
+  protected final String TEXT_47 = NL + "\tpublic void init(IWorkbench workbench, IStructuredSelection selection)" + NL + "\t{" + NL + "\t\tthis.workbench = workbench;" + NL + "\t\tthis.selection = selection;" + NL + "\t\tsetWindowTitle(";
+  protected final String TEXT_48 = ".INSTANCE.getString(\"_UI_Wizard_label\"));";
+  protected final String TEXT_49 = NL + "\t\tsetDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(";
+  protected final String TEXT_50 = ".INSTANCE.getImage(\"full/wizban/New";
+  protected final String TEXT_51 = "\")));";
+  protected final String TEXT_52 = NL + "\t}" + NL + "" + NL + "\t/**";
+  protected final String TEXT_53 = NL + "\t * Returns the names of the types that can be created as the root object.";
+  protected final String TEXT_54 = NL + "\t * Returns the names of the features representing global elements.";
+  protected final String TEXT_55 = " getInitialObjectNames()" + NL + "\t{" + NL + "\t\tif (initialObjectNames == null)" + NL + "\t\t{" + NL + "\t\t\tinitialObjectNames = new ";
+  protected final String TEXT_56 = "();";
+  protected final String TEXT_57 = NL + "\t\t\tfor (EClassifier eClassifier : ";
+  protected final String TEXT_58 = ".getEClassifiers())";
+  protected final String TEXT_59 = NL + "\t\t\tfor (Iterator classifiers = ";
+  protected final String TEXT_60 = ".getEClassifiers().iterator(); classifiers.hasNext(); )";
+  protected final String TEXT_61 = NL + "\t\t\t{";
+  protected final String TEXT_62 = NL + "\t\t\t\tEClassifier eClassifier = (EClassifier)classifiers.next();";
+  protected final String TEXT_63 = NL + "\t\t\t\tif (eClassifier instanceof EClass)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tEClass eClass = (EClass)eClassifier;" + NL + "\t\t\t\t\tif (!eClass.isAbstract())" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tinitialObjectNames.add(eClass.getName());" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}";
+  protected final String TEXT_64 = NL + "\t\t\tfor (";
+  protected final String TEXT_65 = " eStructuralFeature : ";
+  protected final String TEXT_66 = ".INSTANCE.getAllElements(";
+  protected final String TEXT_67 = ".INSTANCE.getDocumentRoot(";
+  protected final String TEXT_68 = ")))";
+  protected final String TEXT_69 = NL + "\t\t\tfor (Iterator elements = ";
+  protected final String TEXT_70 = ")).iterator(); elements.hasNext(); )";
+  protected final String TEXT_71 = NL + "\t\t\t\t";
+  protected final String TEXT_72 = " eStructuralFeature = (";
+  protected final String TEXT_73 = ")elements.next();";
+  protected final String TEXT_74 = NL + "\t\t\t\tif (eStructuralFeature.isChangeable())" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tEClassifier eClassifier = eStructuralFeature.getEType();" + NL + "\t\t\t\t\tif (eClassifier instanceof EClass)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tEClass eClass = (EClass)eClassifier;" + NL + "\t\t\t\t\t\tif (!eClass.isAbstract())" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tinitialObjectNames.add(eStructuralFeature.getName());" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}";
+  protected final String TEXT_75 = NL + "\t\t\tCollections.sort(initialObjectNames, ";
+  protected final String TEXT_76 = "CommonPlugin.INSTANCE.getComparator()";
+  protected final String TEXT_77 = "java.text.Collator.getInstance()";
+  protected final String TEXT_78 = ");" + NL + "\t\t}" + NL + "\t\treturn initialObjectNames;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Create a new model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected EObject createInitialModel()" + NL + "\t{";
+  protected final String TEXT_79 = NL + "\t\tEClass eClass = (EClass)";
+  protected final String TEXT_80 = ".getEClassifier(initialObjectCreationPage.getInitialObjectName());" + NL + "\t\tEObject rootObject = ";
+  protected final String TEXT_81 = ".create(eClass);";
+  protected final String TEXT_82 = NL + "\t\tEClass eClass = ";
+  protected final String TEXT_83 = ");" + NL + "\t\tEStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(initialObjectCreationPage.getInitialObjectName());" + NL + "\t\tEObject rootObject = ";
+  protected final String TEXT_84 = ".create(eClass);" + NL + "\t\trootObject.eSet(eStructuralFeature, ";
+  protected final String TEXT_85 = ".create((EClass)eStructuralFeature.getEType()));";
+  protected final String TEXT_86 = NL + "\t\treturn rootObject;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Do the work after everything is specified." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_87 = NL + "\tpublic boolean performFinish()" + NL + "\t{" + NL + "\t\ttry" + NL + "\t\t{";
+  protected final String TEXT_88 = NL + "\t\t\t// Get the URI of the model file." + NL + "\t\t\t//" + NL + "\t\t\tfinal URI fileURI = getModelURI();" + NL + "\t\t\tif (new ";
+  protected final String TEXT_89 = "(fileURI.toFileString()).exists())" + NL + "\t\t\t{" + NL + "\t\t\t\tif (!MessageDialog.openQuestion" + NL + "\t\t\t\t\t\t(getShell()," + NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_90 = ".INSTANCE.getString(\"_UI_Question_title\"),";
+  protected final String TEXT_91 = NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_92 = ".INSTANCE.getString(\"_WARN_FileConflict\", new String []{ fileURI.toFileString() })))";
+  protected final String TEXT_93 = NL + "\t\t\t\t{" + NL + "\t\t\t\t\tinitialObjectCreationPage.selectFileField();" + NL + "\t\t\t\t\treturn false;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\t" + NL + "\t\t\t// Do the work within an operation." + NL + "\t\t\t//" + NL + "\t\t\t";
+  protected final String TEXT_94 = " operation = new ";
+  protected final String TEXT_95 = "()" + NL + "\t\t\t{";
+  protected final String TEXT_96 = NL + "\t\t\t\t@Override";
+  protected final String TEXT_97 = NL + "\t\t\t\tpublic void run(IProgressMonitor progressMonitor)";
+  protected final String TEXT_98 = NL + "\t\t\t// Remember the file." + NL + "\t\t\t//" + NL + "\t\t\tfinal IFile modelFile = getModelFile();" + NL + "" + NL + "\t\t\t// Do the work within an operation." + NL + "\t\t\t//" + NL + "\t\t\tWorkspaceModifyOperation operation =" + NL + "\t\t\t\tnew WorkspaceModifyOperation()" + NL + "\t\t\t\t{";
+  protected final String TEXT_99 = NL + "\t\t\t\t\t@Override";
+  protected final String TEXT_100 = NL + "\t\t\t\t\tprotected void execute(IProgressMonitor progressMonitor)";
+  protected final String TEXT_101 = NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\ttry" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t// Create a resource set" + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\tResourceSet resourceSet = new ResourceSetImpl();" + NL;
+  protected final String TEXT_102 = NL + "\t\t\t\t\t\t\t// Get the URI of the model file." + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\tURI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);" + NL;
+  protected final String TEXT_103 = NL + "\t\t\t\t\t\t\t// Create a resource for this file." + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\tResource resource = resourceSet.createResource(fileURI";
+  protected final String TEXT_104 = ", ";
+  protected final String TEXT_105 = ".eCONTENT_TYPE";
+  protected final String TEXT_106 = ");" + NL + "" + NL + "\t\t\t\t\t\t\t// Add the initial model object to the contents." + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\tEObject rootObject = createInitialModel();" + NL + "\t\t\t\t\t\t\tif (rootObject != null)" + NL + "\t\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t\tresource.getContents().add(rootObject);" + NL + "\t\t\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\t\t\t// Save the contents of the resource to the file system." + NL + "\t\t\t\t\t\t\t//" + NL + "\t\t\t\t\t\t\t";
+  protected final String TEXT_107 = " options = new ";
+  protected final String TEXT_108 = "();" + NL + "\t\t\t\t\t\t\toptions.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());" + NL + "\t\t\t\t\t\t\tresource.save(options);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\tcatch (Exception exception)" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\t";
+  protected final String TEXT_109 = ".INSTANCE.log(exception);" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\tfinally" + NL + "\t\t\t\t\t\t{" + NL + "\t\t\t\t\t\t\tprogressMonitor.done();" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "" + NL + "\t\t\tgetContainer().run(false, false, operation);" + NL;
+  protected final String TEXT_110 = NL + "\t\t\treturn ";
+  protected final String TEXT_111 = ".openEditor(workbench, fileURI);\t\t\t";
+  protected final String TEXT_112 = NL + "\t\t\t// Select the new file resource in the current view." + NL + "\t\t\t//" + NL + "\t\t\t";
+  protected final String TEXT_113 = " workbenchWindow = workbench.getActiveWorkbenchWindow();" + NL + "\t\t\t";
+  protected final String TEXT_114 = " page = workbenchWindow.getActivePage();" + NL + "\t\t\tfinal ";
+  protected final String TEXT_115 = " activePart = page.getActivePart();" + NL + "\t\t\tif (activePart instanceof ISetSelectionTarget)" + NL + "\t\t\t{" + NL + "\t\t\t\tfinal ";
+  protected final String TEXT_116 = " targetSelection = new ";
+  protected final String TEXT_117 = "(modelFile);" + NL + "\t\t\t\tgetShell().getDisplay().asyncExec" + NL + "\t\t\t\t\t(new Runnable()" + NL + "\t\t\t\t\t {";
+  protected final String TEXT_118 = NL + "\t\t\t\t\t\t @Override";
+  protected final String TEXT_119 = NL + "\t\t\t\t\t\t public void run()" + NL + "\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t ((ISetSelectionTarget)activePart).selectReveal(targetSelection);" + NL + "\t\t\t\t\t\t }" + NL + "\t\t\t\t\t });" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\t// Open an editor on the new file." + NL + "\t\t\t//" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\tpage.openEditor" + NL + "\t\t\t\t\t(new FileEditorInput(modelFile)," + NL + "\t\t\t\t\t workbench.getEditorRegistry().getDefaultEditor";
+  protected final String TEXT_120 = "(modelFile.getFullPath().toString()).getId());";
+  protected final String TEXT_121 = NL + "\t\t\t\t\t \t(modelFile.getFullPath().toString()," + NL + "\t\t\t\t\t \t ";
+  protected final String TEXT_122 = ".getContentTypeManager().getContentType(";
+  protected final String TEXT_123 = ".eCONTENT_TYPE)).getId());";
+  protected final String TEXT_124 = "\t\t\t\t\t \t " + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
+  protected final String TEXT_125 = " exception)" + NL + "\t\t\t{" + NL + "\t\t\t\tMessageDialog.openError(workbenchWindow.getShell(), ";
+  protected final String TEXT_126 = ".INSTANCE.getString(\"_UI_OpenEditorError_label\"), exception.getMessage());";
+  protected final String TEXT_127 = NL + "\t\t\t\treturn false;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\treturn true;";
+  protected final String TEXT_128 = NL + "\t\t}" + NL + "\t\tcatch (Exception exception)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_129 = ".INSTANCE.log(exception);" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_130 = NL + "\t/**" + NL + "\t * This is the one page of the wizard." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic class ";
+  protected final String TEXT_131 = "NewFileCreationPage extends WizardNewFileCreationPage" + NL + "\t{" + NL + "\t\t/**" + NL + "\t\t * Pass in the selection." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ";
+  protected final String TEXT_132 = "NewFileCreationPage(String pageId, IStructuredSelection selection)" + NL + "\t\t{" + NL + "\t\t\tsuper(pageId, selection);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * The framework calls this to see if the file is correct." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_133 = NL + "\t\t@Override";
+  protected final String TEXT_134 = NL + "\t\tprotected boolean validatePage()" + NL + "\t\t{" + NL + "\t\t\tif (super.validatePage())" + NL + "\t\t\t{" + NL + "\t\t\t\tString extension = new ";
+  protected final String TEXT_135 = "(getFileName()).getFileExtension();" + NL + "\t\t\t\tif (extension == null || !FILE_EXTENSIONS.contains(extension))" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tString key = FILE_EXTENSIONS.size() > 1 ? \"_WARN_FilenameExtensions\" : \"_WARN_FilenameExtension\";";
+  protected final String TEXT_136 = NL + "\t\t\t\t\tsetErrorMessage(";
+  protected final String TEXT_137 = ".INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));" + NL + "\t\t\t\t\treturn false;" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn true;" + NL + "\t\t\t}" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic IFile getModelFile()" + NL + "\t\t{" + NL + "\t\t\treturn ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_138 = NL + "\t/**" + NL + "\t * This is the page where the type of object to create is selected." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic class ";
+  protected final String TEXT_139 = "InitialObjectCreationPage extends WizardPage" + NL + "\t{";
+  protected final String TEXT_140 = NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected ";
+  protected final String TEXT_141 = " fileField;" + NL;
+  protected final String TEXT_142 = NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected Combo initialObjectField;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t */" + NL + "\t\tprotected ";
+  protected final String TEXT_143 = " encodings;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected Combo encodingField;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * Pass in the selection." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ";
+  protected final String TEXT_144 = "InitialObjectCreationPage(String pageId)" + NL + "\t\t{" + NL + "\t\t\tsuper(pageId);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_145 = NL + "\t\tpublic void createControl(Composite parent)" + NL + "\t\t{" + NL + "\t\t\tComposite composite = new Composite(parent, SWT.NONE);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridLayout layout = new GridLayout();" + NL + "\t\t\t\tlayout.numColumns = 1;" + NL + "\t\t\t\tlayout.verticalSpacing = 12;" + NL + "\t\t\t\tcomposite.setLayout(layout);" + NL + "" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.verticalAlignment = GridData.FILL;" + NL + "\t\t\t\tdata.grabExcessVerticalSpace = true;" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tcomposite.setLayoutData(data);" + NL + "\t\t\t}" + NL;
+  protected final String TEXT_146 = "\t\t\t" + NL + "\t\t\tLabel resourceURILabel = new Label(composite, SWT.LEFT);" + NL + "\t\t\t{" + NL + "\t\t\t\tresourceURILabel.setText(";
+  protected final String TEXT_147 = ".INSTANCE.getString(\"_UI_File_label\"));";
+  protected final String TEXT_148 = NL + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tresourceURILabel.setLayoutData(data);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tComposite fileComposite = new Composite(composite, SWT.NONE);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.END;" + NL + "\t\t\t\tfileComposite.setLayoutData(data);" + NL + "" + NL + "\t\t\t\tGridLayout layout = new GridLayout();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tlayout.marginHeight = 0;" + NL + "\t\t\t\tlayout.marginWidth = 0;" + NL + "\t\t\t\tlayout.numColumns = 2;" + NL + "\t\t\t\tfileComposite.setLayout(layout);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tfileField = new ";
+  protected final String TEXT_149 = "(fileComposite, SWT.BORDER);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tdata.grabExcessHorizontalSpace = true;" + NL + "\t\t\t\tdata.horizontalSpan = 1;" + NL + "\t\t\t\tfileField.setLayoutData(data);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tfileField.addModifyListener(validator);" + NL;
+  protected final String TEXT_150 = NL + "\t\t\t";
+  protected final String TEXT_151 = " resourceURIBrowseFileSystemButton = new ";
+  protected final String TEXT_152 = "(fileComposite, SWT.PUSH);" + NL + "\t\t\tresourceURIBrowseFileSystemButton.setText(";
+  protected final String TEXT_153 = ".INSTANCE.getString(\"_UI_Browse_label\"));";
+  protected final String TEXT_154 = NL + NL + "\t\t\tresourceURIBrowseFileSystemButton.addSelectionListener" + NL + "\t\t\t\t(new ";
+  protected final String TEXT_155 = "()" + NL + "\t\t\t\t {";
+  protected final String TEXT_156 = NL + "\t\t\t\t\t @Override";
+  protected final String TEXT_157 = NL + "\t\t\t\t\t public void widgetSelected(";
+  protected final String TEXT_158 = " event)" + NL + "\t\t\t\t\t {" + NL + "\t\t\t\t\t\t String[] filters = ";
+  protected final String TEXT_159 = "(String[])";
+  protected final String TEXT_160 = ".FILE_EXTENSION_FILTERS.toArray(new String[";
+  protected final String TEXT_161 = ".FILE_EXTENSION_FILTERS.size()]);" + NL + "\t\t\t\t\t\t String[] files = ";
+  protected final String TEXT_162 = ".openFilePathDialog(getShell(), ";
+  protected final String TEXT_163 = ".SAVE, filters);" + NL + "\t\t\t\t\t\t if (files.length > 0)" + NL + "\t\t\t\t\t\t {" + NL + "\t\t\t\t\t\t\t fileField.setText(files[0]);" + NL + "\t\t\t\t\t\t }" + NL + "\t\t\t\t\t }" + NL + "\t\t\t\t });";
+  protected final String TEXT_164 = NL + "\t\t\tLabel containerLabel = new Label(composite, SWT.LEFT);" + NL + "\t\t\t{" + NL + "\t\t\t\tcontainerLabel.setText(";
+  protected final String TEXT_165 = ".INSTANCE.getString(\"_UI_ModelObject\"));";
+  protected final String TEXT_166 = NL + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tcontainerLabel.setLayoutData(data);" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tinitialObjectField = new Combo(composite, SWT.BORDER);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tdata.grabExcessHorizontalSpace = true;" + NL + "\t\t\t\tinitialObjectField.setLayoutData(data);" + NL + "\t\t\t}" + NL;
+  protected final String TEXT_167 = NL + "\t\t\tfor (String objectName : getInitialObjectNames())" + NL + "\t\t\t{" + NL + "\t\t\t\tinitialObjectField.add(getLabel(objectName));" + NL + "\t\t\t}";
+  protected final String TEXT_168 = NL + "\t\t\tfor (Iterator i = getInitialObjectNames().iterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\tinitialObjectField.add(getLabel((String)i.next()));" + NL + "\t\t\t}";
+  protected final String TEXT_169 = NL + NL + "\t\t\tif (initialObjectField.getItemCount() == 1)" + NL + "\t\t\t{" + NL + "\t\t\t\tinitialObjectField.select(0);" + NL + "\t\t\t}" + NL + "\t\t\tinitialObjectField.addModifyListener(validator);" + NL + "" + NL + "\t\t\tLabel encodingLabel = new Label(composite, SWT.LEFT);" + NL + "\t\t\t{" + NL + "\t\t\t\tencodingLabel.setText(";
+  protected final String TEXT_170 = ".INSTANCE.getString(\"_UI_XMLEncoding\"));";
+  protected final String TEXT_171 = NL + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tencodingLabel.setLayoutData(data);" + NL + "\t\t\t}" + NL + "\t\t\tencodingField = new Combo(composite, SWT.BORDER);" + NL + "\t\t\t{" + NL + "\t\t\t\tGridData data = new GridData();" + NL + "\t\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\t\tdata.grabExcessHorizontalSpace = true;" + NL + "\t\t\t\tencodingField.setLayoutData(data);" + NL + "\t\t\t}" + NL;
+  protected final String TEXT_172 = NL + "\t\t\tfor (String encoding : getEncodings())" + NL + "\t\t\t{" + NL + "\t\t\t\tencodingField.add(encoding);" + NL + "\t\t\t}";
+  protected final String TEXT_173 = NL + "\t\t\tfor (Iterator i = getEncodings().iterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\tencodingField.add((String)i.next());" + NL + "\t\t\t}";
+  protected final String TEXT_174 = NL + NL + "\t\t\tencodingField.select(0);" + NL + "\t\t\tencodingField.addModifyListener(validator);" + NL + "" + NL + "\t\t\tsetPageComplete(validatePage());" + NL + "\t\t\tsetControl(composite);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected ModifyListener validator =" + NL + "\t\t\tnew ModifyListener()" + NL + "\t\t\t{";
+  protected final String TEXT_175 = NL + "\t\t\t\tpublic void modifyText(ModifyEvent e)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tsetPageComplete(validatePage());" + NL + "\t\t\t\t}" + NL + "\t\t\t};" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected boolean validatePage()" + NL + "\t\t{";
+  protected final String TEXT_176 = NL + "\t\t\tURI fileURI = getFileURI();" + NL + "\t\t\tif (fileURI == null || fileURI.isEmpty())" + NL + "\t\t\t{" + NL + "\t\t\t\tsetErrorMessage(null);" + NL + "\t\t\t\treturn false;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tString extension = fileURI.fileExtension();" + NL + "\t\t\tif (extension == null || !FILE_EXTENSIONS.contains(extension))" + NL + "\t\t\t{" + NL + "\t\t\t\tString key = FILE_EXTENSIONS.size() > 1 ? \"_WARN_FilenameExtensions\" : \"_WARN_FilenameExtension\";";
+  protected final String TEXT_177 = NL + "\t\t\t\tsetErrorMessage(";
+  protected final String TEXT_178 = ".INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));" + NL + "\t\t\t\treturn false;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tsetErrorMessage(null);";
+  protected final String TEXT_179 = NL + "\t\t\treturn getInitialObjectName() != null && getEncodings().contains(encodingField.getText());" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_180 = NL + "\t\tpublic void setVisible(boolean visible)" + NL + "\t\t{" + NL + "\t\t\tsuper.setVisible(visible);" + NL + "\t\t\tif (visible)" + NL + "\t\t\t{";
+  protected final String TEXT_181 = NL + "\t\t\t\tif (initialObjectField.getItemCount() == 1)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tinitialObjectField.clearSelection();" + NL + "\t\t\t\t\tencodingField.setFocus();" + NL + "\t\t\t\t}" + NL + "\t\t\t\telse" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tencodingField.clearSelection();" + NL + "\t\t\t\t\tinitialObjectField.setFocus();" + NL + "\t\t\t\t}";
+  protected final String TEXT_182 = NL + "\t\t\t\tinitialObjectField.clearSelection();" + NL + "\t\t\t\tencodingField.clearSelection();" + NL + "\t\t\t\tfileField.setFocus();";
+  protected final String TEXT_183 = NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic String getInitialObjectName()" + NL + "\t\t{" + NL + "\t\t\tString label = initialObjectField.getText();" + NL;
+  protected final String TEXT_184 = NL + "\t\t\tfor (String name : getInitialObjectNames())";
+  protected final String TEXT_185 = NL + "\t\t\tfor (Iterator i = getInitialObjectNames().iterator(); i.hasNext(); )";
+  protected final String TEXT_186 = NL + "\t\t\t\tString name = (String)i.next();";
+  protected final String TEXT_187 = NL + "\t\t\t\tif (getLabel(name).equals(label))" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\treturn name;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic String getEncoding()" + NL + "\t\t{" + NL + "\t\t\treturn encodingField.getText();" + NL + "\t\t}";
+  protected final String TEXT_188 = NL + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic URI getFileURI()" + NL + "\t\t{" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\treturn URI.createFileURI(fileField.getText());" + NL + "\t\t\t}" + NL + "\t\t\tcatch (Exception exception)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Ignore" + NL + "\t\t\t}" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void selectFileField()" + NL + "\t\t{" + NL + "\t\t\t\tinitialObjectField.clearSelection();" + NL + "\t\t\t\tencodingField.clearSelection();" + NL + "\t\t\t\tfileField.selectAll();" + NL + "\t\t\t\tfileField.setFocus();" + NL + "\t\t}\t\t";
+  protected final String TEXT_189 = NL + NL + "\t\t/**" + NL + "\t\t * Returns the label for the specified ";
+  protected final String TEXT_190 = " name." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected String getLabel(String ";
+  protected final String TEXT_191 = "Name)" + NL + "\t\t{" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\treturn ";
+  protected final String TEXT_192 = ".INSTANCE.getString(\"";
+  protected final String TEXT_193 = "\" + ";
+  protected final String TEXT_194 = "Name + \"_";
+  protected final String TEXT_195 = "\");";
+  protected final String TEXT_196 = NL + "\t\t\t}" + NL + "\t\t\tcatch(MissingResourceException mre)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_197 = ".INSTANCE.log(mre);" + NL + "\t\t\t}" + NL + "\t\t\treturn ";
+  protected final String TEXT_198 = "Name;" + NL + "\t\t}";
+  protected final String TEXT_199 = NL + NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected ";
+  protected final String TEXT_200 = " getEncodings()" + NL + "\t\t{" + NL + "\t\t\tif (encodings == null)" + NL + "\t\t\t{" + NL + "\t\t\t\tencodings = new ";
+  protected final String TEXT_201 = "();" + NL + "\t\t\t\tfor (StringTokenizer stringTokenizer = new StringTokenizer(";
+  protected final String TEXT_202 = ".INSTANCE.getString(\"_UI_XMLEncodingChoices\")); stringTokenizer.hasMoreTokens(); )";
+  protected final String TEXT_203 = NL + "\t\t\t\t{" + NL + "\t\t\t\t\tencodings.add(stringTokenizer.nextToken());" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\treturn encodings;" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The framework calls this to create the contents of the wizard." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_204 = NL + "\tpublic void addPages()" + NL + "\t{";
+  protected final String TEXT_205 = NL + "\t\t// Create a page, set the title, and the initial model file name." + NL + "\t\t//" + NL + "\t\tnewFileCreationPage = new ";
+  protected final String TEXT_206 = "NewFileCreationPage(\"Whatever\", selection);";
+  protected final String TEXT_207 = NL + "\t\tnewFileCreationPage.setTitle(";
+  protected final String TEXT_208 = "_label\"));";
+  protected final String TEXT_209 = NL + "\t\tnewFileCreationPage.setDescription(";
+  protected final String TEXT_210 = "_description\"));";
+  protected final String TEXT_211 = NL + "\t\tnewFileCreationPage.setFileName(";
+  protected final String TEXT_212 = "FilenameDefaultBase\") + \".\" + ";
+  protected final String TEXT_213 = "(String)";
+  protected final String TEXT_214 = "FILE_EXTENSIONS.get(0));";
+  protected final String TEXT_215 = NL + "\t\taddPage(newFileCreationPage);" + NL + "" + NL + "\t\t// Try and get the resource selection to determine a current directory for the file dialog." + NL + "\t\t//" + NL + "\t\tif (selection != null && !selection.isEmpty())" + NL + "\t\t{" + NL + "\t\t\t// Get the resource..." + NL + "\t\t\t//" + NL + "\t\t\tObject selectedElement = selection.iterator().next();" + NL + "\t\t\tif (selectedElement instanceof IResource)" + NL + "\t\t\t{" + NL + "\t\t\t\t// Get the resource parent, if its a file." + NL + "\t\t\t\t//" + NL + "\t\t\t\tIResource selectedResource = (IResource)selectedElement;" + NL + "\t\t\t\tif (selectedResource.getType() == IResource.FILE)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\tselectedResource = selectedResource.getParent();" + NL + "\t\t\t\t}" + NL + "" + NL + "\t\t\t\t// This gives us a directory..." + NL + "\t\t\t\t//" + NL + "\t\t\t\tif (selectedResource instanceof IFolder || selectedResource instanceof IProject)" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\t// Set this for the container." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tnewFileCreationPage.setContainerFullPath(selectedResource.getFullPath());" + NL + "" + NL + "\t\t\t\t\t// Make up a unique new name here." + NL + "\t\t\t\t\t//" + NL + "\t\t\t\t\tString defaultModelBaseFilename = ";
+  protected final String TEXT_216 = "FilenameDefaultBase\");";
+  protected final String TEXT_217 = NL + "\t\t\t\t\tString defaultModelFilenameExtension = ";
+  protected final String TEXT_218 = "FILE_EXTENSIONS.get(0);" + NL + "\t\t\t\t\tString modelFilename = defaultModelBaseFilename + \".\" + defaultModelFilenameExtension;";
+  protected final String TEXT_219 = NL + "\t\t\t\t\tfor (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i)" + NL + "\t\t\t\t\t{" + NL + "\t\t\t\t\t\tmodelFilename = defaultModelBaseFilename + i + \".\" + defaultModelFilenameExtension;";
+  protected final String TEXT_220 = NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tnewFileCreationPage.setFileName(modelFilename);" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_221 = NL + "\t\tinitialObjectCreationPage = new ";
+  protected final String TEXT_222 = "InitialObjectCreationPage(\"Whatever2\");";
+  protected final String TEXT_223 = NL + "\t\tinitialObjectCreationPage.setTitle(";
+  protected final String TEXT_224 = NL + "\t\tinitialObjectCreationPage.setDescription(";
+  protected final String TEXT_225 = ".INSTANCE.getString(\"_UI_Wizard_initial_object_description\"));";
+  protected final String TEXT_226 = NL + "\t\taddPage(initialObjectCreationPage);" + NL + "\t}" + NL;
+  protected final String TEXT_227 = NL + "\t/**" + NL + "\t * Get the URI from the page." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic URI getModelURI()" + NL + "\t{" + NL + "\t\treturn initialObjectCreationPage.getFileURI();" + NL + "\t}" + NL;
+  protected final String TEXT_228 = NL + "\t/**" + NL + "\t * Get the file from the page." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IFile getModelFile()" + NL + "\t{" + NL + "\t\treturn newFileCreationPage.getModelFile();" + NL + "\t}" + NL;
+  protected final String TEXT_229 = NL + "}";
 
   public String generate(Object argument)
   {
@@ -365,399 +372,419 @@
     stringBuffer.append(TEXT_44);
     stringBuffer.append(_ListOfString);
     stringBuffer.append(TEXT_45);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_46);
-    stringBuffer.append(genModel.getNonNLS());
+    }
     stringBuffer.append(TEXT_47);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_48);
-    stringBuffer.append(genPackage.getPrefix());
-    stringBuffer.append(TEXT_49);
     stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_49);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_50);
-    if (!genPackage.hasDocumentRoot()) {
+    stringBuffer.append(genPackage.getPrefix());
     stringBuffer.append(TEXT_51);
-    } else {
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_52);
+    if (!genPackage.hasDocumentRoot()) {
+    stringBuffer.append(TEXT_53);
+    } else {
+    stringBuffer.append(TEXT_54);
     }
     stringBuffer.append(TEXT_44);
     stringBuffer.append(_CollectionOfString);
-    stringBuffer.append(TEXT_53);
+    stringBuffer.append(TEXT_55);
     stringBuffer.append(_ArrayListOfString);
-    stringBuffer.append(TEXT_54);
+    stringBuffer.append(TEXT_56);
     if (!genPackage.hasDocumentRoot()) {
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_55);
-    stringBuffer.append(genPackage.getUncapPackageName());
-    stringBuffer.append(TEXT_56);
-    } else {
     stringBuffer.append(TEXT_57);
     stringBuffer.append(genPackage.getUncapPackageName());
     stringBuffer.append(TEXT_58);
-    }
+    } else {
     stringBuffer.append(TEXT_59);
-    if (!genModel.useGenerics()) {
+    stringBuffer.append(genPackage.getUncapPackageName());
     stringBuffer.append(TEXT_60);
     }
     stringBuffer.append(TEXT_61);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_62);
+    }
+    stringBuffer.append(TEXT_63);
     } else {
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_62);
+    stringBuffer.append(TEXT_64);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_63);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData"));
-    stringBuffer.append(TEXT_64);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData"));
     stringBuffer.append(TEXT_65);
-    stringBuffer.append(genPackage.getUncapPackageName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData"));
     stringBuffer.append(TEXT_66);
-    } else {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData"));
     stringBuffer.append(TEXT_67);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData"));
-    stringBuffer.append(TEXT_64);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData"));
-    stringBuffer.append(TEXT_65);
     stringBuffer.append(genPackage.getUncapPackageName());
     stringBuffer.append(TEXT_68);
-    }
-    stringBuffer.append(TEXT_59);
-    if (!genModel.useGenerics()) {
+    } else {
     stringBuffer.append(TEXT_69);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_70);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_71);
-    }
-    stringBuffer.append(TEXT_72);
-    }
-    stringBuffer.append(TEXT_73);
-    if (!genModel.isRichClientPlatform() && genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {
-    stringBuffer.append(TEXT_74);
-    } else {
-    stringBuffer.append(TEXT_75);
-    }
-    stringBuffer.append(TEXT_76);
-    if (!genPackage.hasDocumentRoot()) {
-    stringBuffer.append(TEXT_77);
-    stringBuffer.append(genPackage.getUncapPackageName());
-    stringBuffer.append(TEXT_78);
-    stringBuffer.append(genPackage.getUncapFactoryName());
-    stringBuffer.append(TEXT_79);
-    } else {
-    stringBuffer.append(TEXT_80);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData"));
-    stringBuffer.append(TEXT_65);
+    stringBuffer.append(TEXT_66);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData"));
+    stringBuffer.append(TEXT_67);
     stringBuffer.append(genPackage.getUncapPackageName());
-    stringBuffer.append(TEXT_81);
-    stringBuffer.append(genPackage.getUncapFactoryName());
-    stringBuffer.append(TEXT_82);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));
-    stringBuffer.append(TEXT_83);
+    stringBuffer.append(TEXT_70);
     }
+    stringBuffer.append(TEXT_61);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_71);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_72);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+    stringBuffer.append(TEXT_73);
+    }
+    stringBuffer.append(TEXT_74);
+    }
+    stringBuffer.append(TEXT_75);
+    if (!genModel.isRichClientPlatform() && genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {
+    stringBuffer.append(TEXT_76);
+    } else {
+    stringBuffer.append(TEXT_77);
+    }
+    stringBuffer.append(TEXT_78);
+    if (!genPackage.hasDocumentRoot()) {
+    stringBuffer.append(TEXT_79);
+    stringBuffer.append(genPackage.getUncapPackageName());
+    stringBuffer.append(TEXT_80);
+    stringBuffer.append(genPackage.getUncapFactoryName());
+    stringBuffer.append(TEXT_81);
+    } else {
+    stringBuffer.append(TEXT_82);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData"));
+    stringBuffer.append(TEXT_67);
+    stringBuffer.append(genPackage.getUncapPackageName());
+    stringBuffer.append(TEXT_83);
+    stringBuffer.append(genPackage.getUncapFactoryName());
     stringBuffer.append(TEXT_84);
-    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));
     stringBuffer.append(TEXT_85);
     }
     stringBuffer.append(TEXT_86);
-    if (genModel.isRichClientPlatform()) {
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_46);
+    }
     stringBuffer.append(TEXT_87);
-    stringBuffer.append(genModel.getImportedName("java.io.File"));
+    if (genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_88);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(genModel.getImportedName("java.io.File"));
     stringBuffer.append(TEXT_89);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_90);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_91);
+    stringBuffer.append(TEXT_90);
     stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_91);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_92);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.operation.IRunnableWithProgress"));
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("org.eclipse.jface.operation.IRunnableWithProgress"));
     stringBuffer.append(TEXT_94);
-    } else {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.operation.IRunnableWithProgress"));
     stringBuffer.append(TEXT_95);
-    if (genModel.useClassOverrideAnnotation()) {
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_96);
     }
     stringBuffer.append(TEXT_97);
-    }
+    } else {
     stringBuffer.append(TEXT_98);
-    if (!genModel.isRichClientPlatform()) {
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_99);
     }
     stringBuffer.append(TEXT_100);
-    if (genPackage.isContentType()) {
+    }
     stringBuffer.append(TEXT_101);
-    stringBuffer.append(genPackage.getImportedPackageInterfaceName());
+    if (!genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_102);
     }
     stringBuffer.append(TEXT_103);
-    stringBuffer.append(_MapOfObjectToObject);
+    if (genPackage.isContentType()) {
     stringBuffer.append(TEXT_104);
-    stringBuffer.append(_HashMapOfObjectToObject);
-    stringBuffer.append(TEXT_105);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_106);
-    if (genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_107);
-    stringBuffer.append(genModel.getImportedName(genModel.getQualifiedEditorAdvisorClassName()));
-    stringBuffer.append(TEXT_108);
-    } else {
-    stringBuffer.append(TEXT_109);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IWorkbenchWindow"));
-    stringBuffer.append(TEXT_110);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IWorkbenchPage"));
-    stringBuffer.append(TEXT_111);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IWorkbenchPart"));
-    stringBuffer.append(TEXT_112);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelection"));
-    stringBuffer.append(TEXT_113);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.StructuredSelection"));
-    stringBuffer.append(TEXT_114);
-    if (!genPackage.isContentType()) {
-    stringBuffer.append(TEXT_115);
-    } else {
-    stringBuffer.append(TEXT_116);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.core.runtime.Platform"));
-    stringBuffer.append(TEXT_117);
     stringBuffer.append(genPackage.getImportedPackageInterfaceName());
+    stringBuffer.append(TEXT_105);
+    }
+    stringBuffer.append(TEXT_106);
+    stringBuffer.append(_MapOfObjectToObject);
+    stringBuffer.append(TEXT_107);
+    stringBuffer.append(_HashMapOfObjectToObject);
+    stringBuffer.append(TEXT_108);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_109);
+    if (genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_110);
+    stringBuffer.append(genModel.getImportedName(genModel.getQualifiedEditorAdvisorClassName()));
+    stringBuffer.append(TEXT_111);
+    } else {
+    stringBuffer.append(TEXT_112);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IWorkbenchWindow"));
+    stringBuffer.append(TEXT_113);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IWorkbenchPage"));
+    stringBuffer.append(TEXT_114);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.IWorkbenchPart"));
+    stringBuffer.append(TEXT_115);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.ISelection"));
+    stringBuffer.append(TEXT_116);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.jface.viewers.StructuredSelection"));
+    stringBuffer.append(TEXT_117);
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_118);
     }
     stringBuffer.append(TEXT_119);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.PartInitException"));
+    if (!genPackage.isContentType()) {
     stringBuffer.append(TEXT_120);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    } else {
     stringBuffer.append(TEXT_121);
-    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.core.runtime.Platform"));
     stringBuffer.append(TEXT_122);
-    }
+    stringBuffer.append(genPackage.getImportedPackageInterfaceName());
     stringBuffer.append(TEXT_123);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_124);
-    if (!genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_125);
-    stringBuffer.append(genPackage.getModelWizardClassName());
-    stringBuffer.append(TEXT_126);
-    stringBuffer.append(genPackage.getModelWizardClassName());
-    stringBuffer.append(TEXT_127);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_128);
     }
+    stringBuffer.append(TEXT_124);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ui.PartInitException"));
+    stringBuffer.append(TEXT_125);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_126);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_127);
+    }
+    stringBuffer.append(TEXT_128);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_129);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.core.runtime.Path"));
+    if (!genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_130);
+    stringBuffer.append(genPackage.getModelWizardClassName());
+    stringBuffer.append(TEXT_131);
+    stringBuffer.append(genPackage.getModelWizardClassName());
+    stringBuffer.append(TEXT_132);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_133);
+    }
+    stringBuffer.append(TEXT_134);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.core.runtime.Path"));
+    stringBuffer.append(TEXT_135);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
-    stringBuffer.append(TEXT_131);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_132);
-    }
-    stringBuffer.append(TEXT_133);
-    stringBuffer.append(genPackage.getModelWizardClassName());
-    stringBuffer.append(TEXT_134);
-    if (genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_135);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.widgets.Text"));
     stringBuffer.append(TEXT_136);
-    }
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_137);
-    stringBuffer.append(_ListOfString);
+    }
     stringBuffer.append(TEXT_138);
     stringBuffer.append(genPackage.getModelWizardClassName());
     stringBuffer.append(TEXT_139);
     if (genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_140);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_141);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_142);
     stringBuffer.append(genModel.getImportedName("org.eclipse.swt.widgets.Text"));
+    stringBuffer.append(TEXT_141);
+    }
+    stringBuffer.append(TEXT_142);
+    stringBuffer.append(_ListOfString);
     stringBuffer.append(TEXT_143);
-    if (!genModel.isRichAjaxPlatform()) {
+    stringBuffer.append(genPackage.getModelWizardClassName());
     stringBuffer.append(TEXT_144);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.widgets.Button"));
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_133);
+    }
     stringBuffer.append(TEXT_145);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.widgets.Button"));
+    if (genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_146);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_147);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_148);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.events.SelectionAdapter"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.widgets.Text"));
     stringBuffer.append(TEXT_149);
-    if (genModel.useClassOverrideAnnotation()) {
+    if (!genModel.isRichAjaxPlatform()) {
     stringBuffer.append(TEXT_150);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.widgets.Button"));
     stringBuffer.append(TEXT_151);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.events.SelectionEvent"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.widgets.Button"));
     stringBuffer.append(TEXT_152);
-    if (!genModel.useGenerics()) {
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_153);
-    }
-    stringBuffer.append(genPackage.getImportedEditorClassName());
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_154);
-    stringBuffer.append(genPackage.getImportedEditorClassName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.events.SelectionAdapter"));
     stringBuffer.append(TEXT_155);
-    stringBuffer.append(genModel.getImportedName(genModel.getQualifiedEditorAdvisorClassName()));
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_156);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.SWT"));
+    }
     stringBuffer.append(TEXT_157);
-    }
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.events.SelectionEvent"));
     stringBuffer.append(TEXT_158);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_159);
-    stringBuffer.append(genModel.getNonNLS());
+    }
+    stringBuffer.append(genPackage.getImportedEditorClassName());
     stringBuffer.append(TEXT_160);
-    if (genModel.useGenerics()) {
+    stringBuffer.append(genPackage.getImportedEditorClassName());
     stringBuffer.append(TEXT_161);
-    } else {
+    stringBuffer.append(genModel.getImportedName(genModel.getQualifiedEditorAdvisorClassName()));
     stringBuffer.append(TEXT_162);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.swt.SWT"));
     stringBuffer.append(TEXT_163);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_164);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_165);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_166);
-    } else {
-    stringBuffer.append(TEXT_167);
     }
+    }
+    stringBuffer.append(TEXT_164);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_165);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_166);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_167);
+    } else {
     stringBuffer.append(TEXT_168);
-    if (genModel.isRichClientPlatform()) {
+    }
     stringBuffer.append(TEXT_169);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_170);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_171);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_172);
+    } else {
+    stringBuffer.append(TEXT_173);
+    }
+    stringBuffer.append(TEXT_174);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_96);
+    }
+    stringBuffer.append(TEXT_175);
+    if (genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_176);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
-    stringBuffer.append(TEXT_170);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_171);
-    }
-    stringBuffer.append(TEXT_172);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_128);
-    }
-    stringBuffer.append(TEXT_173);
-    if (!genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_174);
-    } else {
-    stringBuffer.append(TEXT_175);
-    }
-    stringBuffer.append(TEXT_176);
-    if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_177);
-    } else {
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_178);
     }
-    stringBuffer.append(TEXT_59);
-    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_179);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_133);
     }
     stringBuffer.append(TEXT_180);
-    if (genModel.isRichClientPlatform()) {
+    if (!genModel.isRichClientPlatform()) {
     stringBuffer.append(TEXT_181);
+    } else {
+    stringBuffer.append(TEXT_182);
+    }
+    stringBuffer.append(TEXT_183);
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_184);
+    } else {
+    stringBuffer.append(TEXT_185);
+    }
+    stringBuffer.append(TEXT_61);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_186);
+    }
+    stringBuffer.append(TEXT_187);
+    if (genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_188);
     }
     { String type = genPackage.hasDocumentRoot() ? "feature" : "type"; String prefix = genPackage.hasDocumentRoot() ? "_UI_DocumentRoot_" : "_UI_";
-    stringBuffer.append(TEXT_182);
-    stringBuffer.append(type);
-    stringBuffer.append(TEXT_183);
-    stringBuffer.append(type);
-    stringBuffer.append(TEXT_184);
-    stringBuffer.append(genPackage.getEditPluginClassName());
-    stringBuffer.append(TEXT_185);
-    stringBuffer.append(prefix);
-    stringBuffer.append(TEXT_186);
-    stringBuffer.append(type);
-    stringBuffer.append(TEXT_187);
-    stringBuffer.append(type);
-    stringBuffer.append(TEXT_188);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(genModel.getNonNLS(2));
     stringBuffer.append(TEXT_189);
-    stringBuffer.append(genModel.getImportedName(genModel.getQualifiedEditorPluginClassName()));
+    stringBuffer.append(type);
     stringBuffer.append(TEXT_190);
     stringBuffer.append(type);
     stringBuffer.append(TEXT_191);
-    }
+    stringBuffer.append(genPackage.getEditPluginClassName());
     stringBuffer.append(TEXT_192);
-    stringBuffer.append(_CollectionOfString);
+    stringBuffer.append(prefix);
     stringBuffer.append(TEXT_193);
-    stringBuffer.append(_ArrayListOfString);
+    stringBuffer.append(type);
     stringBuffer.append(TEXT_194);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(type);
     stringBuffer.append(TEXT_195);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_196);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_128);
-    }
-    stringBuffer.append(TEXT_197);
-    if (!genModel.isRichClientPlatform()) {
-    stringBuffer.append(TEXT_198);
-    stringBuffer.append(genPackage.getModelWizardClassName());
-    stringBuffer.append(TEXT_199);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_200);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_28);
-    stringBuffer.append(genPackage.getModelWizardClassName());
-    stringBuffer.append(TEXT_201);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_202);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_28);
-    stringBuffer.append(genPackage.getModelWizardClassName());
-    stringBuffer.append(TEXT_203);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_204);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
-    stringBuffer.append(TEXT_28);
-    stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_205);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_206);
-    }
-    stringBuffer.append(TEXT_207);
-    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
+    stringBuffer.append(TEXT_196);
+    stringBuffer.append(genModel.getImportedName(genModel.getQualifiedEditorPluginClassName()));
+    stringBuffer.append(TEXT_197);
+    stringBuffer.append(type);
+    stringBuffer.append(TEXT_198);
+    }
+    stringBuffer.append(TEXT_199);
+    stringBuffer.append(_CollectionOfString);
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(_ArrayListOfString);
+    stringBuffer.append(TEXT_201);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_202);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_203);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_133);
+    }
+    stringBuffer.append(TEXT_204);
+    if (!genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_205);
+    stringBuffer.append(genPackage.getModelWizardClassName());
+    stringBuffer.append(TEXT_206);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_207);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_28);
+    stringBuffer.append(genPackage.getModelWizardClassName());
     stringBuffer.append(TEXT_208);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_209);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_28);
+    stringBuffer.append(genPackage.getModelWizardClassName());
+    stringBuffer.append(TEXT_210);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_211);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_28);
     stringBuffer.append(genPackage.getEditorClassName());
-    stringBuffer.append(TEXT_209);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_210);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_206);
-    }
-    stringBuffer.append(TEXT_211);
-    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_212);
-    stringBuffer.append(genModel.getNonNLS());
+    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_213);
     }
     stringBuffer.append(TEXT_214);
-    stringBuffer.append(genPackage.getModelWizardClassName());
-    stringBuffer.append(TEXT_215);
     stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_216);
+    stringBuffer.append(genModel.getNonNLS(2));
+    stringBuffer.append(TEXT_215);
     stringBuffer.append(genPackage.getImportedEditorPluginClassName());
     stringBuffer.append(TEXT_28);
-    stringBuffer.append(genPackage.getModelWizardClassName());
-    stringBuffer.append(TEXT_201);
+    stringBuffer.append(genPackage.getEditorClassName());
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_217);
-    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_213);
+    }
     stringBuffer.append(TEXT_218);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_219);
-    if (genModel.isRichClientPlatform()) {
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_220);
-    } else {
-    stringBuffer.append(TEXT_221);
     }
+    stringBuffer.append(TEXT_221);
+    stringBuffer.append(genPackage.getModelWizardClassName());
     stringBuffer.append(TEXT_222);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_223);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_28);
+    stringBuffer.append(genPackage.getModelWizardClassName());
+    stringBuffer.append(TEXT_208);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_224);
+    stringBuffer.append(genPackage.getImportedEditorPluginClassName());
+    stringBuffer.append(TEXT_225);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_226);
+    if (genModel.isRichClientPlatform()) {
+    stringBuffer.append(TEXT_227);
+    } else {
+    stringBuffer.append(TEXT_228);
+    }
+    stringBuffer.append(TEXT_229);
     genModel.emitSortedImports();
     stringBuffer.append(TEXT_25);
     return stringBuffer.toString();
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/Class.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/Class.java
index ebe7178..c91100c 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/Class.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/Class.java
@@ -734,7 +734,7 @@
 
     final GenClass genClass = (GenClass)((Object[])argument)[0]; final GenPackage genPackage = genClass.getGenPackage(); final GenModel genModel=genPackage.getGenModel();
     final boolean isJDK50 = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50;
-    final boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); final boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);
+    final boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); final boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]); final boolean useInterfaceOverrideAnnotation = genModel.useInterfaceOverrideAnnotation() && !(isInterface && isImplementation);
     final boolean isGWT = genModel.getRuntimePlatform() == GenRuntimePlatform.GWT;
     final String publicStaticFinalFlag = isImplementation ? "public static final " : "";
     final String singleWildcard = isJDK50 ? "<?>" : "";
@@ -1405,7 +1405,7 @@
     if (isJDK50 && genFeature.hasAPIDeprecatedTag()) {
     stringBuffer.append(TEXT_55);
     }
-    if (classExtendsAllGenFeatures.contains(genFeature)) {
+    if (useInterfaceOverrideAnnotation || classExtendsAllGenFeatures.contains(genFeature)) {
     stringBuffer.append(TEXT_124);
     }
     stringBuffer.append(TEXT_131);
@@ -1461,7 +1461,7 @@
     if (isJDK50 && genFeature.hasAPIDeprecatedTag()) {
     stringBuffer.append(TEXT_55);
     }
-    if (classExtendsAllGenFeatures.contains(genFeature)) {
+    if (useInterfaceOverrideAnnotation || classExtendsAllGenFeatures.contains(genFeature)) {
     stringBuffer.append(TEXT_124);
     }
     stringBuffer.append(TEXT_131);
@@ -1598,6 +1598,9 @@
     if (isJDK50 && genFeature.hasAPIDeprecatedTag()) {
     stringBuffer.append(TEXT_55);
     }
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(arrayElementType);
     stringBuffer.append(TEXT_58);
@@ -1652,6 +1655,9 @@
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_165);
     } else {
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_164);
@@ -1679,6 +1685,9 @@
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_169);
     } else {
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_170);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_171);
@@ -1713,6 +1722,9 @@
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_179);
     } else {
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_159);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_93);
@@ -1746,6 +1758,9 @@
     stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_184);
     } else {
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_159);
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_183);
@@ -1907,6 +1922,9 @@
     if (genModel.useGenerics() && ((genFeature.isContainer() || genFeature.isResolveProxies()) && !genFeature.isListType() && genFeature.isUncheckedCast(genClass) || genFeature.isListType() && !genFeature.isFeatureMapType() && (genModel.isReflectiveDelegation() || genModel.isVirtualDelegation() || (genModel.isDynamicDelegation() && !genFeature.isVolatile())) || genFeature.isListDataType() && genFeature.hasDelegateFeature() || genFeature.isListType() && genFeature.hasSettingDelegate())) {
     stringBuffer.append(TEXT_73);
     }
+    if (useInterfaceOverrideAnnotation && !genClass.hasCollidingGetAccessorOperation(genFeature) && !genFeature.isSuppressedGetVisibility()) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_70);
@@ -2675,6 +2693,9 @@
     stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_341);
     } else { GenOperation setAccessorOperation = genClass.getSetAccessorOperation(genFeature);
+    if (useInterfaceOverrideAnnotation && !genClass.hasCollidingSetAccessorOperation(genFeature) && !genFeature.isSuppressedSetVisibility()) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_159);
     stringBuffer.append(genFeature.getAccessorName());
     if (genClass.hasCollidingSetAccessorOperation(genFeature)) {
@@ -3402,6 +3423,9 @@
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_163);
     } else {
+    if (useInterfaceOverrideAnnotation && !genClass.hasCollidingUnsetAccessorOperation(genFeature) && !genFeature.isSuppressedUnsetVisibility()) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_419);
     stringBuffer.append(genFeature.getAccessorName());
     if (genClass.hasCollidingUnsetAccessorOperation(genFeature)) {
@@ -3816,6 +3840,9 @@
     stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_163);
     } else {
+    if (useInterfaceOverrideAnnotation && !genClass.hasCollidingIsSetAccessorOperation(genFeature) && !genFeature.isSuppressedIsSetVisibility()) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_442);
     stringBuffer.append(genFeature.getAccessorName());
     if (genClass.hasCollidingIsSetAccessorOperation(genFeature)) {
@@ -4045,6 +4072,9 @@
     if (genModel.useGenerics() && !genOperation.hasBody() && !genOperation.isInvariant() && genOperation.hasInvocationDelegate() && genOperation.isUncheckedCast(genClass)) {
     stringBuffer.append(TEXT_73);
     }
+    if (useInterfaceOverrideAnnotation && !genOperation.isSuppressedVisibility()) {
+    stringBuffer.append(TEXT_124);
+    }
     stringBuffer.append(TEXT_131);
     stringBuffer.append(genOperation.getTypeParameters(genClass));
     stringBuffer.append(genOperation.getImportedType(genClass));
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/EnumClass.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/EnumClass.java
index 7069142..b1d8c22 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/EnumClass.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/EnumClass.java
@@ -105,18 +105,19 @@
   protected final String TEXT_87 = NL + "\t\tthis.value = value;" + NL + "\t\tthis.name = name;" + NL + "\t\tthis.literal = literal;";
   protected final String TEXT_88 = NL + "\t\tsuper(value, name, literal);";
   protected final String TEXT_89 = NL + "\t}" + NL;
-  protected final String TEXT_90 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getValue()" + NL + "\t{" + NL + "\t  return value;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_91 = " getName()" + NL + "\t{" + NL + "\t  return name;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_92 = " getLiteral()" + NL + "\t{" + NL + "\t  return literal;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Returns the literal value of the enumerator, which is its string representation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_93 = NL + "\t@Override";
-  protected final String TEXT_94 = NL + "\tpublic ";
-  protected final String TEXT_95 = " toString()" + NL + "\t{" + NL + "\t\treturn literal;" + NL + "\t}" + NL + "\t";
-  protected final String TEXT_96 = NL + "} //";
-  protected final String TEXT_97 = NL + "/**" + NL + " * A private implementation interface used to hide the inheritance from Enumerator." + NL + " * <!-- begin-user-doc -->" + NL + " * <!-- end-user-doc -->" + NL + " * @generated" + NL + " */" + NL + "interface Internal";
-  protected final String TEXT_98 = " extends org.eclipse.emf.common.util.Enumerator" + NL + "{" + NL + "\t// Empty " + NL + "}";
-  protected final String TEXT_99 = NL + "/**" + NL + " * A private implementation class to construct the instances." + NL + " * <!-- begin-user-doc -->" + NL + " * <!-- end-user-doc -->" + NL + " * @generated" + NL + " */" + NL + "class Internal";
-  protected final String TEXT_100 = " extends org.eclipse.emf.common.util.AbstractEnumerator" + NL + "{" + NL + "\t/**" + NL + "\t * Only this class can construct instances." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected Internal";
-  protected final String TEXT_101 = " literal)" + NL + "\t{" + NL + "\t\tsuper(value, name, literal);" + NL + "\t}" + NL + "}";
+  protected final String TEXT_90 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_91 = NL + "\t@Override";
+  protected final String TEXT_92 = NL + "\tpublic int getValue()" + NL + "\t{" + NL + "\t  return value;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_93 = NL + "\tpublic ";
+  protected final String TEXT_94 = " getName()" + NL + "\t{" + NL + "\t  return name;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_95 = " getLiteral()" + NL + "\t{" + NL + "\t  return literal;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Returns the literal value of the enumerator, which is its string representation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_96 = " toString()" + NL + "\t{" + NL + "\t\treturn literal;" + NL + "\t}" + NL + "\t";
+  protected final String TEXT_97 = NL + "} //";
+  protected final String TEXT_98 = NL + "/**" + NL + " * A private implementation interface used to hide the inheritance from Enumerator." + NL + " * <!-- begin-user-doc -->" + NL + " * <!-- end-user-doc -->" + NL + " * @generated" + NL + " */" + NL + "interface Internal";
+  protected final String TEXT_99 = " extends org.eclipse.emf.common.util.Enumerator" + NL + "{" + NL + "\t// Empty " + NL + "}";
+  protected final String TEXT_100 = NL + "/**" + NL + " * A private implementation class to construct the instances." + NL + " * <!-- begin-user-doc -->" + NL + " * <!-- end-user-doc -->" + NL + " * @generated" + NL + " */" + NL + "class Internal";
+  protected final String TEXT_101 = " extends org.eclipse.emf.common.util.AbstractEnumerator" + NL + "{" + NL + "\t/**" + NL + "\t * Only this class can construct instances." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected Internal";
+  protected final String TEXT_102 = " literal)" + NL + "\t{" + NL + "\t\tsuper(value, name, literal);" + NL + "\t}" + NL + "}";
 
   public String generate(Object argument)
   {
@@ -382,35 +383,47 @@
     stringBuffer.append(TEXT_89);
     if (isEnum) {
     stringBuffer.append(TEXT_90);
-    stringBuffer.append(genModel.getImportedName("java.lang.String"));
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_91);
-    stringBuffer.append(genModel.getImportedName("java.lang.String"));
-    stringBuffer.append(TEXT_92);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_93);
     }
+    stringBuffer.append(TEXT_92);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_91);
+    }
+    stringBuffer.append(TEXT_93);
+    stringBuffer.append(genModel.getImportedName("java.lang.String"));
     stringBuffer.append(TEXT_94);
+    if (genModel.useInterfaceOverrideAnnotation()) {
+    stringBuffer.append(TEXT_91);
+    }
+    stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("java.lang.String"));
     stringBuffer.append(TEXT_95);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_91);
     }
+    stringBuffer.append(TEXT_93);
+    stringBuffer.append(genModel.getImportedName("java.lang.String"));
     stringBuffer.append(TEXT_96);
+    }
+    stringBuffer.append(TEXT_97);
     stringBuffer.append(genEnum.getName());
     if (genModel.isSuppressEMFMetaData()&& !genModel.isSuppressInterfaces() ) {
     stringBuffer.append(TEXT_40);
     if (isEnum) {
-    stringBuffer.append(TEXT_97);
-    stringBuffer.append(genEnum.getName());
     stringBuffer.append(TEXT_98);
-    } else {
-    stringBuffer.append(TEXT_99);
     stringBuffer.append(genEnum.getName());
+    stringBuffer.append(TEXT_99);
+    } else {
     stringBuffer.append(TEXT_100);
     stringBuffer.append(genEnum.getName());
+    stringBuffer.append(TEXT_101);
+    stringBuffer.append(genEnum.getName());
     stringBuffer.append(TEXT_84);
     stringBuffer.append(genModel.getImportedName("java.lang.String"));
     stringBuffer.append(TEXT_85);
     stringBuffer.append(genModel.getImportedName("java.lang.String"));
-    stringBuffer.append(TEXT_101);
+    stringBuffer.append(TEXT_102);
     }
     }
     genModel.emitSortedImports();
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass.java
index 680cb63..14b0783 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass.java
@@ -230,12 +230,11 @@
   protected final String TEXT_212 = " instanceValue);" + NL;
   protected final String TEXT_213 = NL + "\t/**" + NL + "\t * Returns the package supported by this factory." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the package supported by this factory." + NL + "\t * @generated" + NL + "\t */" + NL + "\t";
   protected final String TEXT_214 = " get";
-  protected final String TEXT_215 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_216 = "()" + NL + "\t{" + NL + "\t\treturn (";
-  protected final String TEXT_217 = ")getEPackage();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @deprecated" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_218 = " getPackage()" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_219 = ".eINSTANCE;" + NL + "\t}" + NL;
-  protected final String TEXT_220 = NL + "} //";
+  protected final String TEXT_215 = "()" + NL + "\t{" + NL + "\t\treturn (";
+  protected final String TEXT_216 = ")getEPackage();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @deprecated" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_217 = " getPackage()" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_218 = ".eINSTANCE;" + NL + "\t}" + NL;
+  protected final String TEXT_219 = NL + "} //";
 
   public String generate(Object argument)
   {
@@ -254,7 +253,7 @@
 
     GenPackage genPackage = (GenPackage)((Object[])argument)[0]; GenModel genModel=genPackage.getGenModel(); /* Trick to import java.util.* without warnings */Iterator.class.getName();
     final boolean isJDK50 = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50;
-    boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);
+    boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]); boolean useInterfaceOverrideAnnotation = genModel.useInterfaceOverrideAnnotation() && !(isInterface && isImplementation);
     String publicStaticFinalFlag = isImplementation ? "public static final " : "";
     stringBuffer.append(TEXT_1);
     stringBuffer.append(TEXT_2);
@@ -460,6 +459,9 @@
     if (isJDK50 && genClass.hasAPIDeprecatedTag()) {
     stringBuffer.append(TEXT_63);
     }
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_40);
+    }
     stringBuffer.append(TEXT_64);
     stringBuffer.append(genClass.getTypeParameters());
     stringBuffer.append(genClass.getImportedInterfaceName());
@@ -513,6 +515,9 @@
     if (isJDK50 && genDataType.hasAPIDeprecatedTag()) {
     stringBuffer.append(TEXT_63);
     }
+    if (genPackage.isDataTypeConverters() && useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_40);
+    }
     stringBuffer.append(TEXT_64);
     stringBuffer.append(genDataType.getImportedParameterizedInstanceClassName());
     stringBuffer.append(TEXT_65);
@@ -922,6 +927,9 @@
     if (isJDK50 && genDataType.hasAPIDeprecatedTag()) {
     stringBuffer.append(TEXT_63);
     }
+    if (genPackage.isDataTypeConverters() && useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_40);
+    }
     stringBuffer.append(TEXT_153);
     stringBuffer.append(genDataType.getName());
     stringBuffer.append(TEXT_78);
@@ -1389,23 +1397,27 @@
     stringBuffer.append(genPackage.getBasicPackageName());
     stringBuffer.append(TEXT_206);
     } else if (isImplementation) {
-    stringBuffer.append(TEXT_215);
+    stringBuffer.append(TEXT_49);
+    if (useInterfaceOverrideAnnotation && !genModel.isSuppressEMFMetaData()) {
+    stringBuffer.append(TEXT_40);
+    }
+    stringBuffer.append(TEXT_64);
     stringBuffer.append(genPackage.getImportedPackageInterfaceName());
     stringBuffer.append(TEXT_214);
     stringBuffer.append(genPackage.getBasicPackageName());
-    stringBuffer.append(TEXT_216);
+    stringBuffer.append(TEXT_215);
     stringBuffer.append(genPackage.getImportedPackageInterfaceName());
-    stringBuffer.append(TEXT_217);
+    stringBuffer.append(TEXT_216);
     if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_63);
     }
     stringBuffer.append(TEXT_28);
     stringBuffer.append(genPackage.getImportedPackageInterfaceName());
-    stringBuffer.append(TEXT_218);
+    stringBuffer.append(TEXT_217);
     stringBuffer.append(genPackage.getImportedPackageInterfaceName());
-    stringBuffer.append(TEXT_219);
+    stringBuffer.append(TEXT_218);
     }
-    stringBuffer.append(TEXT_220);
+    stringBuffer.append(TEXT_219);
     stringBuffer.append(isInterface ? genPackage.getFactoryInterfaceName() : genPackage.getFactoryClassName());
     genModel.emitSortedImports();
     stringBuffer.append(TEXT_7);
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/PackageClass.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/PackageClass.java
index 3db98ef..57df680 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/PackageClass.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/PackageClass.java
@@ -133,226 +133,228 @@
   protected final String TEXT_112 = NL + "\t\t// Register package validator" + NL + "\t\t";
   protected final String TEXT_113 = ".Registry.INSTANCE.put" + NL + "\t\t\t(the";
   protected final String TEXT_114 = "," + NL + "\t\t\t new ";
-  protected final String TEXT_115 = ".Descriptor()" + NL + "\t\t\t {" + NL + "\t\t\t\t public ";
-  protected final String TEXT_116 = " getEValidator()" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t return ";
-  protected final String TEXT_117 = ".INSTANCE;" + NL + "\t\t\t\t }" + NL + "\t\t\t });" + NL;
-  protected final String TEXT_118 = NL + "\t\t// Mark meta-data to indicate it can't be changed" + NL + "\t\tthe";
-  protected final String TEXT_119 = ".freeze();" + NL;
-  protected final String TEXT_120 = NL + "\t\t// Update the registry and return the package" + NL + "\t\t";
-  protected final String TEXT_121 = ".Registry.INSTANCE.put(";
-  protected final String TEXT_122 = ".eNS_URI, the";
-  protected final String TEXT_123 = ");" + NL + "\t\treturn the";
-  protected final String TEXT_124 = ";" + NL + "\t}";
-  protected final String TEXT_125 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static void initializeRegistryHelpers()" + NL + "\t{";
-  protected final String TEXT_126 = ".register" + NL + "\t\t\t(";
-  protected final String TEXT_127 = ".class," + NL + "\t\t\t new ";
-  protected final String TEXT_128 = ".Helper()" + NL + "\t\t\t {" + NL + "\t\t\t\t public boolean isInstance(Object instance)" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t return instance instanceof ";
-  protected final String TEXT_129 = ";" + NL + "\t\t\t\t }" + NL + "" + NL + "\t\t\t\t public Object newArrayInstance(int size)" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t return new ";
-  protected final String TEXT_130 = "[size];" + NL + "\t\t\t\t }" + NL + "\t\t\t });";
-  protected final String TEXT_131 = ";" + NL + "\t\t\t\t }" + NL + "" + NL + "\t\t\t\t public Object newArrayInstance(int size)" + NL + "\t\t\t\t {";
-  protected final String TEXT_132 = NL + "\t\t\t\t\t return new ";
-  protected final String TEXT_133 = "[size]";
-  protected final String TEXT_134 = "[size];";
-  protected final String TEXT_135 = NL + "\t\t\t\t }" + NL + "\t\t});";
-  protected final String TEXT_136 = NL + "\t}" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class WhiteList implements ";
-  protected final String TEXT_137 = ", EBasicWhiteList" + NL + "\t{";
-  protected final String TEXT_138 = NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected ";
-  protected final String TEXT_139 = NL + "\t}";
-  protected final String TEXT_140 = NL + "\t * Returns the meta object for class '{@link ";
-  protected final String TEXT_141 = "</em>}'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the meta object for class '<em>";
-  protected final String TEXT_142 = "</em>'." + NL + "\t * @see ";
-  protected final String TEXT_143 = NL + "\t * @model ";
-  protected final String TEXT_144 = NL + "\t *        ";
-  protected final String TEXT_145 = NL + "\t * @model";
-  protected final String TEXT_146 = NL + "\t * Returns the meta object for enum '{@link ";
-  protected final String TEXT_147 = "</em>}'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the meta object for enum '<em>";
-  protected final String TEXT_148 = NL + "\t * Returns the meta object for data type '<em>";
-  protected final String TEXT_149 = "</em>'.";
-  protected final String TEXT_150 = NL + "\t * Returns the meta object for data type '{@link ";
-  protected final String TEXT_151 = "</em>}'.";
-  protected final String TEXT_152 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
-  protected final String TEXT_153 = NL + "     * <!-- begin-model-doc -->" + NL + "     * ";
-  protected final String TEXT_154 = NL + "     * <!-- end-model-doc -->";
-  protected final String TEXT_155 = NL + "\t * @return the meta object for data type '<em>";
-  protected final String TEXT_156 = NL + "\tpublic ";
-  protected final String TEXT_157 = " get";
-  protected final String TEXT_158 = "()" + NL + "\t{";
-  protected final String TEXT_159 = NL + "\t\tif (";
-  protected final String TEXT_160 = " == null)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_161 = ".eNS_URI).getEClassifiers().get(";
-  protected final String TEXT_162 = ");" + NL + "\t\t}";
-  protected final String TEXT_163 = NL + "\t\treturn ";
-  protected final String TEXT_164 = ";" + NL + "\t}" + NL;
-  protected final String TEXT_165 = "();" + NL;
-  protected final String TEXT_166 = NL + "\t/**" + NL + "\t * Returns the meta object for the ";
-  protected final String TEXT_167 = " '{@link ";
-  protected final String TEXT_168 = "#";
-  protected final String TEXT_169 = "</em>}'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the meta object for the ";
-  protected final String TEXT_170 = " '<em>";
-  protected final String TEXT_171 = NL + "\t * @see #get";
-  protected final String TEXT_172 = NL + "\t\treturn (";
-  protected final String TEXT_173 = ".getEStructuralFeatures().get(";
-  protected final String TEXT_174 = ");";
-  protected final String TEXT_175 = NL + "        return (";
-  protected final String TEXT_176 = ")get";
-  protected final String TEXT_177 = "().getEStructuralFeatures().get(";
-  protected final String TEXT_178 = "();";
-  protected final String TEXT_179 = NL + "\t/**" + NL + "\t * Returns the meta object for the '{@link ";
-  protected final String TEXT_180 = "(";
-  protected final String TEXT_181 = ") <em>";
-  protected final String TEXT_182 = "</em>}' operation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the meta object for the '<em>";
-  protected final String TEXT_183 = "</em>' operation." + NL + "\t * @see ";
-  protected final String TEXT_184 = ".getEOperations().get(";
-  protected final String TEXT_185 = NL + "        return get";
-  protected final String TEXT_186 = "().getEOperations().get(";
-  protected final String TEXT_187 = NL + "\t/**" + NL + "\t * Returns the factory that creates the instances of the model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the factory that creates the instances of the model." + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_188 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_189 = "()" + NL + "\t{" + NL + "\t\treturn (";
-  protected final String TEXT_190 = ")getEFactoryInstance();" + NL + "\t}";
-  protected final String TEXT_191 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isCreated = false;" + NL + "" + NL + "\t/**" + NL + "\t * Creates the meta-model objects for the package.  This method is" + NL + "\t * guarded to have no affect on any invocation but its first." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_192 = NL + "\t@SuppressWarnings(\"deprecation\")";
-  protected final String TEXT_193 = NL + "\tpublic void createPackageContents()" + NL + "\t{" + NL + "\t\tif (isCreated) return;" + NL + "\t\tisCreated = true;";
-  protected final String TEXT_194 = NL + NL + "\t\t// Create classes and their features";
-  protected final String TEXT_195 = " = create";
-  protected final String TEXT_196 = NL + "\t\tcreate";
-  protected final String TEXT_197 = ", ";
-  protected final String TEXT_198 = NL + "\t\tcreateEOperation(";
-  protected final String TEXT_199 = NL + NL + "\t\t// Create enums";
-  protected final String TEXT_200 = " = createEEnum(";
-  protected final String TEXT_201 = NL + NL + "\t\t// Create data types";
-  protected final String TEXT_202 = " = createEDataType(";
-  protected final String TEXT_203 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isInitialized = false;" + NL;
-  protected final String TEXT_204 = NL + "\t/**" + NL + "\t * Complete the initialization of the package and its meta-model.  This" + NL + "\t * method is guarded to have no affect on any invocation but its first." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_205 = NL + "\tpublic void initializePackageContents()" + NL + "\t{" + NL + "\t\tif (isInitialized) return;" + NL + "\t\tisInitialized = true;" + NL + "" + NL + "\t\t// Initialize package" + NL + "\t\tsetName(eNAME);" + NL + "\t\tsetNsPrefix(eNS_PREFIX);" + NL + "\t\tsetNsURI(eNS_URI);";
-  protected final String TEXT_206 = NL + NL + "\t\t// Obtain other dependent packages";
-  protected final String TEXT_207 = ".eNS_URI);";
-  protected final String TEXT_208 = NL + NL + "\t\t// Add subpackages";
-  protected final String TEXT_209 = NL + "\t\tgetESubpackages().add(";
-  protected final String TEXT_210 = NL + NL + "\t\t// Create type parameters";
-  protected final String TEXT_211 = "_";
-  protected final String TEXT_212 = " = addETypeParameter(";
-  protected final String TEXT_213 = ", \"";
-  protected final String TEXT_214 = "\");";
-  protected final String TEXT_215 = NL + "\t\taddETypeParameter(";
-  protected final String TEXT_216 = NL + NL + "\t\t// Set bounds for type parameters";
-  protected final String TEXT_217 = "g";
-  protected final String TEXT_218 = " = createEGenericType(";
-  protected final String TEXT_219 = NL + "\t\tg";
-  protected final String TEXT_220 = ".";
-  protected final String TEXT_221 = "(g";
-  protected final String TEXT_222 = ".getEBounds().add(g1);";
-  protected final String TEXT_223 = NL + NL + "\t\t// Add supertypes to classes";
-  protected final String TEXT_224 = ".getESuperTypes().add(";
-  protected final String TEXT_225 = ".get";
-  protected final String TEXT_226 = "());";
-  protected final String TEXT_227 = ".getEGenericSuperTypes().add(g1);";
-  protected final String TEXT_228 = NL + NL + "\t\t// Initialize classes";
-  protected final String TEXT_229 = ", features, and operations; add parameters";
-  protected final String TEXT_230 = " and features; add operations and parameters";
-  protected final String TEXT_231 = NL + "\t\tinitEClass(";
-  protected final String TEXT_232 = "null";
-  protected final String TEXT_233 = ".class";
-  protected final String TEXT_234 = "\", ";
-  protected final String TEXT_235 = "\"";
-  protected final String TEXT_236 = NL + "\t\tinitEReference(get";
-  protected final String TEXT_237 = "(), ";
-  protected final String TEXT_238 = "g1";
-  protected final String TEXT_239 = NL + "\t\tget";
-  protected final String TEXT_240 = "().getEKeys().add(";
-  protected final String TEXT_241 = NL + "\t\tinitEAttribute(get";
-  protected final String TEXT_242 = "initEOperation(get";
-  protected final String TEXT_243 = "addEOperation(";
-  protected final String TEXT_244 = "(), \"";
-  protected final String TEXT_245 = ", null, \"";
-  protected final String TEXT_246 = "addETypeParameter(op, \"";
-  protected final String TEXT_247 = NL + "\t\tt";
-  protected final String TEXT_248 = NL + "\t\taddEParameter(op, ";
-  protected final String TEXT_249 = NL + "\t\taddEException(op, g";
-  protected final String TEXT_250 = NL + "\t\taddEException(op, ";
-  protected final String TEXT_251 = NL + "\t\tinitEOperation(op, g1);";
-  protected final String TEXT_252 = NL + NL + "\t\t// Initialize enums and add enum literals";
-  protected final String TEXT_253 = NL + "\t\tinitEEnum(";
-  protected final String TEXT_254 = ".class, \"";
-  protected final String TEXT_255 = NL + "\t\taddEEnumLiteral(";
-  protected final String TEXT_256 = NL + NL + "\t\t// Initialize data types";
-  protected final String TEXT_257 = NL + "\t\tinitEDataType(";
-  protected final String TEXT_258 = NL + NL + "\t\t// Create resource" + NL + "\t\tcreateResource(";
-  protected final String TEXT_259 = NL + NL + "\t\t// Create annotations";
-  protected final String TEXT_260 = NL + "\t\t// ";
-  protected final String TEXT_261 = "Annotations();";
-  protected final String TEXT_262 = NL + "\t}" + NL;
-  protected final String TEXT_263 = NL + "\t/**" + NL + "\t * Initializes the annotations for <b>";
-  protected final String TEXT_264 = "</b>." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void create";
-  protected final String TEXT_265 = "Annotations()" + NL + "\t{" + NL + "\t\tString source = ";
-  protected final String TEXT_266 = "null;";
-  protected final String TEXT_267 = NL + "\t\taddAnnotation" + NL + "\t\t  (";
-  protected final String TEXT_268 = "," + NL + "\t\t   source," + NL + "\t\t   new String[]" + NL + "\t\t   {";
-  protected final String TEXT_269 = NL + "\t\t\t   ";
-  protected final String TEXT_270 = NL + "\t\t   }";
-  protected final String TEXT_271 = ",";
-  protected final String TEXT_272 = NL + "\t\t   new ";
-  protected final String TEXT_273 = "[]" + NL + "\t\t   {";
-  protected final String TEXT_274 = NL + "\t\t\t ";
-  protected final String TEXT_275 = ".createURI(";
-  protected final String TEXT_276 = "eNS_URI).appendFragment(\"";
-  protected final String TEXT_277 = "\")";
-  protected final String TEXT_278 = NL + "\t\t   });";
-  protected final String TEXT_279 = "," + NL + "\t\t   ";
-  protected final String TEXT_280 = "new boolean[] { ";
-  protected final String TEXT_281 = " }";
-  protected final String TEXT_282 = "null,";
-  protected final String TEXT_283 = "\",";
-  protected final String TEXT_284 = NL + "\t\t   new String[]" + NL + "\t\t   {";
-  protected final String TEXT_285 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isLoaded = false;" + NL + "" + NL + "\t/**" + NL + "\t * Laods the package and any sub-packages from their serialized form." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void loadPackage()" + NL + "\t{" + NL + "\t\tif (isLoaded) return;" + NL + "\t\tisLoaded = true;" + NL + "" + NL + "\t\t";
-  protected final String TEXT_286 = " url = getClass().getResource(packageFilename);" + NL + "\t\tif (url == null)" + NL + "\t\t{" + NL + "\t\t\tthrow new RuntimeException(\"Missing serialized package: \" + packageFilename);";
-  protected final String TEXT_287 = NL + "\t\t}" + NL + "\t\t";
-  protected final String TEXT_288 = " uri = ";
-  protected final String TEXT_289 = ".createURI(url.toString());" + NL + "\t\t";
-  protected final String TEXT_290 = " resource = new ";
-  protected final String TEXT_291 = "().createResource(uri);" + NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\tresource.load(null);" + NL + "\t\t}" + NL + "\t\tcatch (";
-  protected final String TEXT_292 = " exception)" + NL + "\t\t{" + NL + "\t\t\tthrow new ";
-  protected final String TEXT_293 = "(exception);" + NL + "\t\t}" + NL + "\t\tinitializeFromLoadedEPackage(this, (";
-  protected final String TEXT_294 = ")resource.getContents().get(0));" + NL + "\t\tcreateResource(eNS_URI);" + NL + "\t}" + NL;
-  protected final String TEXT_295 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isFixed = false;" + NL + "" + NL + "\t/**" + NL + "\t * Fixes up the loaded package, to make it appear as if it had been programmatically built." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void fixPackageContents()" + NL + "\t{" + NL + "\t\tif (isFixed) return;" + NL + "\t\tisFixed = true;" + NL + "\t\tfixEClassifiers();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Sets the instance class on the given classifier." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_296 = NL + "\t@Override";
-  protected final String TEXT_297 = NL + "\tprotected void fixInstanceClass(";
-  protected final String TEXT_298 = " eClassifier)" + NL + "\t{" + NL + "\t\tif (eClassifier.getInstanceClassName() == null)" + NL + "\t\t{";
-  protected final String TEXT_299 = NL + "\t\t\teClassifier.setInstanceClassName(\"";
-  protected final String TEXT_300 = ".\" + eClassifier.getName());";
-  protected final String TEXT_301 = NL + "\t\t\tsetGeneratedClassName(eClassifier);";
-  protected final String TEXT_302 = NL + "\t\t\tswitch (eClassifier.getClassifierID())" + NL + "\t\t\t{";
-  protected final String TEXT_303 = NL + "\t\t\t\tcase ";
-  protected final String TEXT_304 = ":";
-  protected final String TEXT_305 = NL + "\t\t\t\t{" + NL + "\t\t\t\t\tbreak;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tdefault:" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\teClassifier.setInstanceClassName(\"";
-  protected final String TEXT_306 = NL + "\t\t\t\t\tsetGeneratedClassName(eClassifier);" + NL + "\t\t\t\t\tbreak;" + NL + "\t\t\t\t}" + NL + "\t\t\t}";
-  protected final String TEXT_307 = NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_308 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_309 = " addEOperation(";
-  protected final String TEXT_310 = " owner, ";
-  protected final String TEXT_311 = " type, String name, int lowerBound, int upperBound, boolean isUnique, boolean isOrdered)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_312 = " o = addEOperation(owner, type, name, lowerBound, upperBound);" + NL + "\t\to.setUnique(isUnique);" + NL + "\t\to.setOrdered(isOrdered);" + NL + "\t\treturn o;" + NL + "\t}" + NL;
-  protected final String TEXT_313 = " addEParameter(";
-  protected final String TEXT_314 = " p = ecoreFactory.createEParameter();" + NL + "\t\tp.setEType(type);" + NL + "\t\tp.setName(name);" + NL + "\t\tp.setLowerBound(lowerBound);" + NL + "\t\tp.setUpperBound(upperBound);" + NL + "\t\tp.setUnique(isUnique);" + NL + "\t\tp.setOrdered(isOrdered);" + NL + "\t\towner.getEParameters().add(p);" + NL + "\t\treturn p;" + NL + "\t}" + NL;
-  protected final String TEXT_315 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * Defines literals for the meta objects that represent" + NL + "\t * <ul>" + NL + "\t *   <li>each class,</li>" + NL + "\t *   <li>each feature of each class,</li>";
-  protected final String TEXT_316 = NL + "\t *   <li>each operation of each class,</li>";
-  protected final String TEXT_317 = NL + "\t *   <li>each enum,</li>" + NL + "\t *   <li>and each data type</li>" + NL + "\t * </ul>" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\t";
-  protected final String TEXT_318 = "public ";
-  protected final String TEXT_319 = "interface Literals" + NL + "\t{";
-  protected final String TEXT_320 = NL + "\t\t/**";
-  protected final String TEXT_321 = NL + "\t\t * The meta object literal for the '{@link ";
-  protected final String TEXT_322 = "</em>}' class." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @see ";
-  protected final String TEXT_323 = "</em>}' enum." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @see ";
-  protected final String TEXT_324 = NL + "\t\t * The meta object literal for the '<em>";
-  protected final String TEXT_325 = "</em>' data type." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->";
-  protected final String TEXT_326 = NL + "\t\t * @see ";
-  protected final String TEXT_327 = NL + "\t\t * ";
-  protected final String TEXT_328 = NL + "\t\t * @generated" + NL + "\t\t */";
-  protected final String TEXT_329 = NL + "\t\t@Deprecated";
-  protected final String TEXT_330 = " = eINSTANCE.get";
-  protected final String TEXT_331 = NL + "\t\t/**" + NL + "\t\t * The meta object literal for the '<em><b>";
-  protected final String TEXT_332 = " feature." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->";
-  protected final String TEXT_333 = "</b></em>' operation." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->";
-  protected final String TEXT_334 = NL + "} //";
+  protected final String TEXT_115 = ".Descriptor()" + NL + "\t\t\t {";
+  protected final String TEXT_116 = NL + "\t\t\t\t @Override";
+  protected final String TEXT_117 = NL + "\t\t\t\t public ";
+  protected final String TEXT_118 = " getEValidator()" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t return ";
+  protected final String TEXT_119 = ".INSTANCE;" + NL + "\t\t\t\t }" + NL + "\t\t\t });" + NL;
+  protected final String TEXT_120 = NL + "\t\t// Mark meta-data to indicate it can't be changed" + NL + "\t\tthe";
+  protected final String TEXT_121 = ".freeze();" + NL;
+  protected final String TEXT_122 = NL + "\t\t// Update the registry and return the package" + NL + "\t\t";
+  protected final String TEXT_123 = ".Registry.INSTANCE.put(";
+  protected final String TEXT_124 = ".eNS_URI, the";
+  protected final String TEXT_125 = ");" + NL + "\t\treturn the";
+  protected final String TEXT_126 = ";" + NL + "\t}";
+  protected final String TEXT_127 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static void initializeRegistryHelpers()" + NL + "\t{";
+  protected final String TEXT_128 = ".register" + NL + "\t\t\t(";
+  protected final String TEXT_129 = ".class," + NL + "\t\t\t new ";
+  protected final String TEXT_130 = ".Helper()" + NL + "\t\t\t {" + NL + "\t\t\t\t public boolean isInstance(Object instance)" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t return instance instanceof ";
+  protected final String TEXT_131 = ";" + NL + "\t\t\t\t }" + NL + "" + NL + "\t\t\t\t public Object newArrayInstance(int size)" + NL + "\t\t\t\t {" + NL + "\t\t\t\t\t return new ";
+  protected final String TEXT_132 = "[size];" + NL + "\t\t\t\t }" + NL + "\t\t\t });";
+  protected final String TEXT_133 = ";" + NL + "\t\t\t\t }" + NL + "" + NL + "\t\t\t\t public Object newArrayInstance(int size)" + NL + "\t\t\t\t {";
+  protected final String TEXT_134 = NL + "\t\t\t\t\t return new ";
+  protected final String TEXT_135 = "[size]";
+  protected final String TEXT_136 = "[size];";
+  protected final String TEXT_137 = NL + "\t\t\t\t }" + NL + "\t\t});";
+  protected final String TEXT_138 = NL + "\t}" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class WhiteList implements ";
+  protected final String TEXT_139 = ", EBasicWhiteList" + NL + "\t{";
+  protected final String TEXT_140 = NL + "\t\t/**" + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected ";
+  protected final String TEXT_141 = NL + "\t}";
+  protected final String TEXT_142 = NL + "\t * Returns the meta object for class '{@link ";
+  protected final String TEXT_143 = "</em>}'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the meta object for class '<em>";
+  protected final String TEXT_144 = "</em>'." + NL + "\t * @see ";
+  protected final String TEXT_145 = NL + "\t * @model ";
+  protected final String TEXT_146 = NL + "\t *        ";
+  protected final String TEXT_147 = NL + "\t * @model";
+  protected final String TEXT_148 = NL + "\t * Returns the meta object for enum '{@link ";
+  protected final String TEXT_149 = "</em>}'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the meta object for enum '<em>";
+  protected final String TEXT_150 = NL + "\t * Returns the meta object for data type '<em>";
+  protected final String TEXT_151 = "</em>'.";
+  protected final String TEXT_152 = NL + "\t * Returns the meta object for data type '{@link ";
+  protected final String TEXT_153 = "</em>}'.";
+  protected final String TEXT_154 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
+  protected final String TEXT_155 = NL + "     * <!-- begin-model-doc -->" + NL + "     * ";
+  protected final String TEXT_156 = NL + "     * <!-- end-model-doc -->";
+  protected final String TEXT_157 = NL + "\t * @return the meta object for data type '<em>";
+  protected final String TEXT_158 = NL + "\t@Override";
+  protected final String TEXT_159 = NL + "\tpublic ";
+  protected final String TEXT_160 = " get";
+  protected final String TEXT_161 = "()" + NL + "\t{";
+  protected final String TEXT_162 = NL + "\t\tif (";
+  protected final String TEXT_163 = " == null)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_164 = ".eNS_URI).getEClassifiers().get(";
+  protected final String TEXT_165 = ");" + NL + "\t\t}";
+  protected final String TEXT_166 = NL + "\t\treturn ";
+  protected final String TEXT_167 = ";" + NL + "\t}" + NL;
+  protected final String TEXT_168 = "();" + NL;
+  protected final String TEXT_169 = NL + "\t/**" + NL + "\t * Returns the meta object for the ";
+  protected final String TEXT_170 = " '{@link ";
+  protected final String TEXT_171 = "#";
+  protected final String TEXT_172 = "</em>}'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the meta object for the ";
+  protected final String TEXT_173 = " '<em>";
+  protected final String TEXT_174 = NL + "\t * @see #get";
+  protected final String TEXT_175 = NL + "\t\treturn (";
+  protected final String TEXT_176 = ".getEStructuralFeatures().get(";
+  protected final String TEXT_177 = ");";
+  protected final String TEXT_178 = NL + "        return (";
+  protected final String TEXT_179 = ")get";
+  protected final String TEXT_180 = "().getEStructuralFeatures().get(";
+  protected final String TEXT_181 = "();";
+  protected final String TEXT_182 = NL + "\t/**" + NL + "\t * Returns the meta object for the '{@link ";
+  protected final String TEXT_183 = "(";
+  protected final String TEXT_184 = ") <em>";
+  protected final String TEXT_185 = "</em>}' operation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the meta object for the '<em>";
+  protected final String TEXT_186 = "</em>' operation." + NL + "\t * @see ";
+  protected final String TEXT_187 = ".getEOperations().get(";
+  protected final String TEXT_188 = NL + "        return get";
+  protected final String TEXT_189 = "().getEOperations().get(";
+  protected final String TEXT_190 = NL + "\t/**" + NL + "\t * Returns the factory that creates the instances of the model." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return the factory that creates the instances of the model." + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_191 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_192 = "()" + NL + "\t{" + NL + "\t\treturn (";
+  protected final String TEXT_193 = ")getEFactoryInstance();" + NL + "\t}";
+  protected final String TEXT_194 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isCreated = false;" + NL + "" + NL + "\t/**" + NL + "\t * Creates the meta-model objects for the package.  This method is" + NL + "\t * guarded to have no affect on any invocation but its first." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_195 = NL + "\t@SuppressWarnings(\"deprecation\")";
+  protected final String TEXT_196 = NL + "\tpublic void createPackageContents()" + NL + "\t{" + NL + "\t\tif (isCreated) return;" + NL + "\t\tisCreated = true;";
+  protected final String TEXT_197 = NL + NL + "\t\t// Create classes and their features";
+  protected final String TEXT_198 = " = create";
+  protected final String TEXT_199 = NL + "\t\tcreate";
+  protected final String TEXT_200 = ", ";
+  protected final String TEXT_201 = NL + "\t\tcreateEOperation(";
+  protected final String TEXT_202 = NL + NL + "\t\t// Create enums";
+  protected final String TEXT_203 = " = createEEnum(";
+  protected final String TEXT_204 = NL + NL + "\t\t// Create data types";
+  protected final String TEXT_205 = " = createEDataType(";
+  protected final String TEXT_206 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isInitialized = false;" + NL;
+  protected final String TEXT_207 = NL + "\t/**" + NL + "\t * Complete the initialization of the package and its meta-model.  This" + NL + "\t * method is guarded to have no affect on any invocation but its first." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_208 = NL + "\tpublic void initializePackageContents()" + NL + "\t{" + NL + "\t\tif (isInitialized) return;" + NL + "\t\tisInitialized = true;" + NL + "" + NL + "\t\t// Initialize package" + NL + "\t\tsetName(eNAME);" + NL + "\t\tsetNsPrefix(eNS_PREFIX);" + NL + "\t\tsetNsURI(eNS_URI);";
+  protected final String TEXT_209 = NL + NL + "\t\t// Obtain other dependent packages";
+  protected final String TEXT_210 = ".eNS_URI);";
+  protected final String TEXT_211 = NL + NL + "\t\t// Add subpackages";
+  protected final String TEXT_212 = NL + "\t\tgetESubpackages().add(";
+  protected final String TEXT_213 = NL + NL + "\t\t// Create type parameters";
+  protected final String TEXT_214 = "_";
+  protected final String TEXT_215 = " = addETypeParameter(";
+  protected final String TEXT_216 = ", \"";
+  protected final String TEXT_217 = "\");";
+  protected final String TEXT_218 = NL + "\t\taddETypeParameter(";
+  protected final String TEXT_219 = NL + NL + "\t\t// Set bounds for type parameters";
+  protected final String TEXT_220 = "g";
+  protected final String TEXT_221 = " = createEGenericType(";
+  protected final String TEXT_222 = NL + "\t\tg";
+  protected final String TEXT_223 = ".";
+  protected final String TEXT_224 = "(g";
+  protected final String TEXT_225 = ".getEBounds().add(g1);";
+  protected final String TEXT_226 = NL + NL + "\t\t// Add supertypes to classes";
+  protected final String TEXT_227 = ".getESuperTypes().add(";
+  protected final String TEXT_228 = ".get";
+  protected final String TEXT_229 = "());";
+  protected final String TEXT_230 = ".getEGenericSuperTypes().add(g1);";
+  protected final String TEXT_231 = NL + NL + "\t\t// Initialize classes";
+  protected final String TEXT_232 = ", features, and operations; add parameters";
+  protected final String TEXT_233 = " and features; add operations and parameters";
+  protected final String TEXT_234 = NL + "\t\tinitEClass(";
+  protected final String TEXT_235 = "null";
+  protected final String TEXT_236 = ".class";
+  protected final String TEXT_237 = "\", ";
+  protected final String TEXT_238 = "\"";
+  protected final String TEXT_239 = NL + "\t\tinitEReference(get";
+  protected final String TEXT_240 = "(), ";
+  protected final String TEXT_241 = "g1";
+  protected final String TEXT_242 = NL + "\t\tget";
+  protected final String TEXT_243 = "().getEKeys().add(";
+  protected final String TEXT_244 = NL + "\t\tinitEAttribute(get";
+  protected final String TEXT_245 = "initEOperation(get";
+  protected final String TEXT_246 = "addEOperation(";
+  protected final String TEXT_247 = "(), \"";
+  protected final String TEXT_248 = ", null, \"";
+  protected final String TEXT_249 = "addETypeParameter(op, \"";
+  protected final String TEXT_250 = NL + "\t\tt";
+  protected final String TEXT_251 = NL + "\t\taddEParameter(op, ";
+  protected final String TEXT_252 = NL + "\t\taddEException(op, g";
+  protected final String TEXT_253 = NL + "\t\taddEException(op, ";
+  protected final String TEXT_254 = NL + "\t\tinitEOperation(op, g1);";
+  protected final String TEXT_255 = NL + NL + "\t\t// Initialize enums and add enum literals";
+  protected final String TEXT_256 = NL + "\t\tinitEEnum(";
+  protected final String TEXT_257 = ".class, \"";
+  protected final String TEXT_258 = NL + "\t\taddEEnumLiteral(";
+  protected final String TEXT_259 = NL + NL + "\t\t// Initialize data types";
+  protected final String TEXT_260 = NL + "\t\tinitEDataType(";
+  protected final String TEXT_261 = NL + NL + "\t\t// Create resource" + NL + "\t\tcreateResource(";
+  protected final String TEXT_262 = NL + NL + "\t\t// Create annotations";
+  protected final String TEXT_263 = NL + "\t\t// ";
+  protected final String TEXT_264 = "Annotations();";
+  protected final String TEXT_265 = NL + "\t}" + NL;
+  protected final String TEXT_266 = NL + "\t/**" + NL + "\t * Initializes the annotations for <b>";
+  protected final String TEXT_267 = "</b>." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void create";
+  protected final String TEXT_268 = "Annotations()" + NL + "\t{" + NL + "\t\tString source = ";
+  protected final String TEXT_269 = "null;";
+  protected final String TEXT_270 = NL + "\t\taddAnnotation" + NL + "\t\t  (";
+  protected final String TEXT_271 = "," + NL + "\t\t   source," + NL + "\t\t   new String[]" + NL + "\t\t   {";
+  protected final String TEXT_272 = NL + "\t\t\t   ";
+  protected final String TEXT_273 = NL + "\t\t   }";
+  protected final String TEXT_274 = ",";
+  protected final String TEXT_275 = NL + "\t\t   new ";
+  protected final String TEXT_276 = "[]" + NL + "\t\t   {";
+  protected final String TEXT_277 = NL + "\t\t\t ";
+  protected final String TEXT_278 = ".createURI(";
+  protected final String TEXT_279 = "eNS_URI).appendFragment(\"";
+  protected final String TEXT_280 = "\")";
+  protected final String TEXT_281 = NL + "\t\t   });";
+  protected final String TEXT_282 = "," + NL + "\t\t   ";
+  protected final String TEXT_283 = "new boolean[] { ";
+  protected final String TEXT_284 = " }";
+  protected final String TEXT_285 = "null,";
+  protected final String TEXT_286 = "\",";
+  protected final String TEXT_287 = NL + "\t\t   new String[]" + NL + "\t\t   {";
+  protected final String TEXT_288 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isLoaded = false;" + NL + "" + NL + "\t/**" + NL + "\t * Laods the package and any sub-packages from their serialized form." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void loadPackage()" + NL + "\t{" + NL + "\t\tif (isLoaded) return;" + NL + "\t\tisLoaded = true;" + NL + "" + NL + "\t\t";
+  protected final String TEXT_289 = " url = getClass().getResource(packageFilename);" + NL + "\t\tif (url == null)" + NL + "\t\t{" + NL + "\t\t\tthrow new RuntimeException(\"Missing serialized package: \" + packageFilename);";
+  protected final String TEXT_290 = NL + "\t\t}" + NL + "\t\t";
+  protected final String TEXT_291 = " uri = ";
+  protected final String TEXT_292 = ".createURI(url.toString());" + NL + "\t\t";
+  protected final String TEXT_293 = " resource = new ";
+  protected final String TEXT_294 = "().createResource(uri);" + NL + "\t\ttry" + NL + "\t\t{" + NL + "\t\t\tresource.load(null);" + NL + "\t\t}" + NL + "\t\tcatch (";
+  protected final String TEXT_295 = " exception)" + NL + "\t\t{" + NL + "\t\t\tthrow new ";
+  protected final String TEXT_296 = "(exception);" + NL + "\t\t}" + NL + "\t\tinitializeFromLoadedEPackage(this, (";
+  protected final String TEXT_297 = ")resource.getContents().get(0));" + NL + "\t\tcreateResource(eNS_URI);" + NL + "\t}" + NL;
+  protected final String TEXT_298 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isFixed = false;" + NL + "" + NL + "\t/**" + NL + "\t * Fixes up the loaded package, to make it appear as if it had been programmatically built." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void fixPackageContents()" + NL + "\t{" + NL + "\t\tif (isFixed) return;" + NL + "\t\tisFixed = true;" + NL + "\t\tfixEClassifiers();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Sets the instance class on the given classifier." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_299 = NL + "\tprotected void fixInstanceClass(";
+  protected final String TEXT_300 = " eClassifier)" + NL + "\t{" + NL + "\t\tif (eClassifier.getInstanceClassName() == null)" + NL + "\t\t{";
+  protected final String TEXT_301 = NL + "\t\t\teClassifier.setInstanceClassName(\"";
+  protected final String TEXT_302 = ".\" + eClassifier.getName());";
+  protected final String TEXT_303 = NL + "\t\t\tsetGeneratedClassName(eClassifier);";
+  protected final String TEXT_304 = NL + "\t\t\tswitch (eClassifier.getClassifierID())" + NL + "\t\t\t{";
+  protected final String TEXT_305 = NL + "\t\t\t\tcase ";
+  protected final String TEXT_306 = ":";
+  protected final String TEXT_307 = NL + "\t\t\t\t{" + NL + "\t\t\t\t\tbreak;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tdefault:" + NL + "\t\t\t\t{" + NL + "\t\t\t\t\teClassifier.setInstanceClassName(\"";
+  protected final String TEXT_308 = NL + "\t\t\t\t\tsetGeneratedClassName(eClassifier);" + NL + "\t\t\t\t\tbreak;" + NL + "\t\t\t\t}" + NL + "\t\t\t}";
+  protected final String TEXT_309 = NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_310 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_311 = " addEOperation(";
+  protected final String TEXT_312 = " owner, ";
+  protected final String TEXT_313 = " type, String name, int lowerBound, int upperBound, boolean isUnique, boolean isOrdered)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_314 = " o = addEOperation(owner, type, name, lowerBound, upperBound);" + NL + "\t\to.setUnique(isUnique);" + NL + "\t\to.setOrdered(isOrdered);" + NL + "\t\treturn o;" + NL + "\t}" + NL;
+  protected final String TEXT_315 = " addEParameter(";
+  protected final String TEXT_316 = " p = ecoreFactory.createEParameter();" + NL + "\t\tp.setEType(type);" + NL + "\t\tp.setName(name);" + NL + "\t\tp.setLowerBound(lowerBound);" + NL + "\t\tp.setUpperBound(upperBound);" + NL + "\t\tp.setUnique(isUnique);" + NL + "\t\tp.setOrdered(isOrdered);" + NL + "\t\towner.getEParameters().add(p);" + NL + "\t\treturn p;" + NL + "\t}" + NL;
+  protected final String TEXT_317 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * Defines literals for the meta objects that represent" + NL + "\t * <ul>" + NL + "\t *   <li>each class,</li>" + NL + "\t *   <li>each feature of each class,</li>";
+  protected final String TEXT_318 = NL + "\t *   <li>each operation of each class,</li>";
+  protected final String TEXT_319 = NL + "\t *   <li>each enum,</li>" + NL + "\t *   <li>and each data type</li>" + NL + "\t * </ul>" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\t";
+  protected final String TEXT_320 = "public ";
+  protected final String TEXT_321 = "interface Literals" + NL + "\t{";
+  protected final String TEXT_322 = NL + "\t\t/**";
+  protected final String TEXT_323 = NL + "\t\t * The meta object literal for the '{@link ";
+  protected final String TEXT_324 = "</em>}' class." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @see ";
+  protected final String TEXT_325 = "</em>}' enum." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->" + NL + "\t\t * @see ";
+  protected final String TEXT_326 = NL + "\t\t * The meta object literal for the '<em>";
+  protected final String TEXT_327 = "</em>' data type." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->";
+  protected final String TEXT_328 = NL + "\t\t * @see ";
+  protected final String TEXT_329 = NL + "\t\t * ";
+  protected final String TEXT_330 = NL + "\t\t * @generated" + NL + "\t\t */";
+  protected final String TEXT_331 = NL + "\t\t@Deprecated";
+  protected final String TEXT_332 = " = eINSTANCE.get";
+  protected final String TEXT_333 = NL + "\t\t/**" + NL + "\t\t * The meta object literal for the '<em><b>";
+  protected final String TEXT_334 = " feature." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->";
+  protected final String TEXT_335 = "</b></em>' operation." + NL + "\t\t * <!-- begin-user-doc -->" + NL + "\t\t * <!-- end-user-doc -->";
+  protected final String TEXT_336 = NL + "} //";
 
   public String generate(Object argument)
   {
@@ -371,7 +373,7 @@
 
     final GenPackage genPackage = (GenPackage)((Object[])argument)[0]; final GenModel genModel=genPackage.getGenModel();
     final boolean isJDK50 = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50;
-    boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);
+    boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);  boolean useInterfaceOverrideAnnotation = genModel.useInterfaceOverrideAnnotation() && !(isInterface && isImplementation);
     boolean packageNeedsSuppressDeprecation = isJDK50 && GenModelUtil.hasAPIDeprecatedTag(genPackage.getOrderedGenClassifiers()) && !genPackage.hasAPIDeprecatedTag();
     String publicStaticFinalFlag = isImplementation ? "public static final " : "";
     boolean needsAddEOperation = false;
@@ -810,75 +812,79 @@
     stringBuffer.append(TEXT_114);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EValidator"));
     stringBuffer.append(TEXT_115);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EValidator"));
+    if (genModel.useInterfaceOverrideAnnotation()) {
     stringBuffer.append(TEXT_116);
-    stringBuffer.append(genPackage.getImportedValidatorClassName());
-    stringBuffer.append(TEXT_117);
     }
-    if (!genPackage.isEcorePackage()) {
+    stringBuffer.append(TEXT_117);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EValidator"));
     stringBuffer.append(TEXT_118);
-    stringBuffer.append(genPackage.getBasicPackageName());
+    stringBuffer.append(genPackage.getImportedValidatorClassName());
     stringBuffer.append(TEXT_119);
     }
+    if (!genPackage.isEcorePackage()) {
     stringBuffer.append(TEXT_120);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EPackage"));
+    stringBuffer.append(genPackage.getBasicPackageName());
     stringBuffer.append(TEXT_121);
-    stringBuffer.append(genPackage.getImportedPackageInterfaceName());
+    }
     stringBuffer.append(TEXT_122);
-    stringBuffer.append(genPackage.getBasicPackageName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EPackage"));
     stringBuffer.append(TEXT_123);
-    stringBuffer.append(genPackage.getBasicPackageName());
+    stringBuffer.append(genPackage.getImportedPackageInterfaceName());
     stringBuffer.append(TEXT_124);
-    if (genModel.getRuntimePlatform() == GenRuntimePlatform.GWT) {
+    stringBuffer.append(genPackage.getBasicPackageName());
     stringBuffer.append(TEXT_125);
+    stringBuffer.append(genPackage.getBasicPackageName());
+    stringBuffer.append(TEXT_126);
+    if (genModel.getRuntimePlatform() == GenRuntimePlatform.GWT) {
+    stringBuffer.append(TEXT_127);
     Set<String> helpers = new HashSet<String>(); for (GenClassifier genClassifier : genPackage.getGenClassifiers()) {
     if (genClassifier instanceof GenClass) { GenClass genClass = (GenClass)genClassifier;
     if (!genClass.isDynamic()) { String theClass = genClass.isMapEntry() ? genClass.getImportedClassName() : genClass.getRawImportedInterfaceName(); if (helpers.add(theClass)) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Reflect"));
-    stringBuffer.append(TEXT_126);
-    stringBuffer.append(theClass);
-    stringBuffer.append(TEXT_127);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Reflect"));
     stringBuffer.append(TEXT_128);
-    stringBuffer.append(genClass.isMapEntry() ? genClass.getImportedClassName() : genClass.getRawImportedInterfaceName() + genClass.getInterfaceWildTypeArguments());
-    stringBuffer.append(TEXT_129);
     stringBuffer.append(theClass);
+    stringBuffer.append(TEXT_129);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Reflect"));
     stringBuffer.append(TEXT_130);
+    stringBuffer.append(genClass.isMapEntry() ? genClass.getImportedClassName() : genClass.getRawImportedInterfaceName() + genClass.getInterfaceWildTypeArguments());
+    stringBuffer.append(TEXT_131);
+    stringBuffer.append(theClass);
+    stringBuffer.append(TEXT_132);
     }}
     } else if (genClassifier instanceof GenDataType) { GenDataType genDataType = (GenDataType)genClassifier;
     if (!genDataType.isPrimitiveType() && !genDataType.isObjectType()) { String theClass = genDataType.getRawImportedInstanceClassName(); if (helpers.add(theClass)) { 
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Reflect"));
-    stringBuffer.append(TEXT_126);
-    stringBuffer.append(theClass);
-    stringBuffer.append(TEXT_127);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Reflect"));
     stringBuffer.append(TEXT_128);
     stringBuffer.append(theClass);
-    stringBuffer.append(TEXT_131);
-    if (genDataType.isArrayType()) { String componentType = theClass; String indices = ""; while(componentType.endsWith("[]")) { componentType = componentType.substring(0, componentType.length() - 2); indices += "[]";}
-    stringBuffer.append(TEXT_132);
-    stringBuffer.append(componentType);
+    stringBuffer.append(TEXT_129);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Reflect"));
+    stringBuffer.append(TEXT_130);
+    stringBuffer.append(theClass);
     stringBuffer.append(TEXT_133);
+    if (genDataType.isArrayType()) { String componentType = theClass; String indices = ""; while(componentType.endsWith("[]")) { componentType = componentType.substring(0, componentType.length() - 2); indices += "[]";}
+    stringBuffer.append(TEXT_134);
+    stringBuffer.append(componentType);
+    stringBuffer.append(TEXT_135);
     stringBuffer.append(indices);
     stringBuffer.append(TEXT_6);
     } else {
-    stringBuffer.append(TEXT_132);
-    stringBuffer.append(theClass);
     stringBuffer.append(TEXT_134);
+    stringBuffer.append(theClass);
+    stringBuffer.append(TEXT_136);
     }
-    stringBuffer.append(TEXT_135);
+    stringBuffer.append(TEXT_137);
     }}
     }
     }
-    stringBuffer.append(TEXT_136);
+    stringBuffer.append(TEXT_138);
     stringBuffer.append(genModel.getImportedName("com.google.gwt.user.client.rpc.IsSerializable"));
-    stringBuffer.append(TEXT_137);
+    stringBuffer.append(TEXT_139);
     for (GenClassifier genClassifier : genPackage.getGenClassifiers()) {
     if (genClassifier instanceof GenClass) { GenClass genClass = (GenClass)genClassifier;
     if (!genClass.isDynamic()) {
-    stringBuffer.append(TEXT_138);
+    stringBuffer.append(TEXT_140);
     stringBuffer.append(genClass.isMapEntry() ? genClass.getImportedClassName() : genClass.getImportedWildcardInstanceClassName());
     stringBuffer.append(TEXT_69);
     stringBuffer.append(genClass.getSafeUncapName());
@@ -886,7 +892,7 @@
     }
     } else if (genClassifier instanceof GenDataType) { GenDataType genDataType = (GenDataType)genClassifier;
     if (!genDataType.isObjectType() && genDataType.isSerializable()) {
-    stringBuffer.append(TEXT_138);
+    stringBuffer.append(TEXT_140);
     stringBuffer.append(genDataType.getImportedWildcardInstanceClassName());
     stringBuffer.append(TEXT_69);
     stringBuffer.append(genDataType.getSafeUncapName());
@@ -894,7 +900,7 @@
     }
     }
     }
-    stringBuffer.append(TEXT_139);
+    stringBuffer.append(TEXT_141);
     }
     stringBuffer.append(TEXT_7);
     }
@@ -905,65 +911,65 @@
     if (isInterface) {
     stringBuffer.append(TEXT_40);
     if (genClassifier instanceof GenClass) { GenClass genClass = (GenClass)genClassifier;
-    stringBuffer.append(TEXT_140);
+    stringBuffer.append(TEXT_142);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
     stringBuffer.append(TEXT_42);
     stringBuffer.append(genClass.getFormattedName());
-    stringBuffer.append(TEXT_141);
+    stringBuffer.append(TEXT_143);
     stringBuffer.append(genClass.getFormattedName());
-    stringBuffer.append(TEXT_142);
+    stringBuffer.append(TEXT_144);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
     if (!genModel.isSuppressEMFModelTags() && (genClass.isExternalInterface() || genClass.isDynamic())) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genClass.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;
-    stringBuffer.append(TEXT_143);
+    stringBuffer.append(TEXT_145);
     stringBuffer.append(modelInfo);
     } else {
-    stringBuffer.append(TEXT_144);
+    stringBuffer.append(TEXT_146);
     stringBuffer.append(modelInfo);
     }} if (first) {
-    stringBuffer.append(TEXT_145);
+    stringBuffer.append(TEXT_147);
     }}
     } else if (genClassifier instanceof GenEnum) { GenEnum genEnum = (GenEnum)genClassifier;
-    stringBuffer.append(TEXT_146);
+    stringBuffer.append(TEXT_148);
     stringBuffer.append(genEnum.getQualifiedName());
     stringBuffer.append(TEXT_42);
     stringBuffer.append(genEnum.getFormattedName());
-    stringBuffer.append(TEXT_147);
+    stringBuffer.append(TEXT_149);
     stringBuffer.append(genEnum.getFormattedName());
-    stringBuffer.append(TEXT_142);
+    stringBuffer.append(TEXT_144);
     stringBuffer.append(genEnum.getQualifiedName());
     } else if (genClassifier instanceof GenDataType) { GenDataType genDataType = (GenDataType)genClassifier;
     if (genDataType.isPrimitiveType() || genDataType.isArrayType()) {
-    stringBuffer.append(TEXT_148);
-    stringBuffer.append(genDataType.getFormattedName());
-    stringBuffer.append(TEXT_149);
-    } else {
     stringBuffer.append(TEXT_150);
+    stringBuffer.append(genDataType.getFormattedName());
+    stringBuffer.append(TEXT_151);
+    } else {
+    stringBuffer.append(TEXT_152);
     stringBuffer.append(genDataType.getRawInstanceClassName());
     stringBuffer.append(TEXT_42);
     stringBuffer.append(genDataType.getFormattedName());
-    stringBuffer.append(TEXT_151);
-    }
-    stringBuffer.append(TEXT_152);
-    if (genDataType.hasDocumentation()) {
     stringBuffer.append(TEXT_153);
-    stringBuffer.append(genDataType.getDocumentation(genModel.getIndentation(stringBuffer)));
-    stringBuffer.append(TEXT_154);
     }
+    stringBuffer.append(TEXT_154);
+    if (genDataType.hasDocumentation()) {
     stringBuffer.append(TEXT_155);
+    stringBuffer.append(genDataType.getDocumentation(genModel.getIndentation(stringBuffer)));
+    stringBuffer.append(TEXT_156);
+    }
+    stringBuffer.append(TEXT_157);
     stringBuffer.append(genDataType.getFormattedName());
-    stringBuffer.append(TEXT_149);
+    stringBuffer.append(TEXT_151);
     if (!genDataType.isPrimitiveType() && !genDataType.isArrayType()) {
     stringBuffer.append(TEXT_47);
     stringBuffer.append(genDataType.getRawInstanceClassName());
     }
     if (!genModel.isSuppressEMFModelTags()) {boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genDataType.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;
-    stringBuffer.append(TEXT_143);
+    stringBuffer.append(TEXT_145);
     stringBuffer.append(modelInfo);
     } else {
-    stringBuffer.append(TEXT_144);
+    stringBuffer.append(TEXT_146);
     stringBuffer.append(modelInfo);
     }} if (first) {
-    stringBuffer.append(TEXT_145);
+    stringBuffer.append(TEXT_147);
     }}
     }
     if ((genClassifier instanceof GenClass || genClassifier instanceof GenEnum) && genClassifier.hasAPITags()) {
@@ -983,15 +989,18 @@
     stringBuffer.append(TEXT_52);
     }
     if (isImplementation) {
-    stringBuffer.append(TEXT_156);
-    stringBuffer.append(genClassifier.getImportedMetaType());
-    stringBuffer.append(TEXT_157);
-    stringBuffer.append(genClassifier.getClassifierAccessorName());
+    if (useInterfaceOverrideAnnotation) {
     stringBuffer.append(TEXT_158);
-    if (genPackage.isLoadedInitialization()) {
+    }
     stringBuffer.append(TEXT_159);
-    stringBuffer.append(genClassifier.getClassifierInstanceName());
+    stringBuffer.append(genClassifier.getImportedMetaType());
     stringBuffer.append(TEXT_160);
+    stringBuffer.append(genClassifier.getClassifierAccessorName());
+    stringBuffer.append(TEXT_161);
+    if (genPackage.isLoadedInitialization()) {
+    stringBuffer.append(TEXT_162);
+    stringBuffer.append(genClassifier.getClassifierInstanceName());
+    stringBuffer.append(TEXT_163);
     stringBuffer.append(genClassifier.getClassifierInstanceName());
     stringBuffer.append(TEXT_99);
     stringBuffer.append(genClassifier.getImportedMetaType());
@@ -999,45 +1008,45 @@
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EPackage"));
     stringBuffer.append(TEXT_80);
     stringBuffer.append(genPackage.getImportedPackageInterfaceName());
-    stringBuffer.append(TEXT_161);
-    stringBuffer.append(genPackage.getLocalClassifierIndex(genClassifier));
-    stringBuffer.append(TEXT_162);
-    }
-    stringBuffer.append(TEXT_163);
-    stringBuffer.append(genClassifier.getClassifierInstanceName());
     stringBuffer.append(TEXT_164);
+    stringBuffer.append(genPackage.getLocalClassifierIndex(genClassifier));
+    stringBuffer.append(TEXT_165);
+    }
+    stringBuffer.append(TEXT_166);
+    stringBuffer.append(genClassifier.getClassifierInstanceName());
+    stringBuffer.append(TEXT_167);
     } else {
     stringBuffer.append(TEXT_53);
     stringBuffer.append(genClassifier.getImportedMetaType());
-    stringBuffer.append(TEXT_157);
+    stringBuffer.append(TEXT_160);
     stringBuffer.append(genClassifier.getClassifierAccessorName());
-    stringBuffer.append(TEXT_165);
+    stringBuffer.append(TEXT_168);
     }
     if (genClassifier instanceof GenClass) { GenClass genClass = (GenClass)genClassifier;
     for (GenFeature genFeature : genClass.getGenFeatures()) {
     if (isInterface) {
-    stringBuffer.append(TEXT_166);
+    stringBuffer.append(TEXT_169);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_167);
+    stringBuffer.append(TEXT_170);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
     if (!genClass.isMapEntry() && !genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_168);
+    stringBuffer.append(TEXT_171);
     stringBuffer.append(genFeature.getGetAccessor());
     }
     stringBuffer.append(TEXT_42);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_169);
+    stringBuffer.append(TEXT_172);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_170);
+    stringBuffer.append(TEXT_173);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_142);
+    stringBuffer.append(TEXT_144);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
     if (!genClass.isMapEntry() && !genFeature.isSuppressedGetVisibility()) {
-    stringBuffer.append(TEXT_168);
+    stringBuffer.append(TEXT_171);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_49);
     }
-    stringBuffer.append(TEXT_171);
+    stringBuffer.append(TEXT_174);
     stringBuffer.append(genClass.getClassifierAccessorName());
     stringBuffer.append(TEXT_49);
     if (genFeature.hasImplicitAPITags()) {
@@ -1057,56 +1066,59 @@
     stringBuffer.append(TEXT_52);
     }
     if (isImplementation) {
-    stringBuffer.append(TEXT_156);
-    stringBuffer.append(genFeature.getImportedMetaType());
-    stringBuffer.append(TEXT_157);
-    stringBuffer.append(genFeature.getFeatureAccessorName());
+    if (useInterfaceOverrideAnnotation) {
     stringBuffer.append(TEXT_158);
+    }
+    stringBuffer.append(TEXT_159);
+    stringBuffer.append(genFeature.getImportedMetaType());
+    stringBuffer.append(TEXT_160);
+    stringBuffer.append(genFeature.getFeatureAccessorName());
+    stringBuffer.append(TEXT_161);
     if (!genPackage.isLoadedInitialization()) {
-    stringBuffer.append(TEXT_172);
+    stringBuffer.append(TEXT_175);
     stringBuffer.append(genFeature.getImportedMetaType());
     stringBuffer.append(TEXT_79);
     stringBuffer.append(genClass.getClassifierInstanceName());
-    stringBuffer.append(TEXT_173);
-    stringBuffer.append(genClass.getLocalFeatureIndex(genFeature));
-    stringBuffer.append(TEXT_174);
-    } else {
-    stringBuffer.append(TEXT_175);
-    stringBuffer.append(genFeature.getImportedMetaType());
     stringBuffer.append(TEXT_176);
-    stringBuffer.append(genClassifier.getClassifierAccessorName());
-    stringBuffer.append(TEXT_177);
     stringBuffer.append(genClass.getLocalFeatureIndex(genFeature));
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
+    } else {
+    stringBuffer.append(TEXT_178);
+    stringBuffer.append(genFeature.getImportedMetaType());
+    stringBuffer.append(TEXT_179);
+    stringBuffer.append(genClassifier.getClassifierAccessorName());
+    stringBuffer.append(TEXT_180);
+    stringBuffer.append(genClass.getLocalFeatureIndex(genFeature));
+    stringBuffer.append(TEXT_177);
     }
-    stringBuffer.append(TEXT_139);
+    stringBuffer.append(TEXT_141);
     } else {
     stringBuffer.append(TEXT_53);
     stringBuffer.append(genFeature.getImportedMetaType());
-    stringBuffer.append(TEXT_157);
+    stringBuffer.append(TEXT_160);
     stringBuffer.append(genFeature.getFeatureAccessorName());
-    stringBuffer.append(TEXT_178);
+    stringBuffer.append(TEXT_181);
     }
     stringBuffer.append(TEXT_7);
     }
     if (genModel.isOperationReflection()) {
     for (GenOperation genOperation : genClass.getGenOperations()) {
     if (isInterface) {
-    stringBuffer.append(TEXT_179);
-    stringBuffer.append(genClass.getRawQualifiedInterfaceName());
-    stringBuffer.append(TEXT_168);
-    stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_180);
-    stringBuffer.append(genOperation.getParameterTypes(", "));
-    stringBuffer.append(TEXT_181);
-    stringBuffer.append(genOperation.getFormattedName());
     stringBuffer.append(TEXT_182);
-    stringBuffer.append(genOperation.getFormattedName());
-    stringBuffer.append(TEXT_183);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
-    stringBuffer.append(TEXT_168);
+    stringBuffer.append(TEXT_171);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_180);
+    stringBuffer.append(TEXT_183);
+    stringBuffer.append(genOperation.getParameterTypes(", "));
+    stringBuffer.append(TEXT_184);
+    stringBuffer.append(genOperation.getFormattedName());
+    stringBuffer.append(TEXT_185);
+    stringBuffer.append(genOperation.getFormattedName());
+    stringBuffer.append(TEXT_186);
+    stringBuffer.append(genClass.getRawQualifiedInterfaceName());
+    stringBuffer.append(TEXT_171);
+    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(TEXT_183);
     stringBuffer.append(genOperation.getParameterTypes(", "));
     stringBuffer.append(TEXT_79);
     if (genOperation.hasImplicitAPITags()) {
@@ -1126,31 +1138,34 @@
     stringBuffer.append(TEXT_52);
     }
     if (isImplementation) {
-    stringBuffer.append(TEXT_156);
-    stringBuffer.append(genOperation.getImportedMetaType());
-    stringBuffer.append(TEXT_157);
-    stringBuffer.append(genOperation.getOperationAccessorName());
+    if (useInterfaceOverrideAnnotation) {
     stringBuffer.append(TEXT_158);
-    if (!genPackage.isLoadedInitialization()) {
-    stringBuffer.append(TEXT_163);
-    stringBuffer.append(genClass.getClassifierInstanceName());
-    stringBuffer.append(TEXT_184);
-    stringBuffer.append(genClass.getLocalOperationIndex(genOperation));
-    stringBuffer.append(TEXT_174);
-    } else {
-    stringBuffer.append(TEXT_185);
-    stringBuffer.append(genClassifier.getClassifierAccessorName());
-    stringBuffer.append(TEXT_186);
-    stringBuffer.append(genClass.getLocalOperationIndex(genOperation));
-    stringBuffer.append(TEXT_174);
     }
-    stringBuffer.append(TEXT_139);
+    stringBuffer.append(TEXT_159);
+    stringBuffer.append(genOperation.getImportedMetaType());
+    stringBuffer.append(TEXT_160);
+    stringBuffer.append(genOperation.getOperationAccessorName());
+    stringBuffer.append(TEXT_161);
+    if (!genPackage.isLoadedInitialization()) {
+    stringBuffer.append(TEXT_166);
+    stringBuffer.append(genClass.getClassifierInstanceName());
+    stringBuffer.append(TEXT_187);
+    stringBuffer.append(genClass.getLocalOperationIndex(genOperation));
+    stringBuffer.append(TEXT_177);
+    } else {
+    stringBuffer.append(TEXT_188);
+    stringBuffer.append(genClassifier.getClassifierAccessorName());
+    stringBuffer.append(TEXT_189);
+    stringBuffer.append(genClass.getLocalOperationIndex(genOperation));
+    stringBuffer.append(TEXT_177);
+    }
+    stringBuffer.append(TEXT_141);
     } else {
     stringBuffer.append(TEXT_53);
     stringBuffer.append(genOperation.getImportedMetaType());
-    stringBuffer.append(TEXT_157);
+    stringBuffer.append(TEXT_160);
     stringBuffer.append(genOperation.getOperationAccessorName());
-    stringBuffer.append(TEXT_178);
+    stringBuffer.append(TEXT_181);
     }
     stringBuffer.append(TEXT_7);
     }
@@ -1158,60 +1173,63 @@
     }
     }
     if (isInterface) {
-    stringBuffer.append(TEXT_187);
+    stringBuffer.append(TEXT_190);
     } else {
-    stringBuffer.append(TEXT_188);
+    stringBuffer.append(TEXT_191);
     }
     if (isImplementation) {
-    stringBuffer.append(TEXT_156);
+    if (useInterfaceOverrideAnnotation) {
+    stringBuffer.append(TEXT_158);
+    }
+    stringBuffer.append(TEXT_159);
     stringBuffer.append(genPackage.getImportedFactoryInterfaceName());
-    stringBuffer.append(TEXT_157);
+    stringBuffer.append(TEXT_160);
     stringBuffer.append(genPackage.getFactoryName());
-    stringBuffer.append(TEXT_189);
+    stringBuffer.append(TEXT_192);
     stringBuffer.append(genPackage.getImportedFactoryInterfaceName());
-    stringBuffer.append(TEXT_190);
+    stringBuffer.append(TEXT_193);
     } else {
     stringBuffer.append(TEXT_53);
     stringBuffer.append(genPackage.getFactoryInterfaceName());
-    stringBuffer.append(TEXT_157);
+    stringBuffer.append(TEXT_160);
     stringBuffer.append(genPackage.getFactoryName());
-    stringBuffer.append(TEXT_178);
+    stringBuffer.append(TEXT_181);
     }
     stringBuffer.append(TEXT_7);
     if (isImplementation) {
     if (!genPackage.isLoadedInitialization()) {
-    stringBuffer.append(TEXT_191);
+    stringBuffer.append(TEXT_194);
     {boolean needsSuppressDeprecation = false; if (!packageNeedsSuppressDeprecation && isJDK50) { LOOP: for (GenClass genClass : genPackage.getGenClasses()) { for (GenFeature genFeature : genClass.getGenFeatures()) { if (genFeature.hasAPIDeprecatedTag()) { needsSuppressDeprecation = true; break LOOP; }}
       for (GenOperation genOperation : genClass.getGenOperations()) { if (genOperation.hasAPIDeprecatedTag()) { needsSuppressDeprecation = true; break LOOP; }}} if (needsSuppressDeprecation) {
-    stringBuffer.append(TEXT_192);
+    stringBuffer.append(TEXT_195);
     }}}
-    stringBuffer.append(TEXT_193);
+    stringBuffer.append(TEXT_196);
     if (!genPackage.getGenClasses().isEmpty()) {
-    stringBuffer.append(TEXT_194);
+    stringBuffer.append(TEXT_197);
     for (Iterator<GenClass> c=genPackage.getGenClasses().iterator(); c.hasNext();) { GenClass genClass = c.next();
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genClass.getClassifierInstanceName());
-    stringBuffer.append(TEXT_195);
+    stringBuffer.append(TEXT_198);
     stringBuffer.append(genClass.getMetaType());
-    stringBuffer.append(TEXT_180);
+    stringBuffer.append(TEXT_183);
     stringBuffer.append(genClass.getClassifierID());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     for (GenFeature genFeature : genClass.getGenFeatures()) {
-    stringBuffer.append(TEXT_196);
+    stringBuffer.append(TEXT_199);
     stringBuffer.append(genFeature.getMetaType());
-    stringBuffer.append(TEXT_180);
+    stringBuffer.append(TEXT_183);
     stringBuffer.append(genClass.getClassifierInstanceName());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genClass.getFeatureID(genFeature));
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     }
     if (genModel.isOperationReflection()) {
     for (GenOperation genOperation : genClass.getGenOperations()) {
-    stringBuffer.append(TEXT_198);
+    stringBuffer.append(TEXT_201);
     stringBuffer.append(genClass.getClassifierInstanceName());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genClass.getOperationID(genOperation, false));
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     }
     }
     if (c.hasNext()) {
@@ -1220,26 +1238,26 @@
     }
     }
     if (!genPackage.getGenEnums().isEmpty()) {
-    stringBuffer.append(TEXT_199);
+    stringBuffer.append(TEXT_202);
     for (GenEnum genEnum : genPackage.getGenEnums()) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genEnum.getClassifierInstanceName());
-    stringBuffer.append(TEXT_200);
+    stringBuffer.append(TEXT_203);
     stringBuffer.append(genEnum.getClassifierID());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     }
     }
     if (!genPackage.getGenDataTypes().isEmpty()) {
-    stringBuffer.append(TEXT_201);
+    stringBuffer.append(TEXT_204);
     for (GenDataType genDataType : genPackage.getGenDataTypes()) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genDataType.getClassifierInstanceName());
-    stringBuffer.append(TEXT_202);
+    stringBuffer.append(TEXT_205);
     stringBuffer.append(genDataType.getClassifierID());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     }
     }
-    stringBuffer.append(TEXT_203);
+    stringBuffer.append(TEXT_206);
     
 ///////////////////////
 class Information
@@ -1310,13 +1328,13 @@
 ///////////////////////
 int maxGenericTypeAssignment = 0;
 
-    stringBuffer.append(TEXT_204);
+    stringBuffer.append(TEXT_207);
     {boolean needsSuppressDeprecation = false; if (!packageNeedsSuppressDeprecation && isJDK50) { LOOP: for (GenEnum genEnum : genPackage.getGenEnums()) { for (GenEnumLiteral genEnumLiteral : genEnum.getGenEnumLiterals()) { if (genEnumLiteral.hasAPIDeprecatedTag()) { needsSuppressDeprecation = true; break LOOP; }}} if (needsSuppressDeprecation) {
-    stringBuffer.append(TEXT_192);
+    stringBuffer.append(TEXT_195);
     }}}
-    stringBuffer.append(TEXT_205);
+    stringBuffer.append(TEXT_208);
     if (!genPackage.getPackageInitializationDependencies().isEmpty()) {
-    stringBuffer.append(TEXT_206);
+    stringBuffer.append(TEXT_209);
     for (GenPackage dep : genPackage.getPackageInitializationDependencies()) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(dep.getImportedPackageInterfaceName());
@@ -1328,20 +1346,20 @@
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EPackage"));
     stringBuffer.append(TEXT_80);
     stringBuffer.append(dep.getImportedPackageInterfaceName());
-    stringBuffer.append(TEXT_207);
+    stringBuffer.append(TEXT_210);
     }
     }
     if (!genPackage.getSubGenPackages().isEmpty()) {
-    stringBuffer.append(TEXT_208);
+    stringBuffer.append(TEXT_211);
     for (GenPackage sub : genPackage.getSubGenPackages()) {
-    stringBuffer.append(TEXT_209);
+    stringBuffer.append(TEXT_212);
     stringBuffer.append(genPackage.getPackageInstanceVariable(sub));
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     }
     }
     if (!genPackage.getGenClasses().isEmpty()) { boolean firstOperationAssignment = true; int maxTypeParameterAssignment = 0;
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_210);
+    stringBuffer.append(TEXT_213);
     for (GenClassifier genClassifier : genPackage.getGenClassifiers()) {
     for (GenTypeParameter genTypeParameter : genClassifier.getGenTypeParameters()) {
     if (!genTypeParameter.getEcoreTypeParameter().getEBounds().isEmpty() || genTypeParameter.isUsed()) {
@@ -1349,125 +1367,125 @@
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.ETypeParameter"));
     stringBuffer.append(TEXT_69);
     stringBuffer.append(genClassifier.getClassifierInstanceName());
-    stringBuffer.append(TEXT_211);
-    stringBuffer.append(genTypeParameter.getName());
-    stringBuffer.append(TEXT_212);
-    stringBuffer.append(genClassifier.getClassifierInstanceName());
-    stringBuffer.append(TEXT_213);
-    stringBuffer.append(genTypeParameter.getName());
     stringBuffer.append(TEXT_214);
-    stringBuffer.append(genModel.getNonNLS());
-    } else {
+    stringBuffer.append(genTypeParameter.getName());
     stringBuffer.append(TEXT_215);
     stringBuffer.append(genClassifier.getClassifierInstanceName());
-    stringBuffer.append(TEXT_213);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genTypeParameter.getName());
-    stringBuffer.append(TEXT_214);
+    stringBuffer.append(TEXT_217);
+    stringBuffer.append(genModel.getNonNLS());
+    } else {
+    stringBuffer.append(TEXT_218);
+    stringBuffer.append(genClassifier.getClassifierInstanceName());
+    stringBuffer.append(TEXT_216);
+    stringBuffer.append(genTypeParameter.getName());
+    stringBuffer.append(TEXT_217);
     stringBuffer.append(genModel.getNonNLS());
     }
     }
     }
     }
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_216);
+    stringBuffer.append(TEXT_219);
     for (GenClassifier genClassifier : genPackage.getGenClassifiers()) {
     for (GenTypeParameter genTypeParameter : genClassifier.getGenTypeParameters()) {
     for (EGenericType bound : genTypeParameter.getEcoreTypeParameter().getEBounds()) {
     for (InformationIterator i=new InformationIterator(bound); i.hasNext(); ) { Information info = i.next(); String prefix = ""; if (maxGenericTypeAssignment <= info.depth) { ++maxGenericTypeAssignment; prefix = genModel.getImportedName("org.eclipse.emf.ecore.EGenericType") + " "; }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(prefix);
-    stringBuffer.append(TEXT_217);
-    stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_218);
-    stringBuffer.append(info.type);
-    stringBuffer.append(TEXT_174);
-    if (info.depth > 0) {
-    stringBuffer.append(TEXT_219);
-    stringBuffer.append(info.depth);
     stringBuffer.append(TEXT_220);
-    stringBuffer.append(info.accessor);
-    stringBuffer.append(TEXT_221);
     stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_221);
+    stringBuffer.append(info.type);
+    stringBuffer.append(TEXT_177);
+    if (info.depth > 0) {
+    stringBuffer.append(TEXT_222);
+    stringBuffer.append(info.depth);
+    stringBuffer.append(TEXT_223);
+    stringBuffer.append(info.accessor);
+    stringBuffer.append(TEXT_224);
+    stringBuffer.append(info.depth + 1);
+    stringBuffer.append(TEXT_177);
     }
     }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genClassifier.getClassifierInstanceName());
-    stringBuffer.append(TEXT_211);
+    stringBuffer.append(TEXT_214);
     stringBuffer.append(genTypeParameter.getName());
-    stringBuffer.append(TEXT_222);
+    stringBuffer.append(TEXT_225);
     }
     }
     }
     }
-    stringBuffer.append(TEXT_223);
+    stringBuffer.append(TEXT_226);
     for (GenClass genClass : genPackage.getGenClasses()) {
     if (!genClass.hasGenericSuperTypes()) {
     for (GenClass baseGenClass : genClass.getBaseGenClasses()) {
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genClass.getClassifierInstanceName());
-    stringBuffer.append(TEXT_224);
+    stringBuffer.append(TEXT_227);
     stringBuffer.append(genPackage.getPackageInstanceVariable(baseGenClass.getGenPackage()));
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_228);
     stringBuffer.append(baseGenClass.getClassifierAccessorName());
-    stringBuffer.append(TEXT_226);
+    stringBuffer.append(TEXT_229);
     }
     } else {
     for (EGenericType superType : genClass.getEcoreClass().getEGenericSuperTypes()) {
     for (InformationIterator i=new InformationIterator(superType); i.hasNext(); ) { Information info = i.next(); String prefix = ""; if (maxGenericTypeAssignment <= info.depth) { ++maxGenericTypeAssignment; prefix = genModel.getImportedName("org.eclipse.emf.ecore.EGenericType") + " "; }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(prefix);
-    stringBuffer.append(TEXT_217);
-    stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_218);
-    stringBuffer.append(info.type);
-    stringBuffer.append(TEXT_174);
-    if (info.depth > 0) {
-    stringBuffer.append(TEXT_219);
-    stringBuffer.append(info.depth);
     stringBuffer.append(TEXT_220);
-    stringBuffer.append(info.accessor);
-    stringBuffer.append(TEXT_221);
     stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_221);
+    stringBuffer.append(info.type);
+    stringBuffer.append(TEXT_177);
+    if (info.depth > 0) {
+    stringBuffer.append(TEXT_222);
+    stringBuffer.append(info.depth);
+    stringBuffer.append(TEXT_223);
+    stringBuffer.append(info.accessor);
+    stringBuffer.append(TEXT_224);
+    stringBuffer.append(info.depth + 1);
+    stringBuffer.append(TEXT_177);
     }
     }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(genClass.getClassifierInstanceName());
-    stringBuffer.append(TEXT_227);
-    }
-    }
-    }
-    stringBuffer.append(TEXT_228);
-    if (genModel.isOperationReflection()) {
-    stringBuffer.append(TEXT_229);
-    } else {
     stringBuffer.append(TEXT_230);
     }
-    for (Iterator<GenClass> c=genPackage.getGenClasses().iterator(); c.hasNext();) { GenClass genClass = c.next(); boolean hasInstanceTypeName = genModel.useGenerics() && genClass.getEcoreClass().getInstanceTypeName() != null && genClass.getEcoreClass().getInstanceTypeName().contains("<");
+    }
+    }
     stringBuffer.append(TEXT_231);
-    stringBuffer.append(genClass.getClassifierInstanceName());
-    stringBuffer.append(TEXT_197);
-    if (genClass.isDynamic()) {
+    if (genModel.isOperationReflection()) {
     stringBuffer.append(TEXT_232);
     } else {
-    stringBuffer.append(genClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_233);
     }
-    stringBuffer.append(TEXT_213);
-    stringBuffer.append(genClass.getName());
+    for (Iterator<GenClass> c=genPackage.getGenClasses().iterator(); c.hasNext();) { GenClass genClass = c.next(); boolean hasInstanceTypeName = genModel.useGenerics() && genClass.getEcoreClass().getInstanceTypeName() != null && genClass.getEcoreClass().getInstanceTypeName().contains("<");
     stringBuffer.append(TEXT_234);
+    stringBuffer.append(genClass.getClassifierInstanceName());
+    stringBuffer.append(TEXT_200);
+    if (genClass.isDynamic()) {
+    stringBuffer.append(TEXT_235);
+    } else {
+    stringBuffer.append(genClass.getRawImportedInterfaceName());
+    stringBuffer.append(TEXT_236);
+    }
+    stringBuffer.append(TEXT_216);
+    stringBuffer.append(genClass.getName());
+    stringBuffer.append(TEXT_237);
     stringBuffer.append(genClass.getAbstractFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genClass.getInterfaceFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genClass.getGeneratedInstanceClassFlag());
     if (hasInstanceTypeName) {
-    stringBuffer.append(TEXT_213);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genClass.getEcoreClass().getInstanceTypeName());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_238);
     }
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     stringBuffer.append(genModel.getNonNLS());
     if (hasInstanceTypeName) {
     stringBuffer.append(genModel.getNonNLS(2));
@@ -1477,116 +1495,116 @@
     for (InformationIterator i=new InformationIterator(genFeature.getEcoreFeature().getEGenericType()); i.hasNext(); ) { Information info = i.next(); String prefix = ""; if (maxGenericTypeAssignment <= info.depth) { ++maxGenericTypeAssignment; prefix = genModel.getImportedName("org.eclipse.emf.ecore.EGenericType") + " "; }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(prefix);
-    stringBuffer.append(TEXT_217);
-    stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_218);
-    stringBuffer.append(info.type);
-    stringBuffer.append(TEXT_174);
-    if (info.depth > 0) {
-    stringBuffer.append(TEXT_219);
-    stringBuffer.append(info.depth);
     stringBuffer.append(TEXT_220);
-    stringBuffer.append(info.accessor);
-    stringBuffer.append(TEXT_221);
     stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_221);
+    stringBuffer.append(info.type);
+    stringBuffer.append(TEXT_177);
+    if (info.depth > 0) {
+    stringBuffer.append(TEXT_222);
+    stringBuffer.append(info.depth);
+    stringBuffer.append(TEXT_223);
+    stringBuffer.append(info.accessor);
+    stringBuffer.append(TEXT_224);
+    stringBuffer.append(info.depth + 1);
+    stringBuffer.append(TEXT_177);
     }
     }
     }
     if (genFeature.isReferenceType()) { GenFeature reverseGenFeature = genFeature.getReverse();
     String reverse = reverseGenFeature == null ? "null" : genPackage.getPackageInstanceVariable(reverseGenFeature.getGenPackage()) + ".get" + reverseGenFeature.getFeatureAccessorName() + "()";
-    stringBuffer.append(TEXT_236);
-    stringBuffer.append(genFeature.getFeatureAccessorName());
-    stringBuffer.append(TEXT_237);
-    if (genFeature.hasGenericType()) {
-    stringBuffer.append(TEXT_238);
-    } else {
-    stringBuffer.append(genPackage.getPackageInstanceVariable(genFeature.getTypeGenPackage()));
-    stringBuffer.append(TEXT_225);
-    stringBuffer.append(genFeature.getTypeClassifierAccessorName());
-    stringBuffer.append(TEXT_49);
-    }
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(reverse);
-    stringBuffer.append(TEXT_213);
-    stringBuffer.append(genFeature.getName());
-    stringBuffer.append(TEXT_234);
-    stringBuffer.append(genFeature.getDefaultValue());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getLowerBound());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getUpperBound());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getContainerClass());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getTransientFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getVolatileFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getChangeableFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getContainmentFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getResolveProxiesFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getUnsettableFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getUniqueFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getDerivedFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getOrderedFlag());
-    stringBuffer.append(TEXT_174);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(genModel.getNonNLS(genFeature.getDefaultValue(), 2));
-    for (GenFeature keyFeature : genFeature.getKeys()) {
     stringBuffer.append(TEXT_239);
     stringBuffer.append(genFeature.getFeatureAccessorName());
     stringBuffer.append(TEXT_240);
-    stringBuffer.append(genPackage.getPackageInstanceVariable(keyFeature.getGenPackage()));
-    stringBuffer.append(TEXT_225);
-    stringBuffer.append(keyFeature.getFeatureAccessorName());
-    stringBuffer.append(TEXT_226);
-    }
-    } else {
-    stringBuffer.append(TEXT_241);
-    stringBuffer.append(genFeature.getFeatureAccessorName());
-    stringBuffer.append(TEXT_237);
     if (genFeature.hasGenericType()) {
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_241);
     } else {
     stringBuffer.append(genPackage.getPackageInstanceVariable(genFeature.getTypeGenPackage()));
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_228);
     stringBuffer.append(genFeature.getTypeClassifierAccessorName());
     stringBuffer.append(TEXT_49);
     }
-    stringBuffer.append(TEXT_213);
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(reverse);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genFeature.getName());
-    stringBuffer.append(TEXT_234);
+    stringBuffer.append(TEXT_237);
     stringBuffer.append(genFeature.getDefaultValue());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getLowerBound());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getUpperBound());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getContainerClass());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getTransientFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getVolatileFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getChangeableFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getContainmentFlag());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getResolveProxiesFlag());
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getUnsettableFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genFeature.getIDFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getUniqueFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getDerivedFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genFeature.getOrderedFlag());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genModel.getNonNLS(genFeature.getDefaultValue(), 2));
+    for (GenFeature keyFeature : genFeature.getKeys()) {
+    stringBuffer.append(TEXT_242);
+    stringBuffer.append(genFeature.getFeatureAccessorName());
+    stringBuffer.append(TEXT_243);
+    stringBuffer.append(genPackage.getPackageInstanceVariable(keyFeature.getGenPackage()));
+    stringBuffer.append(TEXT_228);
+    stringBuffer.append(keyFeature.getFeatureAccessorName());
+    stringBuffer.append(TEXT_229);
+    }
+    } else {
+    stringBuffer.append(TEXT_244);
+    stringBuffer.append(genFeature.getFeatureAccessorName());
+    stringBuffer.append(TEXT_240);
+    if (genFeature.hasGenericType()) {
+    stringBuffer.append(TEXT_241);
+    } else {
+    stringBuffer.append(genPackage.getPackageInstanceVariable(genFeature.getTypeGenPackage()));
+    stringBuffer.append(TEXT_228);
+    stringBuffer.append(genFeature.getTypeClassifierAccessorName());
+    stringBuffer.append(TEXT_49);
+    }
+    stringBuffer.append(TEXT_216);
+    stringBuffer.append(genFeature.getName());
+    stringBuffer.append(TEXT_237);
+    stringBuffer.append(genFeature.getDefaultValue());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getLowerBound());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getUpperBound());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getContainerClass());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getTransientFlag());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getVolatileFlag());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getChangeableFlag());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getUnsettableFlag());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getIDFlag());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getUniqueFlag());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getDerivedFlag());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genFeature.getOrderedFlag());
+    stringBuffer.append(TEXT_177);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(genFeature.getDefaultValue(), 2));
     }
@@ -1597,132 +1615,132 @@
     stringBuffer.append(TEXT_93);
     stringBuffer.append(prefix);
     if (genModel.isOperationReflection()) {
-    stringBuffer.append(TEXT_242);
+    stringBuffer.append(TEXT_245);
     stringBuffer.append(genOperation.getOperationAccessorName());
     stringBuffer.append(TEXT_49);
     } else {
-    stringBuffer.append(TEXT_243);
+    stringBuffer.append(TEXT_246);
     stringBuffer.append(genClass.getClassifierInstanceName());
     }
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     if (genOperation.isVoid() || genOperation.hasGenericType()) {
-    stringBuffer.append(TEXT_232);
+    stringBuffer.append(TEXT_235);
     } else {
     stringBuffer.append(genPackage.getPackageInstanceVariable(genOperation.getTypeGenPackage()));
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_228);
     stringBuffer.append(genOperation.getTypeClassifierAccessorName());
     stringBuffer.append(TEXT_49);
     }
-    stringBuffer.append(TEXT_213);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_234);
+    stringBuffer.append(TEXT_237);
     stringBuffer.append(genOperation.getLowerBound());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genOperation.getUpperBound());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genOperation.getUniqueFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genOperation.getOrderedFlag());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     stringBuffer.append(genModel.getNonNLS());
     } else if (!genOperation.isVoid()) {
     if (!genOperation.getEcoreOperation().isOrdered() || !genOperation.getEcoreOperation().isUnique()) { needsAddEOperation = true;
     stringBuffer.append(TEXT_93);
     stringBuffer.append(prefix);
     if (genModel.isOperationReflection()) {
-    stringBuffer.append(TEXT_242);
-    stringBuffer.append(genOperation.getOperationAccessorName());
-    stringBuffer.append(TEXT_49);
-    } else {
-    stringBuffer.append(TEXT_243);
-    stringBuffer.append(genClass.getClassifierInstanceName());
-    }
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genPackage.getPackageInstanceVariable(genOperation.getTypeGenPackage()));
-    stringBuffer.append(TEXT_225);
-    stringBuffer.append(genOperation.getTypeClassifierAccessorName());
-    stringBuffer.append(TEXT_244);
-    stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_234);
-    stringBuffer.append(genOperation.getLowerBound());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genOperation.getUpperBound());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genOperation.getUniqueFlag());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genOperation.getOrderedFlag());
-    stringBuffer.append(TEXT_174);
-    stringBuffer.append(genModel.getNonNLS());
-    } else {
-    stringBuffer.append(TEXT_93);
-    stringBuffer.append(prefix);
-    if (genModel.isOperationReflection()) {
-    stringBuffer.append(TEXT_242);
-    stringBuffer.append(genOperation.getOperationAccessorName());
-    stringBuffer.append(TEXT_49);
-    } else {
-    stringBuffer.append(TEXT_243);
-    stringBuffer.append(genClass.getClassifierInstanceName());
-    }
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genPackage.getPackageInstanceVariable(genOperation.getTypeGenPackage()));
-    stringBuffer.append(TEXT_225);
-    stringBuffer.append(genOperation.getTypeClassifierAccessorName());
-    stringBuffer.append(TEXT_244);
-    stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_234);
-    stringBuffer.append(genOperation.getLowerBound());
-    stringBuffer.append(TEXT_197);
-    stringBuffer.append(genOperation.getUpperBound());
-    stringBuffer.append(TEXT_174);
-    stringBuffer.append(genModel.getNonNLS());
-    }
-    } else {
-    stringBuffer.append(TEXT_93);
-    stringBuffer.append(prefix);
-    if (genModel.isOperationReflection()) {
-    stringBuffer.append(TEXT_242);
-    stringBuffer.append(genOperation.getOperationAccessorName());
-    stringBuffer.append(TEXT_49);
-    } else {
-    stringBuffer.append(TEXT_243);
-    stringBuffer.append(genClass.getClassifierInstanceName());
-    }
     stringBuffer.append(TEXT_245);
+    stringBuffer.append(genOperation.getOperationAccessorName());
+    stringBuffer.append(TEXT_49);
+    } else {
+    stringBuffer.append(TEXT_246);
+    stringBuffer.append(genClass.getClassifierInstanceName());
+    }
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genPackage.getPackageInstanceVariable(genOperation.getTypeGenPackage()));
+    stringBuffer.append(TEXT_228);
+    stringBuffer.append(genOperation.getTypeClassifierAccessorName());
+    stringBuffer.append(TEXT_247);
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_214);
+    stringBuffer.append(TEXT_237);
+    stringBuffer.append(genOperation.getLowerBound());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genOperation.getUpperBound());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genOperation.getUniqueFlag());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genOperation.getOrderedFlag());
+    stringBuffer.append(TEXT_177);
+    stringBuffer.append(genModel.getNonNLS());
+    } else {
+    stringBuffer.append(TEXT_93);
+    stringBuffer.append(prefix);
+    if (genModel.isOperationReflection()) {
+    stringBuffer.append(TEXT_245);
+    stringBuffer.append(genOperation.getOperationAccessorName());
+    stringBuffer.append(TEXT_49);
+    } else {
+    stringBuffer.append(TEXT_246);
+    stringBuffer.append(genClass.getClassifierInstanceName());
+    }
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genPackage.getPackageInstanceVariable(genOperation.getTypeGenPackage()));
+    stringBuffer.append(TEXT_228);
+    stringBuffer.append(genOperation.getTypeClassifierAccessorName());
+    stringBuffer.append(TEXT_247);
+    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(TEXT_237);
+    stringBuffer.append(genOperation.getLowerBound());
+    stringBuffer.append(TEXT_200);
+    stringBuffer.append(genOperation.getUpperBound());
+    stringBuffer.append(TEXT_177);
+    stringBuffer.append(genModel.getNonNLS());
+    }
+    } else {
+    stringBuffer.append(TEXT_93);
+    stringBuffer.append(prefix);
+    if (genModel.isOperationReflection()) {
+    stringBuffer.append(TEXT_245);
+    stringBuffer.append(genOperation.getOperationAccessorName());
+    stringBuffer.append(TEXT_49);
+    } else {
+    stringBuffer.append(TEXT_246);
+    stringBuffer.append(genClass.getClassifierInstanceName());
+    }
+    stringBuffer.append(TEXT_248);
+    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(TEXT_217);
     stringBuffer.append(genModel.getNonNLS());
     }
     if (genModel.useGenerics()) {
     for (ListIterator<GenTypeParameter> t=genOperation.getGenTypeParameters().listIterator(); t.hasNext(); ) { GenTypeParameter genTypeParameter = t.next(); String typeParameterVariable = ""; if (!genTypeParameter.getEcoreTypeParameter().getEBounds().isEmpty() || genTypeParameter.isUsed()) { if (maxTypeParameterAssignment <= t.previousIndex()) { ++maxTypeParameterAssignment; typeParameterVariable = genModel.getImportedName("org.eclipse.emf.ecore.ETypeParameter") + " t" + t.nextIndex() + " = "; } else { typeParameterVariable = "t" + t.nextIndex() + " = "; }} 
     stringBuffer.append(TEXT_93);
     stringBuffer.append(typeParameterVariable);
-    stringBuffer.append(TEXT_246);
+    stringBuffer.append(TEXT_249);
     stringBuffer.append(genTypeParameter.getName());
-    stringBuffer.append(TEXT_214);
+    stringBuffer.append(TEXT_217);
     stringBuffer.append(genModel.getNonNLS());
     for (EGenericType typeParameter : genTypeParameter.getEcoreTypeParameter().getEBounds()) {
     for (InformationIterator i=new InformationIterator(typeParameter); i.hasNext(); ) { Information info = i.next(); String typePrefix = ""; if (maxGenericTypeAssignment <= info.depth) { ++maxGenericTypeAssignment; typePrefix = genModel.getImportedName("org.eclipse.emf.ecore.EGenericType") + " "; }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(typePrefix);
-    stringBuffer.append(TEXT_217);
-    stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_218);
-    stringBuffer.append(info.type);
-    stringBuffer.append(TEXT_174);
-    if (info.depth > 0) {
-    stringBuffer.append(TEXT_219);
-    stringBuffer.append(info.depth);
     stringBuffer.append(TEXT_220);
-    stringBuffer.append(info.accessor);
-    stringBuffer.append(TEXT_221);
     stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_174);
-    }
-    }
-    stringBuffer.append(TEXT_247);
-    stringBuffer.append(t.nextIndex());
+    stringBuffer.append(TEXT_221);
+    stringBuffer.append(info.type);
+    stringBuffer.append(TEXT_177);
+    if (info.depth > 0) {
     stringBuffer.append(TEXT_222);
+    stringBuffer.append(info.depth);
+    stringBuffer.append(TEXT_223);
+    stringBuffer.append(info.accessor);
+    stringBuffer.append(TEXT_224);
+    stringBuffer.append(info.depth + 1);
+    stringBuffer.append(TEXT_177);
+    }
+    }
+    stringBuffer.append(TEXT_250);
+    stringBuffer.append(t.nextIndex());
+    stringBuffer.append(TEXT_225);
     }
     }
     }
@@ -1731,83 +1749,83 @@
     for (InformationIterator i=new InformationIterator(genParameter.getEcoreParameter().getEGenericType()); i.hasNext(); ) { Information info = i.next(); String typePrefix = ""; if (maxGenericTypeAssignment <= info.depth) { ++maxGenericTypeAssignment; typePrefix = genModel.getImportedName("org.eclipse.emf.ecore.EGenericType") + " "; }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(typePrefix);
-    stringBuffer.append(TEXT_217);
-    stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_218);
-    stringBuffer.append(info.type);
-    stringBuffer.append(TEXT_174);
-    if (info.depth > 0) {
-    stringBuffer.append(TEXT_219);
-    stringBuffer.append(info.depth);
     stringBuffer.append(TEXT_220);
-    stringBuffer.append(info.accessor);
-    stringBuffer.append(TEXT_221);
     stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_221);
+    stringBuffer.append(info.type);
+    stringBuffer.append(TEXT_177);
+    if (info.depth > 0) {
+    stringBuffer.append(TEXT_222);
+    stringBuffer.append(info.depth);
+    stringBuffer.append(TEXT_223);
+    stringBuffer.append(info.accessor);
+    stringBuffer.append(TEXT_224);
+    stringBuffer.append(info.depth + 1);
+    stringBuffer.append(TEXT_177);
     }
     }
     }
     if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_248);
+    stringBuffer.append(TEXT_251);
     if (genParameter.hasGenericType()){
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_241);
     } else {
     stringBuffer.append(genPackage.getPackageInstanceVariable(genParameter.getTypeGenPackage()));
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_228);
     stringBuffer.append(genParameter.getTypeClassifierAccessorName());
     stringBuffer.append(TEXT_49);
     }
-    stringBuffer.append(TEXT_213);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genParameter.getName());
-    stringBuffer.append(TEXT_234);
+    stringBuffer.append(TEXT_237);
     stringBuffer.append(genParameter.getLowerBound());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genParameter.getUpperBound());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genParameter.getUniqueFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genParameter.getOrderedFlag());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     stringBuffer.append(genModel.getNonNLS());
     } else if (!genParameter.getEcoreParameter().isOrdered() || !genParameter.getEcoreParameter().isUnique()) { needsAddEParameter = true;
-    stringBuffer.append(TEXT_248);
+    stringBuffer.append(TEXT_251);
     if (genParameter.hasGenericType()){
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_241);
     } else {
     stringBuffer.append(genPackage.getPackageInstanceVariable(genParameter.getTypeGenPackage()));
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_228);
     stringBuffer.append(genParameter.getTypeClassifierAccessorName());
     stringBuffer.append(TEXT_49);
     }
-    stringBuffer.append(TEXT_213);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genParameter.getName());
-    stringBuffer.append(TEXT_234);
+    stringBuffer.append(TEXT_237);
     stringBuffer.append(genParameter.getLowerBound());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genParameter.getUpperBound());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genParameter.getUniqueFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genParameter.getOrderedFlag());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_248);
+    stringBuffer.append(TEXT_251);
     if (genParameter.hasGenericType()){
-    stringBuffer.append(TEXT_238);
+    stringBuffer.append(TEXT_241);
     } else {
     stringBuffer.append(genPackage.getPackageInstanceVariable(genParameter.getTypeGenPackage()));
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_228);
     stringBuffer.append(genParameter.getTypeClassifierAccessorName());
     stringBuffer.append(TEXT_49);
     }
-    stringBuffer.append(TEXT_213);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genParameter.getName());
-    stringBuffer.append(TEXT_234);
+    stringBuffer.append(TEXT_237);
     stringBuffer.append(genParameter.getLowerBound());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genParameter.getUpperBound());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     stringBuffer.append(genModel.getNonNLS());
     }
     }
@@ -1816,54 +1834,54 @@
     for (InformationIterator i=new InformationIterator(genericExceptions); i.hasNext(); ) { Information info = i.next(); String typePrefix = ""; if (maxGenericTypeAssignment <= info.depth) { ++maxGenericTypeAssignment; typePrefix = genModel.getImportedName("org.eclipse.emf.ecore.EGenericType") + " "; }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(typePrefix);
-    stringBuffer.append(TEXT_217);
-    stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_218);
-    stringBuffer.append(info.type);
-    stringBuffer.append(TEXT_174);
-    if (info.depth > 0) {
-    stringBuffer.append(TEXT_219);
-    stringBuffer.append(info.depth);
     stringBuffer.append(TEXT_220);
-    stringBuffer.append(info.accessor);
+    stringBuffer.append(info.depth + 1);
     stringBuffer.append(TEXT_221);
+    stringBuffer.append(info.type);
+    stringBuffer.append(TEXT_177);
+    if (info.depth > 0) {
+    stringBuffer.append(TEXT_222);
+    stringBuffer.append(info.depth);
+    stringBuffer.append(TEXT_223);
+    stringBuffer.append(info.accessor);
+    stringBuffer.append(TEXT_224);
     stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     }
-    stringBuffer.append(TEXT_249);
+    stringBuffer.append(TEXT_252);
     stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     }
     }
     } else {
     for (GenClassifier genException : genOperation.getGenExceptions()) {
-    stringBuffer.append(TEXT_250);
+    stringBuffer.append(TEXT_253);
     stringBuffer.append(genPackage.getPackageInstanceVariable(genException.getGenPackage()));
-    stringBuffer.append(TEXT_225);
+    stringBuffer.append(TEXT_228);
     stringBuffer.append(genException.getClassifierAccessorName());
-    stringBuffer.append(TEXT_226);
+    stringBuffer.append(TEXT_229);
     }
     }
     if (!genOperation.isVoid() && genOperation.hasGenericType()) {
     for (InformationIterator i=new InformationIterator(genOperation.getEcoreOperation().getEGenericType()); i.hasNext(); ) { Information info = i.next(); String typePrefix = ""; if (maxGenericTypeAssignment <= info.depth) { ++maxGenericTypeAssignment; typePrefix = genModel.getImportedName("org.eclipse.emf.ecore.EGenericType") + " "; }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(typePrefix);
-    stringBuffer.append(TEXT_217);
-    stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_218);
-    stringBuffer.append(info.type);
-    stringBuffer.append(TEXT_174);
-    if (info.depth > 0) {
-    stringBuffer.append(TEXT_219);
-    stringBuffer.append(info.depth);
     stringBuffer.append(TEXT_220);
-    stringBuffer.append(info.accessor);
-    stringBuffer.append(TEXT_221);
     stringBuffer.append(info.depth + 1);
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_221);
+    stringBuffer.append(info.type);
+    stringBuffer.append(TEXT_177);
+    if (info.depth > 0) {
+    stringBuffer.append(TEXT_222);
+    stringBuffer.append(info.depth);
+    stringBuffer.append(TEXT_223);
+    stringBuffer.append(info.accessor);
+    stringBuffer.append(TEXT_224);
+    stringBuffer.append(info.depth + 1);
+    stringBuffer.append(TEXT_177);
     }
     }
-    stringBuffer.append(TEXT_251);
+    stringBuffer.append(TEXT_254);
     }
     }
     if (c.hasNext()) {
@@ -1872,24 +1890,24 @@
     }
     }
     if (!genPackage.getGenEnums().isEmpty()) {
-    stringBuffer.append(TEXT_252);
+    stringBuffer.append(TEXT_255);
     for (Iterator<GenEnum> e=genPackage.getGenEnums().iterator(); e.hasNext();) { GenEnum genEnum = e.next();
-    stringBuffer.append(TEXT_253);
+    stringBuffer.append(TEXT_256);
     stringBuffer.append(genEnum.getClassifierInstanceName());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genEnum.getImportedName());
-    stringBuffer.append(TEXT_254);
+    stringBuffer.append(TEXT_257);
     stringBuffer.append(genEnum.getName());
-    stringBuffer.append(TEXT_214);
+    stringBuffer.append(TEXT_217);
     stringBuffer.append(genModel.getNonNLS());
     for (GenEnumLiteral genEnumLiteral : genEnum.getGenEnumLiterals()) {
-    stringBuffer.append(TEXT_255);
+    stringBuffer.append(TEXT_258);
     stringBuffer.append(genEnum.getClassifierInstanceName());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genEnum.getImportedName().equals(genEnum.getClassifierID()) ? genEnum.getQualifiedName() : genEnum.getImportedName());
-    stringBuffer.append(TEXT_220);
+    stringBuffer.append(TEXT_223);
     stringBuffer.append(genEnumLiteral.getEnumLiteralInstanceConstantName());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     }
     if (e.hasNext()) {
     stringBuffer.append(TEXT_7);
@@ -1897,24 +1915,24 @@
     }
     }
     if (!genPackage.getGenDataTypes().isEmpty()) {
-    stringBuffer.append(TEXT_256);
+    stringBuffer.append(TEXT_259);
     for (GenDataType genDataType : genPackage.getGenDataTypes()) {boolean hasInstanceTypeName = genModel.useGenerics() && genDataType.getEcoreDataType().getInstanceTypeName() != null && genDataType.getEcoreDataType().getInstanceTypeName().contains("<");
-    stringBuffer.append(TEXT_257);
+    stringBuffer.append(TEXT_260);
     stringBuffer.append(genDataType.getClassifierInstanceName());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genDataType.getRawImportedInstanceClassName());
-    stringBuffer.append(TEXT_254);
+    stringBuffer.append(TEXT_257);
     stringBuffer.append(genDataType.getName());
-    stringBuffer.append(TEXT_234);
+    stringBuffer.append(TEXT_237);
     stringBuffer.append(genDataType.getSerializableFlag());
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(genDataType.getGeneratedInstanceClassFlag());
     if (hasInstanceTypeName) {
-    stringBuffer.append(TEXT_213);
+    stringBuffer.append(TEXT_216);
     stringBuffer.append(genDataType.getEcoreDataType().getInstanceTypeName());
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_238);
     }
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     stringBuffer.append(genModel.getNonNLS());
     if (hasInstanceTypeName) {
     stringBuffer.append(genModel.getNonNLS(2));
@@ -1922,331 +1940,331 @@
     }
     }
     if (genPackage.getSuperGenPackage() == null) {
-    stringBuffer.append(TEXT_258);
+    stringBuffer.append(TEXT_261);
     stringBuffer.append(genPackage.getSchemaLocation());
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     }
     if (!genPackage.isEcorePackage() && !genPackage.getAnnotationSources().isEmpty()) {
-    stringBuffer.append(TEXT_259);
-    for (String annotationSource : genPackage.getAnnotationSources()) {
-    stringBuffer.append(TEXT_260);
-    stringBuffer.append(annotationSource);
-    stringBuffer.append(TEXT_196);
-    stringBuffer.append(genPackage.getAnnotationSourceIdentifier(annotationSource));
-    stringBuffer.append(TEXT_261);
-    }
-    }
     stringBuffer.append(TEXT_262);
     for (String annotationSource : genPackage.getAnnotationSources()) {
     stringBuffer.append(TEXT_263);
     stringBuffer.append(annotationSource);
-    stringBuffer.append(TEXT_264);
+    stringBuffer.append(TEXT_199);
     stringBuffer.append(genPackage.getAnnotationSourceIdentifier(annotationSource));
+    stringBuffer.append(TEXT_264);
+    }
+    }
     stringBuffer.append(TEXT_265);
-    if (annotationSource == null) {
+    for (String annotationSource : genPackage.getAnnotationSources()) {
     stringBuffer.append(TEXT_266);
+    stringBuffer.append(annotationSource);
+    stringBuffer.append(TEXT_267);
+    stringBuffer.append(genPackage.getAnnotationSourceIdentifier(annotationSource));
+    stringBuffer.append(TEXT_268);
+    if (annotationSource == null) {
+    stringBuffer.append(TEXT_269);
     } else {
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_238);
     stringBuffer.append(annotationSource);
     stringBuffer.append(TEXT_30);
     stringBuffer.append(genModel.getNonNLS());
     }
     for (EAnnotation eAnnotation : genPackage.getAllAnnotations()) { List<GenPackage.AnnotationReferenceData> annotationReferenceDataList = genPackage.getReferenceData(eAnnotation);
     if (annotationSource == null ? eAnnotation.getSource() == null : annotationSource.equals(eAnnotation.getSource())) {
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_270);
     stringBuffer.append(genPackage.getAnnotatedModelElementAccessor(eAnnotation));
-    stringBuffer.append(TEXT_268);
+    stringBuffer.append(TEXT_271);
     for (Iterator<Map.Entry<String, String>> k = eAnnotation.getDetails().iterator(); k.hasNext();) { Map.Entry<String, String> detail = k.next(); String key = Literals.toStringLiteral(detail.getKey(), genModel); String value = Literals.toStringLiteral(detail.getValue(), genModel);
-    stringBuffer.append(TEXT_269);
+    stringBuffer.append(TEXT_272);
     stringBuffer.append(key);
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(value);
     stringBuffer.append(k.hasNext() ? "," : "");
     stringBuffer.append(genModel.getNonNLS(key + value));
     }
-    stringBuffer.append(TEXT_270);
+    stringBuffer.append(TEXT_273);
     if (annotationReferenceDataList.isEmpty()) {
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     } else {
-    stringBuffer.append(TEXT_271);
+    stringBuffer.append(TEXT_274);
     }
     if (!annotationReferenceDataList.isEmpty()) {
-    stringBuffer.append(TEXT_272);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
-    stringBuffer.append(TEXT_273);
-    for (Iterator<GenPackage.AnnotationReferenceData> k = annotationReferenceDataList.iterator(); k.hasNext();) { GenPackage.AnnotationReferenceData annotationReferenceData = k.next();
-    stringBuffer.append(TEXT_274);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
     stringBuffer.append(TEXT_275);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
+    stringBuffer.append(TEXT_276);
+    for (Iterator<GenPackage.AnnotationReferenceData> k = annotationReferenceDataList.iterator(); k.hasNext();) { GenPackage.AnnotationReferenceData annotationReferenceData = k.next();
+    stringBuffer.append(TEXT_277);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
+    stringBuffer.append(TEXT_278);
     if (annotationReferenceData.containingGenPackage != genPackage) {
     stringBuffer.append(annotationReferenceData.containingGenPackage.getImportedPackageInterfaceName());
-    stringBuffer.append(TEXT_220);
+    stringBuffer.append(TEXT_223);
     }
-    stringBuffer.append(TEXT_276);
+    stringBuffer.append(TEXT_279);
     stringBuffer.append(annotationReferenceData.uriFragment);
-    stringBuffer.append(TEXT_277);
+    stringBuffer.append(TEXT_280);
     if (k.hasNext()) {
-    stringBuffer.append(TEXT_271);
+    stringBuffer.append(TEXT_274);
     }
     stringBuffer.append(genModel.getNonNLS());
     }
-    stringBuffer.append(TEXT_278);
+    stringBuffer.append(TEXT_281);
     }
     for (EAnnotation nestedEAnnotation : genPackage.getAllNestedAnnotations(eAnnotation)) {String nestedAnnotationSource = nestedEAnnotation.getSource();  int depth = 0; boolean nonContentAnnotation = false; StringBuilder path = new StringBuilder();  for (EObject eContainer = nestedEAnnotation.eContainer(), child = nestedEAnnotation; child != eAnnotation; child = eContainer, eContainer = eContainer.eContainer())  {  boolean nonContentChild = child.eContainmentFeature() != EcorePackage.Literals.EANNOTATION__CONTENTS; if (path.length() != 0) { path.insert(0, ", ");  } path.insert(0, nonContentChild); if (nonContentChild) { nonContentAnnotation = true; } ++depth;  } List<GenPackage.AnnotationReferenceData> nestedAnnotationReferenceDataList = genPackage.getReferenceData(nestedEAnnotation);
-    stringBuffer.append(TEXT_267);
+    stringBuffer.append(TEXT_270);
     stringBuffer.append(genPackage.getAnnotatedModelElementAccessor(eAnnotation));
-    stringBuffer.append(TEXT_279);
+    stringBuffer.append(TEXT_282);
     if (nonContentAnnotation && genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF210_VALUE) {
-    stringBuffer.append(TEXT_280);
+    stringBuffer.append(TEXT_283);
     stringBuffer.append(path.toString());
-    stringBuffer.append(TEXT_281);
+    stringBuffer.append(TEXT_284);
     } else {
     stringBuffer.append(depth);
     }
-    stringBuffer.append(TEXT_279);
-    if (nestedAnnotationSource == null) {
     stringBuffer.append(TEXT_282);
+    if (nestedAnnotationSource == null) {
+    stringBuffer.append(TEXT_285);
     } else {
-    stringBuffer.append(TEXT_235);
+    stringBuffer.append(TEXT_238);
     stringBuffer.append(nestedAnnotationSource);
-    stringBuffer.append(TEXT_283);
+    stringBuffer.append(TEXT_286);
     stringBuffer.append(genModel.getNonNLS());
     }
-    stringBuffer.append(TEXT_284);
+    stringBuffer.append(TEXT_287);
     for (Iterator<Map.Entry<String, String>> l = nestedEAnnotation.getDetails().iterator(); l.hasNext();) { Map.Entry<String, String> detail = l.next(); String key = Literals.toStringLiteral(detail.getKey(), genModel); String value = Literals.toStringLiteral(detail.getValue(), genModel);
-    stringBuffer.append(TEXT_269);
+    stringBuffer.append(TEXT_272);
     stringBuffer.append(key);
-    stringBuffer.append(TEXT_197);
+    stringBuffer.append(TEXT_200);
     stringBuffer.append(value);
     stringBuffer.append(l.hasNext() ? "," : "");
     stringBuffer.append(genModel.getNonNLS(key + value));
     }
-    stringBuffer.append(TEXT_270);
+    stringBuffer.append(TEXT_273);
     if (nestedAnnotationReferenceDataList.isEmpty()) {
-    stringBuffer.append(TEXT_174);
+    stringBuffer.append(TEXT_177);
     } else {
-    stringBuffer.append(TEXT_271);
+    stringBuffer.append(TEXT_274);
     }
     if (!nestedAnnotationReferenceDataList.isEmpty()) {
-    stringBuffer.append(TEXT_272);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
-    stringBuffer.append(TEXT_273);
-    for (Iterator<GenPackage.AnnotationReferenceData> l = nestedAnnotationReferenceDataList.iterator(); l.hasNext();) { GenPackage.AnnotationReferenceData annotationReferenceData = l.next();
-    stringBuffer.append(TEXT_274);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
     stringBuffer.append(TEXT_275);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
+    stringBuffer.append(TEXT_276);
+    for (Iterator<GenPackage.AnnotationReferenceData> l = nestedAnnotationReferenceDataList.iterator(); l.hasNext();) { GenPackage.AnnotationReferenceData annotationReferenceData = l.next();
+    stringBuffer.append(TEXT_277);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
+    stringBuffer.append(TEXT_278);
     if (annotationReferenceData.containingGenPackage != genPackage) {
     stringBuffer.append(annotationReferenceData.containingGenPackage.getImportedPackageInterfaceName());
-    stringBuffer.append(TEXT_220);
+    stringBuffer.append(TEXT_223);
     }
-    stringBuffer.append(TEXT_276);
+    stringBuffer.append(TEXT_279);
     stringBuffer.append(annotationReferenceData.uriFragment);
-    stringBuffer.append(TEXT_277);
+    stringBuffer.append(TEXT_280);
     if (l.hasNext()) {
-    stringBuffer.append(TEXT_271);
+    stringBuffer.append(TEXT_274);
     }
     stringBuffer.append(genModel.getNonNLS());
     }
-    stringBuffer.append(TEXT_278);
+    stringBuffer.append(TEXT_281);
     }
     }
     }
     }
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_265);
     }
     } else {
     if (genPackage.isLoadingInitialization()) {
-    stringBuffer.append(TEXT_285);
-    stringBuffer.append(genModel.getImportedName("java.net.URL"));
-    stringBuffer.append(TEXT_286);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_287);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
     stringBuffer.append(TEXT_288);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
+    stringBuffer.append(genModel.getImportedName("java.net.URL"));
     stringBuffer.append(TEXT_289);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.resource.Resource"));
+    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_290);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
     stringBuffer.append(TEXT_291);
-    stringBuffer.append(genModel.getImportedName("java.io.IOException"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.URI"));
     stringBuffer.append(TEXT_292);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.WrappedException"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.resource.Resource"));
     stringBuffer.append(TEXT_293);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EPackage"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl"));
     stringBuffer.append(TEXT_294);
-    }
+    stringBuffer.append(genModel.getImportedName("java.io.IOException"));
     stringBuffer.append(TEXT_295);
-    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.WrappedException"));
     stringBuffer.append(TEXT_296);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EPackage"));
     stringBuffer.append(TEXT_297);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClassifier"));
+    }
     stringBuffer.append(TEXT_298);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_158);
+    }
+    stringBuffer.append(TEXT_299);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClassifier"));
+    stringBuffer.append(TEXT_300);
     ArrayList<GenClass> dynamicGenClasses = new ArrayList<GenClass>(); for (GenClass genClass : genPackage.getGenClasses()) { if (genClass.isDynamic()) { dynamicGenClasses.add(genClass); } }
     if (dynamicGenClasses.isEmpty()) {
-    stringBuffer.append(TEXT_299);
-    stringBuffer.append(genPackage.getInterfacePackageName());
-    stringBuffer.append(TEXT_300);
-    stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(TEXT_301);
-    } else {
+    stringBuffer.append(genPackage.getInterfacePackageName());
     stringBuffer.append(TEXT_302);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_303);
+    } else {
+    stringBuffer.append(TEXT_304);
     for (GenClass genClass : dynamicGenClasses) {
     if (genClass.isDynamic()) {
-    stringBuffer.append(TEXT_303);
-    stringBuffer.append(genPackage.getClassifierID(genClass));
-    stringBuffer.append(TEXT_304);
-    }
-    }
     stringBuffer.append(TEXT_305);
-    stringBuffer.append(genPackage.getInterfacePackageName());
-    stringBuffer.append(TEXT_300);
-    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(genPackage.getClassifierID(genClass));
     stringBuffer.append(TEXT_306);
     }
+    }
     stringBuffer.append(TEXT_307);
+    stringBuffer.append(genPackage.getInterfacePackageName());
+    stringBuffer.append(TEXT_302);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_308);
+    }
+    stringBuffer.append(TEXT_309);
     }
     if (needsAddEOperation) {
-    stringBuffer.append(TEXT_308);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EOperation"));
-    stringBuffer.append(TEXT_309);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
     stringBuffer.append(TEXT_310);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClassifier"));
-    stringBuffer.append(TEXT_311);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EOperation"));
+    stringBuffer.append(TEXT_311);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
     stringBuffer.append(TEXT_312);
-    }
-    if (needsAddEParameter) {
-    stringBuffer.append(TEXT_308);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EParameter"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClassifier"));
     stringBuffer.append(TEXT_313);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EOperation"));
-    stringBuffer.append(TEXT_310);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClassifier"));
-    stringBuffer.append(TEXT_311);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EParameter"));
     stringBuffer.append(TEXT_314);
     }
+    if (needsAddEParameter) {
+    stringBuffer.append(TEXT_310);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EParameter"));
+    stringBuffer.append(TEXT_315);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EOperation"));
+    stringBuffer.append(TEXT_312);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClassifier"));
+    stringBuffer.append(TEXT_313);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EParameter"));
+    stringBuffer.append(TEXT_316);
+    }
     }
     if (isInterface && genPackage.isLiteralsInterface()) {
-    stringBuffer.append(TEXT_315);
-    if (genModel.isOperationReflection()) {
-    stringBuffer.append(TEXT_316);
-    }
     stringBuffer.append(TEXT_317);
-    if (isImplementation) {
+    if (genModel.isOperationReflection()) {
     stringBuffer.append(TEXT_318);
     }
     stringBuffer.append(TEXT_319);
-    for (GenClassifier genClassifier : genPackage.getGenClassifiers()) {
+    if (isImplementation) {
     stringBuffer.append(TEXT_320);
+    }
+    stringBuffer.append(TEXT_321);
+    for (GenClassifier genClassifier : genPackage.getGenClassifiers()) {
+    stringBuffer.append(TEXT_322);
     if (genClassifier instanceof GenClass) { GenClass genClass = (GenClass)genClassifier;
     if (!genClass.isInterface()) {
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_323);
     stringBuffer.append(genClass.getQualifiedClassName());
     stringBuffer.append(TEXT_42);
     stringBuffer.append(genClass.getFormattedName());
-    stringBuffer.append(TEXT_322);
+    stringBuffer.append(TEXT_324);
     stringBuffer.append(genClass.getQualifiedClassName());
     } else {
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_323);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
     stringBuffer.append(TEXT_42);
     stringBuffer.append(genClass.getFormattedName());
-    stringBuffer.append(TEXT_322);
+    stringBuffer.append(TEXT_324);
     stringBuffer.append(genClass.getRawQualifiedInterfaceName());
     }
     } else if (genClassifier instanceof GenEnum) { GenEnum genEnum = (GenEnum)genClassifier;
-    stringBuffer.append(TEXT_321);
+    stringBuffer.append(TEXT_323);
     stringBuffer.append(genEnum.getQualifiedName());
     stringBuffer.append(TEXT_42);
     stringBuffer.append(genEnum.getFormattedName());
-    stringBuffer.append(TEXT_323);
+    stringBuffer.append(TEXT_325);
     stringBuffer.append(genEnum.getQualifiedName());
     } else if (genClassifier instanceof GenDataType) { GenDataType genDataType = (GenDataType)genClassifier;
-    stringBuffer.append(TEXT_324);
-    stringBuffer.append(genDataType.getFormattedName());
-    stringBuffer.append(TEXT_325);
-    if (!genDataType.isPrimitiveType() && !genDataType.isArrayType()) {
     stringBuffer.append(TEXT_326);
+    stringBuffer.append(genDataType.getFormattedName());
+    stringBuffer.append(TEXT_327);
+    if (!genDataType.isPrimitiveType() && !genDataType.isArrayType()) {
+    stringBuffer.append(TEXT_328);
     stringBuffer.append(genDataType.getRawInstanceClassName());
     }
     }
-    stringBuffer.append(TEXT_326);
+    stringBuffer.append(TEXT_328);
     stringBuffer.append(genPackage.getQualifiedPackageClassName());
     stringBuffer.append(TEXT_48);
     stringBuffer.append(genClassifier.getClassifierAccessorName());
     stringBuffer.append(TEXT_49);
     if (genClassifier.hasAPITags()) {
-    stringBuffer.append(TEXT_327);
+    stringBuffer.append(TEXT_329);
     stringBuffer.append(genClassifier.getAPITags(genModel.getIndentation(stringBuffer)));
     }
-    stringBuffer.append(TEXT_328);
+    stringBuffer.append(TEXT_330);
     if (isJDK50 && genClassifier.hasAPIDeprecatedTag()) {
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_331);
     }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(publicStaticFinalFlag);
     stringBuffer.append(genClassifier.getImportedMetaType());
     stringBuffer.append(TEXT_69);
     stringBuffer.append(genPackage.getClassifierID(genClassifier));
-    stringBuffer.append(TEXT_330);
+    stringBuffer.append(TEXT_332);
     stringBuffer.append(genClassifier.getClassifierAccessorName());
-    stringBuffer.append(TEXT_165);
+    stringBuffer.append(TEXT_168);
     if (genClassifier instanceof GenClass) { GenClass genClass = (GenClass)genClassifier;
     for (GenFeature genFeature : genClass.getGenFeatures()) {
-    stringBuffer.append(TEXT_331);
+    stringBuffer.append(TEXT_333);
     stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_58);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_332);
+    stringBuffer.append(TEXT_334);
     if (genFeature.hasImplicitAPITags()) {
-    stringBuffer.append(TEXT_327);
+    stringBuffer.append(TEXT_329);
     stringBuffer.append(genFeature.getImplicitAPITags(genModel.getIndentation(stringBuffer)));
     }
-    stringBuffer.append(TEXT_328);
+    stringBuffer.append(TEXT_330);
     if (isJDK50 && genFeature.hasImplicitAPIDeprecatedTag()) {
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_331);
     }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(publicStaticFinalFlag);
     stringBuffer.append(genFeature.getImportedMetaType());
     stringBuffer.append(TEXT_69);
     stringBuffer.append(genClass.getFeatureID(genFeature));
-    stringBuffer.append(TEXT_330);
+    stringBuffer.append(TEXT_332);
     stringBuffer.append(genFeature.getFeatureAccessorName());
-    stringBuffer.append(TEXT_165);
+    stringBuffer.append(TEXT_168);
     }
     if (genModel.isOperationReflection()) {
     for (GenOperation genOperation : genClass.getGenOperations()) {
-    stringBuffer.append(TEXT_331);
-    stringBuffer.append(genOperation.getFormattedName());
     stringBuffer.append(TEXT_333);
+    stringBuffer.append(genOperation.getFormattedName());
+    stringBuffer.append(TEXT_335);
     if (genOperation.hasImplicitAPITags()) {
-    stringBuffer.append(TEXT_327);
+    stringBuffer.append(TEXT_329);
     stringBuffer.append(genOperation.getImplicitAPITags(genModel.getIndentation(stringBuffer)));
     }
-    stringBuffer.append(TEXT_328);
+    stringBuffer.append(TEXT_330);
     if (isJDK50 && genOperation.hasImplicitAPIDeprecatedTag()) {
-    stringBuffer.append(TEXT_329);
+    stringBuffer.append(TEXT_331);
     }
     stringBuffer.append(TEXT_93);
     stringBuffer.append(publicStaticFinalFlag);
     stringBuffer.append(genOperation.getImportedMetaType());
     stringBuffer.append(TEXT_69);
     stringBuffer.append(genClass.getOperationID(genOperation, false));
-    stringBuffer.append(TEXT_330);
+    stringBuffer.append(TEXT_332);
     stringBuffer.append(genOperation.getOperationAccessorName());
-    stringBuffer.append(TEXT_165);
+    stringBuffer.append(TEXT_168);
     }
     }
     }
     }
-    stringBuffer.append(TEXT_262);
+    stringBuffer.append(TEXT_265);
     }
-    stringBuffer.append(TEXT_334);
+    stringBuffer.append(TEXT_336);
     stringBuffer.append(isInterface ? genPackage.getPackageInterfaceName() : genPackage.getPackageClassName());
     genModel.emitSortedImports();
     stringBuffer.append(TEXT_7);
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/edit/ItemProviderAdapterFactory.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/edit/ItemProviderAdapterFactory.javajet
index 677315e..0fd1d73 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/edit/ItemProviderAdapterFactory.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/edit/ItemProviderAdapterFactory.javajet
@@ -247,6 +247,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+	@Override
+<%}%>
 	public ComposeableAdapterFactory getRootAdapterFactory()
 	{
 		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
@@ -258,6 +261,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+	@Override
+<%}%>
 	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)
 	{
 		this.parentAdapterFactory = parentAdapterFactory;
@@ -370,6 +376,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+	@Override
+<%}%>
 	public void addListener(INotifyChangedListener notifyChangedListener)
 	{
 		changeNotifier.addListener(notifyChangedListener);
@@ -381,6 +390,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+	@Override
+<%}%>
 	public void removeListener(INotifyChangedListener notifyChangedListener)
 	{
 		changeNotifier.removeListener(notifyChangedListener);
@@ -392,6 +404,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+	@Override
+<%}%>
 	public void fireNotifyChanged(Notification notification)
 	{
 		changeNotifier.fireNotifyChanged(notification);
@@ -409,6 +424,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+	@Override
+<%}%>
 	public void dispose()
 	{
 <%if (genPackage.hasStatefulProvider()) {%>
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/ActionBarContributor.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/ActionBarContributor.javajet
index 393f375..e9b87b8 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/ActionBarContributor.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/ActionBarContributor.javajet
@@ -82,6 +82,9 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+		@Override
+<%}%>
 		public void run(<%=genModel.getImportedName("org.eclipse.jface.action.IAction")%> action)
 		{
 			<%=genPackage.getModelWizardClassName()%> wizard = new <%=genPackage.getModelWizardClassName()%>();
@@ -305,6 +308,9 @@
 		submenuManager.addMenuListener
 			(new <%=genModel.getImportedName("org.eclipse.jface.action.IMenuListener")%>()
 			 {
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+				 @Override
+<%}%>
 				 public void menuAboutToShow(<%=genModel.getImportedName("org.eclipse.jface.action.IMenuManager")%> menuManager)
 				 {
 					 menuManager.updateAll(true);
@@ -365,6 +371,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public void selectionChanged(<%=genModel.getImportedName("org.eclipse.jface.viewers.SelectionChangedEvent")%> event)
 	{
 <%if (genModel.isCreationCommands()) {%>
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/Advisor.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/Advisor.javajet
index 4f515a5..34f90a8 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/Advisor.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/Advisor.javajet
@@ -173,6 +173,9 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+		@Override
+<%}%>
 		public Object start(IApplicationContext context) throws Exception
 		{
 			WorkbenchAdvisor workbenchAdvisor = new <%=genModel.getEditorAdvisorClassName()%>();
@@ -201,6 +204,9 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+		@Override
+<%}%>
 		public void stop()
 		{
 			// Do nothing.
@@ -229,6 +235,9 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+		@Override
+<%}%>
 		public void createInitialLayout(IPageLayout layout)
 		{
 			layout.setEditorAreaVisible(true);
@@ -463,6 +472,9 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+		@Override
+<%}%>
 		public void run(IAction action)
 		{
 			MessageDialog.openInformation(getWindow().getShell(), getString("_UI_About_title"),<%=genModel.getNonNLS()%>
@@ -485,6 +497,9 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+		@Override
+<%}%>
 		public void run(IAction action)
 		{
 			String[] filePaths = openFilePathDialog(getWindow().getShell(), SWT.OPEN, null);
@@ -510,6 +525,9 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
+<%if (genModel.useInterfaceOverrideAnnotation()){%>
+		@Override
+<%}%>
 		public void run(IAction action)
 		{
 			LoadResourceAction.LoadResourceDialog loadResourceDialog = new LoadResourceAction.LoadResourceDialog(getWindow().getShell());
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/Editor.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/Editor.javajet
index 8d84953..d434e12 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/Editor.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/Editor.javajet
@@ -197,9 +197,7 @@
 <%}%>
 
 import org.eclipse.emf.ecore.resource.Resource;
-<%if (!genModel.isRichClientPlatform()) {%>
 import org.eclipse.emf.ecore.resource.ResourceSet;
-<%}%>
 
 import org.eclipse.emf.ecore.util.EContentAdapter;
 import org.eclipse.emf.ecore.util.EcoreUtil;
@@ -462,6 +460,9 @@
 	protected IPartListener partListener =
 		new IPartListener()
 		{
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+			@Override
+<%}%>
 			public void partActivated(IWorkbenchPart p)
 			{
 				if (p instanceof ContentOutline)
@@ -486,18 +487,30 @@
 					handleActivate();
 				}
 			}
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+			@Override
+<%}%>
 			public void partBroughtToTop(IWorkbenchPart p)
 			{
 				// Ignore.
 			}
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+			@Override
+<%}%>
 			public void partClosed(IWorkbenchPart p)
 			{
 				// Ignore.
 			}
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+			@Override
+<%}%>
 			public void partDeactivated(IWorkbenchPart p)
 			{
 				// Ignore.
 			}
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+			@Override
+<%}%>
 			public void partOpened(IWorkbenchPart p)
 			{
 				// Ignore.
@@ -597,6 +610,9 @@
 					getSite().getShell().getDisplay().asyncExec
 						(new Runnable()
 						 {
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+							 @Override
+<%}%>
 							 public void run()
 							 {
 								 dispatching = false;
@@ -635,6 +651,9 @@
 	protected IResourceChangeListener resourceChangeListener =
 		new IResourceChangeListener()
 		{
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+			@Override
+<%}%>
 			public void resourceChanged(IResourceChangeEvent event)
 			{
 				IResourceDelta delta = event.getDelta();
@@ -646,6 +665,9 @@
 						protected <%=_CollectionOfResource%> changedResources = new <%=_ArrayListOfResource%>();
 						protected <%=_CollectionOfResource%> removedResources = new <%=_ArrayListOfResource%>();
 
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+						@Override
+<%}%>
 						public boolean visit(<%if (genModel.getDecoration() != GenDecoration.NONE) {%>final <%}%>IResourceDelta delta)
 						{
 							if (delta.getResource().getType() == IResource.FILE)
@@ -708,6 +730,9 @@
 						getSite().getShell().getDisplay().asyncExec
 							(new Runnable()
 							 {
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+								 @Override
+<%}%>
 								 public void run()
 								 {
 									 removedResources.addAll(visitor.getRemovedResources());
@@ -724,6 +749,9 @@
 						getSite().getShell().getDisplay().asyncExec
 							(new Runnable()
 							 {
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+								 @Override
+<%}%>
 								 public void run()
 								 {
 									 changedResources.addAll(visitor.getChangedResources());
@@ -1017,11 +1045,17 @@
 		commandStack.addCommandStackListener
 			(new CommandStackListener()
 			 {
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+				 @Override
+<%}%>
 				 public void commandStackChanged(final EventObject event)
 				 {
 					 getContainer().getDisplay().asyncExec
 						 (new Runnable()
 						  {
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+							  @Override
+<%}%>
 							  public void run()
 							  {
 								  firePropertyChange(IEditorPart.PROP_DIRTY);
@@ -1085,6 +1119,9 @@
 			Runnable runnable =
 				new Runnable()
 				{
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+					@Override
+<%}%>
 					public void run()
 					{
 						// Try to select the items in the current content viewer of the editor.
@@ -1107,6 +1144,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public EditingDomain getEditingDomain()
 	{
 		return editingDomain;
@@ -1227,6 +1267,9 @@
 					{
 						// This just notifies those things that are affected by the section.
 						//
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+						@Override
+<%}%>
 						public void selectionChanged(SelectionChangedEvent selectionChangedEvent)
 						{
 							setSelection(selectionChangedEvent.getSelection());
@@ -1264,6 +1307,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public Viewer getViewer()
 	{
 		return currentViewer;
@@ -1676,6 +1722,9 @@
 			getSite().getShell().getDisplay().asyncExec
 				(new Runnable()
 				 {
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+					 @Override
+<%}%>
 					 public void run()
 					 {
 						 if (!getContainer().isDisposed())
@@ -1710,6 +1759,9 @@
 		getSite().getShell().getDisplay().asyncExec
 			(new Runnable()
 			 {
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+				 @Override
+<%}%>
 				 public void run()
 				 {
 					 updateProblemIndication();
@@ -1908,6 +1960,9 @@
 				 {
 					 // This ensures that we handle selections correctly.
 					 //
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+					 @Override
+<%}%>
 					 public void selectionChanged(SelectionChangedEvent event)
 					 {
 						 handleContentOutlineSelection(event.getSelection());
@@ -2037,6 +2092,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useClassOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public void doRevert()
 	{
 <%if (genModel.getDecoration() == GenDecoration.LIVE) {%>
@@ -2120,7 +2178,7 @@
 			{
 				// This is the method that gets invoked when the operation runs.
 				//
-<%if (!genModel.isRichClientPlatform() && genModel.useClassOverrideAnnotation()) {%>
+<%if (genModel.useInterfaceOverrideAnnotation() || !genModel.isRichClientPlatform() && genModel.useClassOverrideAnnotation()) {%>
 				@Override
 <%}%>
 				public void <%=operationMethodName%>(IProgressMonitor monitor)
@@ -2308,6 +2366,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public void gotoMarker(IMarker marker)
 	{
 <%if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF23_VALUE) {%>
@@ -2392,6 +2453,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public void addSelectionChangedListener(ISelectionChangedListener listener)
 	{
 		selectionChangedListeners.add(listener);
@@ -2403,6 +2467,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public void removeSelectionChangedListener(ISelectionChangedListener listener)
 	{
 		selectionChangedListeners.remove(listener);
@@ -2414,6 +2481,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public ISelection getSelection()
 	{
 		return editorSelection;
@@ -2426,6 +2496,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public void setSelection(ISelection selection)
 	{
 		editorSelection = selection;
@@ -2514,6 +2587,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public void menuAboutToShow(IMenuManager menuManager)
 	{
 		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/ModelWizard.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/ModelWizard.javajet
index 87f79c2..6b2d4f9 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/ModelWizard.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/ModelWizard.javajet
@@ -216,6 +216,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+<%}%>
 	public void init(IWorkbench workbench, IStructuredSelection selection)
 	{
 		this.workbench = workbench;
@@ -340,6 +343,9 @@
 			//
 			<%=genModel.getImportedName("org.eclipse.jface.operation.IRunnableWithProgress")%> operation = new <%=genModel.getImportedName("org.eclipse.jface.operation.IRunnableWithProgress")%>()
 			{
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+				@Override
+<%}%>
 				public void run(IProgressMonitor progressMonitor)
 <%} else {%>
 			// Remember the file.
@@ -414,6 +420,9 @@
 				getShell().getDisplay().asyncExec
 					(new Runnable()
 					 {
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+						 @Override
+<%}%>
 						 public void run()
 						 {
 							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
@@ -559,6 +568,9 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+		@Override
+<%}%>
 		public void createControl(Composite parent)
 		{
 			Composite composite = new Composite(parent, SWT.NONE);
@@ -710,6 +722,9 @@
 		protected ModifyListener validator =
 			new ModifyListener()
 			{
+<%if (genModel.useInterfaceOverrideAnnotation()) {%>
+				@Override
+<%}%>
 				public void modifyText(ModifyEvent e)
 				{
 					setPageComplete(validatePage());
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/manifest.mfjet b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/manifest.mfjet
index 45cc635..df3ad1b 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/editor/manifest.mfjet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/editor/manifest.mfjet
@@ -61,6 +61,8 @@
  org.eclipse.jface.action,
  org.eclipse.jface.dialogs,
  org.eclipse.jface.operation,
+ org.eclipse.jface.text,
+ org.eclipse.jface.util,
  org.eclipse.jface.viewers,
  org.eclipse.jface.window,
  org.eclipse.jface.wizard,
@@ -75,6 +77,7 @@
  org.eclipse.ui.actions;ui.workbench="split",
  org.eclipse.ui.application,
  org.eclipse.ui.part;ui.workbench="split",
+ org.eclipse.ui.plugin,
  org.eclipse.ui.views,
  org.eclipse.ui.views.contentoutline,
  org.eclipse.ui.views.properties;ui.views="split"
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/model/Class.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/model/Class.javajet
index c3851d0..0c56219 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/model/Class.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/model/Class.javajet
@@ -13,7 +13,7 @@
 %>
 <%final GenClass genClass = (GenClass)((Object[])argument)[0]; final GenPackage genPackage = genClass.getGenPackage(); final GenModel genModel=genPackage.getGenModel();%>
 <%final boolean isJDK50 = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50;%>
-<%final boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); final boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);%>
+<%final boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); final boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]); final boolean useInterfaceOverrideAnnotation = genModel.useInterfaceOverrideAnnotation() && !(isInterface && isImplementation);%>
 <%final boolean isGWT = genModel.getRuntimePlatform() == GenRuntimePlatform.GWT;%>
 <%final String publicStaticFinalFlag = isImplementation ? "public static final " : "";%>
 <%final String singleWildcard = isJDK50 ? "<?>" : "";%>
@@ -569,7 +569,7 @@
     <%if (isJDK50 && genFeature.hasAPIDeprecatedTag()) {%>
 	@Deprecated
     <%}%>
-    <%if (classExtendsAllGenFeatures.contains(genFeature)) {%>
+    <%if (useInterfaceOverrideAnnotation || classExtendsAllGenFeatures.contains(genFeature)) {%>
 	@Override
     <%}%>
 	public <%=arrayElementType%>[] <%=genFeature.getGetArrayAccessor()%>()
@@ -605,7 +605,7 @@
     <%if (isJDK50 && genFeature.hasAPIDeprecatedTag()) {%>
 	@Deprecated
     <%}%>
-    <%if (classExtendsAllGenFeatures.contains(genFeature)) {%>
+    <%if (useInterfaceOverrideAnnotation || classExtendsAllGenFeatures.contains(genFeature)) {%>
 	@Override
     <%}%>
 	public <%=genFeature.getImportedType(genClass)%> <%=genFeature.getGetAccessor()%><%if (genClass.hasCollidingGetAccessorOperation(genFeature)) {%>_<%}%>()
@@ -703,6 +703,9 @@
     <%if (isJDK50 && genFeature.hasAPIDeprecatedTag()) {%>
 	@Deprecated
     <%}%>
+    <%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+    <%}%>
 	public <%=arrayElementType%>[] <%=genFeature.getGetArrayAccessor()%>()
 	{
       <%if (genFeature.isVolatile()) {%>
@@ -732,6 +735,9 @@
 	<%=genFeature.getListItemType(genClass)%> get<%=genFeature.getAccessorName()%>(int index);
 
     <%} else {%>
+    <%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+    <%}%>
 	public <%=genFeature.getListItemType(genClass)%> get<%=genFeature.getAccessorName()%>(int index)
 	{
 		return <%if (!genModel.useGenerics()) {%>(<%=genFeature.getListItemType(genClass)%>)<%}%><%=genFeature.getGetAccessor()%>().get(index);
@@ -753,6 +759,9 @@
 	int get<%=genFeature.getAccessorName()%>Length();
 
     <%} else {%>
+    <%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+    <%}%>
 	public int get<%=genFeature.getAccessorName()%>Length()
 	{
       <%if (genFeature.isVolatile()) {%>
@@ -778,6 +787,9 @@
 	void set<%=genFeature.getAccessorName()%>(<%=genFeature.getListItemType(genClass)%>[] new<%=genFeature.getCapName()%>);
 
     <%} else {%>
+    <%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+    <%}%>
 	public void set<%=genFeature.getAccessorName()%>(<%=genFeature.getListItemType(genClass)%>[] new<%=genFeature.getCapName()%>)
 	{
 		((<%=genModel.getImportedName("org.eclipse.emf.common.util.BasicEList")%><%=genFeature.getListTemplateArguments(genClass)%>)<%=genFeature.getGetAccessor()%>()).setData(new<%=genFeature.getCapName()%>.length, new<%=genFeature.getCapName()%>);
@@ -799,6 +811,9 @@
 	void set<%=genFeature.getAccessorName()%>(int index, <%=genFeature.getListItemType(genClass)%> element);
 
     <%} else {%>
+    <%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+    <%}%>
 	public void set<%=genFeature.getAccessorName()%>(int index, <%=genFeature.getListItemType(genClass)%> element)
 	{
 		<%=genFeature.getGetAccessor()%>().set(index, element);
@@ -905,6 +920,9 @@
   <%if (genModel.useGenerics() && ((genFeature.isContainer() || genFeature.isResolveProxies()) && !genFeature.isListType() && genFeature.isUncheckedCast(genClass) || genFeature.isListType() && !genFeature.isFeatureMapType() && (genModel.isReflectiveDelegation() || genModel.isVirtualDelegation() || (genModel.isDynamicDelegation() && !genFeature.isVolatile())) || genFeature.isListDataType() && genFeature.hasDelegateFeature() || genFeature.isListType() && genFeature.hasSettingDelegate())) {%>
 	@SuppressWarnings("unchecked")
   <%}%>
+  <%if (useInterfaceOverrideAnnotation && !genClass.hasCollidingGetAccessorOperation(genFeature) && !genFeature.isSuppressedGetVisibility()) {%>
+	@Override
+  <%}%>
 	public <%=genFeature.getImportedType(genClass)%> <%=genFeature.getGetAccessor()%><%if (genClass.hasCollidingGetAccessorOperation(genFeature)) {%>_<%}%>()
 	{
 <%@ include file="Class/getGenFeature.pre.insert.javajetinc" fail="silent" %>
@@ -1223,6 +1241,9 @@
 	void set<%=genFeature.getAccessorName()%>(<%=genFeature.getImportedType(genClass)%> value);
 
 <%} else { GenOperation setAccessorOperation = genClass.getSetAccessorOperation(genFeature);%>
+  <%if (useInterfaceOverrideAnnotation && !genClass.hasCollidingSetAccessorOperation(genFeature) && !genFeature.isSuppressedSetVisibility()) {%>
+	@Override
+  <%}%>
 	public void set<%=genFeature.getAccessorName()%><%if (genClass.hasCollidingSetAccessorOperation(genFeature)) {%>_<%}%>(<%=genFeature.getImportedType(genClass)%> <%=setAccessorOperation == null ? "new" + genFeature.getCapName() : setAccessorOperation.getGenParameters().get(0).getName()%>)
 	{
 <%@ include file="Class/setGenFeature.pre.insert.javajetinc" fail="silent" %>
@@ -1494,6 +1515,9 @@
 	void unset<%=genFeature.getAccessorName()%>();
 
 <%} else {%>
+  <%if (useInterfaceOverrideAnnotation && !genClass.hasCollidingUnsetAccessorOperation(genFeature) && !genFeature.isSuppressedUnsetVisibility()) {%>
+	@Override
+  <%}%>
 	public void unset<%=genFeature.getAccessorName()%><%if (genClass.hasCollidingUnsetAccessorOperation(genFeature)) {%>_<%}%>()
 	{
     <%if (genModel.isDynamicDelegation() && !genFeature.isVolatile()) {%>
@@ -1670,6 +1694,9 @@
 	boolean isSet<%=genFeature.getAccessorName()%>();
 
 <%} else {%>
+  <%if (useInterfaceOverrideAnnotation && !genClass.hasCollidingIsSetAccessorOperation(genFeature) && !genFeature.isSuppressedIsSetVisibility()) {%>
+	@Override
+  <%}%>
 	public boolean isSet<%=genFeature.getAccessorName()%><%if (genClass.hasCollidingIsSetAccessorOperation(genFeature)) {%>_<%}%>()
 	{
     <%if (genModel.isDynamicDelegation() && !genFeature.isVolatile()) {%>
@@ -1815,6 +1842,9 @@
   <%if (genModel.useGenerics() && !genOperation.hasBody() && !genOperation.isInvariant() && genOperation.hasInvocationDelegate() && genOperation.isUncheckedCast(genClass)) {%>
 	@SuppressWarnings("unchecked")
   <%}%>
+  <%if (useInterfaceOverrideAnnotation && !genOperation.isSuppressedVisibility()) {%>
+	@Override
+  <%}%>
 	public <%=genOperation.getTypeParameters(genClass)%><%=genOperation.getImportedType(genClass)%> <%=genOperation.getName()%>(<%=genOperation.getParameters(isImplementation, genClass)%>)<%=genOperation.getThrows(genClass)%>
 	{
   <%if (genOperation.hasBody()) {%>
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/model/EnumClass.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/model/EnumClass.javajet
index ba1d9d9..b0ffb04 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/model/EnumClass.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/model/EnumClass.javajet
@@ -266,6 +266,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+  <%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+  <%}%>
 	public int getValue()
 	{
 	  return value;
@@ -276,6 +279,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+  <%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+  <%}%>
 	public <%=genModel.getImportedName("java.lang.String")%> getName()
 	{
 	  return name;
@@ -286,6 +292,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+  <%if (genModel.useInterfaceOverrideAnnotation()) {%>
+	@Override
+  <%}%>
 	public <%=genModel.getImportedName("java.lang.String")%> getLiteral()
 	{
 	  return literal;
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/model/FactoryClass.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/model/FactoryClass.javajet
index 55b1679..5e7f18a 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/model/FactoryClass.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/model/FactoryClass.javajet
@@ -13,7 +13,7 @@
 %>
 <%GenPackage genPackage = (GenPackage)((Object[])argument)[0]; GenModel genModel=genPackage.getGenModel(); /* Trick to import java.util.* without warnings */Iterator.class.getName();%>
 <%final boolean isJDK50 = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50;%>
-<%boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);%>
+<%boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]); boolean useInterfaceOverrideAnnotation = genModel.useInterfaceOverrideAnnotation() && !(isInterface && isImplementation);%>
 <%String publicStaticFinalFlag = isImplementation ? "public static final " : "";%>
 <%@ include file="../Header.javajetinc"%>
 <%if (isInterface || genModel.isSuppressInterfaces()) {%>
@@ -225,6 +225,9 @@
 <%if (isJDK50 && genClass.hasAPIDeprecatedTag()) {%>
 	@Deprecated
 <%}%>
+<%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+<%}%>
 	public <%=genClass.getTypeParameters()%><%=genClass.getImportedInterfaceName()%><%=genClass.getInterfaceTypeArguments()%> create<%=genClass.getName()%>()
 	{
     <%if (genClass.isDynamic()) {%>
@@ -254,6 +257,9 @@
     <%if (isJDK50 && genDataType.hasAPIDeprecatedTag()) {%>
 	@Deprecated
     <%}%>
+  <%if (genPackage.isDataTypeConverters() && useInterfaceOverrideAnnotation) {%>
+	@Override
+  <%}%>
 	public <%=genDataType.getImportedParameterizedInstanceClassName()%> create<%=genDataType.getName()%>(<%if (genDataType.hasCreatorBody()) {%>final <%}%>String <%if (genDataType.hasCreatorBody()) {%>it<%} else {%>literal<%}%>)
 	{
     <%if (genDataType.hasCreatorBody()) {%>
@@ -463,6 +469,9 @@
   <%if (isJDK50 && genDataType.hasAPIDeprecatedTag()) {%>
 	@Deprecated
   <%}%>
+  <%if (genPackage.isDataTypeConverters() && useInterfaceOverrideAnnotation) {%>
+	@Override
+  <%}%>
 	public String convert<%=genDataType.getName()%>(<%if (genDataType.hasCreatorBody()) {%>final <%}%><%=genDataType.getImportedBoundedWildcardInstanceClassName()%> <%if (genDataType.hasConverterBody()) {%>it<%} else {%>instanceValue<%}%>)
 	{
     <%if (genDataType.hasConverterBody()) {%>
@@ -756,6 +765,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+ <%if (useInterfaceOverrideAnnotation && !genModel.isSuppressEMFMetaData()) {%>
+	@Override
+ <%}%>
 	public <%=genPackage.getImportedPackageInterfaceName()%> get<%=genPackage.getBasicPackageName()%>()
 	{
 		return (<%=genPackage.getImportedPackageInterfaceName()%>)getEPackage();
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/model/PackageClass.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/model/PackageClass.javajet
index c862226..764a830 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/model/PackageClass.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/model/PackageClass.javajet
@@ -13,7 +13,7 @@
 %>
 <%final GenPackage genPackage = (GenPackage)((Object[])argument)[0]; final GenModel genModel=genPackage.getGenModel();%>
 <%final boolean isJDK50 = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50;%>
-<%boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);%>
+<%boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);  boolean useInterfaceOverrideAnnotation = genModel.useInterfaceOverrideAnnotation() && !(isInterface && isImplementation);%>
 <%boolean packageNeedsSuppressDeprecation = isJDK50 && GenModelUtil.hasAPIDeprecatedTag(genPackage.getOrderedGenClassifiers()) && !genPackage.hasAPIDeprecatedTag();%>
 <%String publicStaticFinalFlag = isImplementation ? "public static final " : "";%>
 <%boolean needsAddEOperation = false;%>
@@ -395,6 +395,9 @@
 			(the<%=genPackage.getBasicPackageName()%>,
 			 new <%=genModel.getImportedName("org.eclipse.emf.ecore.EValidator")%>.Descriptor()
 			 {
+ <%if (genModel.useInterfaceOverrideAnnotation()) {%>
+				 @Override
+ <%}%>
 				 public <%=genModel.getImportedName("org.eclipse.emf.ecore.EValidator")%> getEValidator()
 				 {
 					 return <%=genPackage.getImportedValidatorClassName()%>.INSTANCE;
@@ -567,6 +570,9 @@
 	@Deprecated
   <%}%>
 <%if (isImplementation) {%>
+ <%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+ <%}%>
 	public <%=genClassifier.getImportedMetaType()%> get<%=genClassifier.getClassifierAccessorName()%>()
 	{
     <%if (genPackage.isLoadedInitialization()) {%>
@@ -611,6 +617,9 @@
 	@Deprecated
 <%}%>
 <%if (isImplementation) {%>
+   <%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+   <%}%>
 	public <%=genFeature.getImportedMetaType()%> get<%=genFeature.getFeatureAccessorName()%>()
 	{
         <%if (!genPackage.isLoadedInitialization()) {%>
@@ -652,6 +661,9 @@
 	@Deprecated
 <%}%>
 <%if (isImplementation) {%>
+   <%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+   <%}%>
 	public <%=genOperation.getImportedMetaType()%> get<%=genOperation.getOperationAccessorName()%>()
 	{
         <%if (!genPackage.isLoadedInitialization()) {%>
@@ -684,6 +696,9 @@
 	 */
 <%}%>
 <%if (isImplementation) {%>
+   <%if (useInterfaceOverrideAnnotation) {%>
+	@Override
+   <%}%>
 	public <%=genPackage.getImportedFactoryInterfaceName()%> get<%=genPackage.getFactoryName()%>()
 	{
 		return (<%=genPackage.getImportedFactoryInterfaceName()%>)getEFactoryInstance();