[323181] Updating based on template changes in EMF for bug 339035.
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/model/Class.java b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/model/Class.java
index 85b0d2e..5e34942 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/model/Class.java
+++ b/plugins/org.eclipse.uml2.codegen.ecore/src/org/eclipse/uml2/codegen/ecore/templates/model/Class.java
@@ -2022,1314 +2022,1315 @@
   protected final String TEXT_2003 = "(";
   protected final String TEXT_2004 = ")";
   protected final String TEXT_2005 = ";" + NL;
-  protected final String TEXT_2006 = NL + "\tpublic ";
-  protected final String TEXT_2007 = " ";
-  protected final String TEXT_2008 = "(";
-  protected final String TEXT_2009 = ")";
-  protected final String TEXT_2010 = NL + "\t{";
-  protected final String TEXT_2011 = NL + "\t\t";
-  protected final String TEXT_2012 = NL + "\t\treturn" + NL + "\t\t\t";
-  protected final String TEXT_2013 = ".validate" + NL + "\t\t\t\t(";
-  protected final String TEXT_2014 = "," + NL + "\t\t\t\t this," + NL + "\t\t\t\t ";
-  protected final String TEXT_2015 = "," + NL + "\t\t\t\t ";
-  protected final String TEXT_2016 = "," + NL + "\t\t\t\t \"";
-  protected final String TEXT_2017 = "\",";
-  protected final String TEXT_2018 = NL + "\t\t\t\t ";
-  protected final String TEXT_2019 = "," + NL + "\t\t\t\t ";
-  protected final String TEXT_2020 = "__EEXPRESSION," + NL + "\t\t\t\t ";
-  protected final String TEXT_2021 = ".ERROR," + NL + "\t\t\t\t ";
-  protected final String TEXT_2022 = ".DIAGNOSTIC_SOURCE," + NL + "\t\t\t\t ";
-  protected final String TEXT_2023 = ".";
-  protected final String TEXT_2024 = ");";
-  protected final String TEXT_2025 = NL + "\t\treturn ";
-  protected final String TEXT_2026 = ".";
-  protected final String TEXT_2027 = "(this, ";
-  protected final String TEXT_2028 = ", ";
-  protected final String TEXT_2029 = ");";
-  protected final String TEXT_2030 = NL + "\t\tif (";
-  protected final String TEXT_2031 = " == null)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_2032 = ".Helper helper = EOCL_ENV.createOCLHelper();" + NL + "\t\t\thelper.setContext(";
-  protected final String TEXT_2033 = ");" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_2034 = " = helper.createInvariant(";
-  protected final String TEXT_2035 = "__EOCL_EXP);" + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
-  protected final String TEXT_2036 = " pe)" + NL + "\t\t\t{" + NL + "\t\t\t\tthrow new UnsupportedOperationException(pe.getLocalizedMessage());" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tif (!EOCL_ENV.createQuery(";
-  protected final String TEXT_2037 = ").check(this))";
-  protected final String TEXT_2038 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// -> specify the condition that violates the invariant" + NL + "\t\t// -> verify the details of the diagnostic, including severity and message" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tif (false)";
-  protected final String TEXT_2039 = NL + "\t\t{" + NL + "\t\t\tif (";
-  protected final String TEXT_2040 = " != null)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_2041 = ".add" + NL + "\t\t\t\t\t(new ";
-  protected final String TEXT_2042 = NL + "\t\t\t\t\t\t(";
-  protected final String TEXT_2043 = ".ERROR," + NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_2044 = ".DIAGNOSTIC_SOURCE," + NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_2045 = ".";
-  protected final String TEXT_2046 = "," + NL + "\t\t\t\t\t\t ";
-  protected final String TEXT_2047 = ".INSTANCE.getString(\"_UI_GenericInvariant_diagnostic\", new Object[] { \"";
-  protected final String TEXT_2048 = "\", ";
-  protected final String TEXT_2049 = ".getObjectLabel(this, ";
-  protected final String TEXT_2050 = ") }),";
-  protected final String TEXT_2051 = NL + "\t\t\t\t\t\t new Object [] { this }));" + NL + "\t\t\t}" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\treturn true;";
-  protected final String TEXT_2052 = NL + "\t\ttry" + NL + "\t\t{";
-  protected final String TEXT_2053 = NL + "\t\t\t";
-  protected final String TEXT_2054 = "__EINVOCATION_DELEGATE.dynamicInvoke(this, ";
-  protected final String TEXT_2055 = "new ";
-  protected final String TEXT_2056 = ".UnmodifiableEList<Object>(";
-  protected final String TEXT_2057 = ", ";
-  protected final String TEXT_2058 = ")";
-  protected final String TEXT_2059 = "null";
-  protected final String TEXT_2060 = ");";
-  protected final String TEXT_2061 = NL + "\t\t\treturn ";
-  protected final String TEXT_2062 = "(";
+  protected final String TEXT_2006 = NL + "\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_2007 = NL + "\tpublic ";
+  protected final String TEXT_2008 = " ";
+  protected final String TEXT_2009 = "(";
+  protected final String TEXT_2010 = ")";
+  protected final String TEXT_2011 = NL + "\t{";
+  protected final String TEXT_2012 = NL + "\t\t";
+  protected final String TEXT_2013 = NL + "\t\treturn" + NL + "\t\t\t";
+  protected final String TEXT_2014 = ".validate" + NL + "\t\t\t\t(";
+  protected final String TEXT_2015 = "," + NL + "\t\t\t\t this," + NL + "\t\t\t\t ";
+  protected final String TEXT_2016 = "," + NL + "\t\t\t\t ";
+  protected final String TEXT_2017 = "," + NL + "\t\t\t\t \"";
+  protected final String TEXT_2018 = "\",";
+  protected final String TEXT_2019 = NL + "\t\t\t\t ";
+  protected final String TEXT_2020 = "," + NL + "\t\t\t\t ";
+  protected final String TEXT_2021 = "__EEXPRESSION," + NL + "\t\t\t\t ";
+  protected final String TEXT_2022 = ".ERROR," + NL + "\t\t\t\t ";
+  protected final String TEXT_2023 = ".DIAGNOSTIC_SOURCE," + NL + "\t\t\t\t ";
+  protected final String TEXT_2024 = ".";
+  protected final String TEXT_2025 = ");";
+  protected final String TEXT_2026 = NL + "\t\treturn ";
+  protected final String TEXT_2027 = ".";
+  protected final String TEXT_2028 = "(this, ";
+  protected final String TEXT_2029 = ", ";
+  protected final String TEXT_2030 = ");";
+  protected final String TEXT_2031 = NL + "\t\tif (";
+  protected final String TEXT_2032 = " == null)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_2033 = ".Helper helper = EOCL_ENV.createOCLHelper();" + NL + "\t\t\thelper.setContext(";
+  protected final String TEXT_2034 = ");" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_2035 = " = helper.createInvariant(";
+  protected final String TEXT_2036 = "__EOCL_EXP);" + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
+  protected final String TEXT_2037 = " pe)" + NL + "\t\t\t{" + NL + "\t\t\t\tthrow new UnsupportedOperationException(pe.getLocalizedMessage());" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tif (!EOCL_ENV.createQuery(";
+  protected final String TEXT_2038 = ").check(this))";
+  protected final String TEXT_2039 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// -> specify the condition that violates the invariant" + NL + "\t\t// -> verify the details of the diagnostic, including severity and message" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tif (false)";
+  protected final String TEXT_2040 = NL + "\t\t{" + NL + "\t\t\tif (";
+  protected final String TEXT_2041 = " != null)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_2042 = ".add" + NL + "\t\t\t\t\t(new ";
+  protected final String TEXT_2043 = NL + "\t\t\t\t\t\t(";
+  protected final String TEXT_2044 = ".ERROR," + NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_2045 = ".DIAGNOSTIC_SOURCE," + NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_2046 = ".";
+  protected final String TEXT_2047 = "," + NL + "\t\t\t\t\t\t ";
+  protected final String TEXT_2048 = ".INSTANCE.getString(\"_UI_GenericInvariant_diagnostic\", new Object[] { \"";
+  protected final String TEXT_2049 = "\", ";
+  protected final String TEXT_2050 = ".getObjectLabel(this, ";
+  protected final String TEXT_2051 = ") }),";
+  protected final String TEXT_2052 = NL + "\t\t\t\t\t\t new Object [] { this }));" + NL + "\t\t\t}" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\treturn true;";
+  protected final String TEXT_2053 = NL + "\t\ttry" + NL + "\t\t{";
+  protected final String TEXT_2054 = NL + "\t\t\t";
+  protected final String TEXT_2055 = "__EINVOCATION_DELEGATE.dynamicInvoke(this, ";
+  protected final String TEXT_2056 = "new ";
+  protected final String TEXT_2057 = ".UnmodifiableEList<Object>(";
+  protected final String TEXT_2058 = ", ";
+  protected final String TEXT_2059 = ")";
+  protected final String TEXT_2060 = "null";
+  protected final String TEXT_2061 = ");";
+  protected final String TEXT_2062 = NL + "\t\t\treturn ";
   protected final String TEXT_2063 = "(";
-  protected final String TEXT_2064 = ")";
-  protected final String TEXT_2065 = "__EINVOCATION_DELEGATE.dynamicInvoke(this, ";
-  protected final String TEXT_2066 = "new ";
-  protected final String TEXT_2067 = ".UnmodifiableEList<Object>(";
-  protected final String TEXT_2068 = ", ";
-  protected final String TEXT_2069 = ")";
-  protected final String TEXT_2070 = "null";
-  protected final String TEXT_2071 = ")";
-  protected final String TEXT_2072 = ").";
-  protected final String TEXT_2073 = "()";
-  protected final String TEXT_2074 = ";";
-  protected final String TEXT_2075 = NL + "\t\t}" + NL + "\t\tcatch (";
-  protected final String TEXT_2076 = " ite)" + NL + "\t\t{" + NL + "\t\t\tthrow new ";
-  protected final String TEXT_2077 = "(ite);" + NL + "\t\t}";
-  protected final String TEXT_2078 = NL + "\t\t";
-  protected final String TEXT_2079 = ".";
-  protected final String TEXT_2080 = "(this";
-  protected final String TEXT_2081 = ", ";
-  protected final String TEXT_2082 = ");";
-  protected final String TEXT_2083 = NL + "\t\t";
-  protected final String TEXT_2084 = " cache = getCacheAdapter();" + NL + "\t\tif (cache != null)" + NL + "\t\t{";
-  protected final String TEXT_2085 = NL + "\t\t\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_2086 = NL + "\t\t\t";
-  protected final String TEXT_2087 = " result = (";
-  protected final String TEXT_2088 = ") cache.get(";
-  protected final String TEXT_2089 = "eResource(), ";
-  protected final String TEXT_2090 = "this, ";
-  protected final String TEXT_2091 = ");" + NL + "\t\t\tif (result == null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcache.put(";
-  protected final String TEXT_2092 = "eResource(), ";
-  protected final String TEXT_2093 = "this, ";
-  protected final String TEXT_2094 = ", result = ";
-  protected final String TEXT_2095 = "new ";
-  protected final String TEXT_2096 = "(";
-  protected final String TEXT_2097 = ".";
-  protected final String TEXT_2098 = "(this";
-  protected final String TEXT_2099 = ", ";
-  protected final String TEXT_2100 = ")";
+  protected final String TEXT_2064 = "(";
+  protected final String TEXT_2065 = ")";
+  protected final String TEXT_2066 = "__EINVOCATION_DELEGATE.dynamicInvoke(this, ";
+  protected final String TEXT_2067 = "new ";
+  protected final String TEXT_2068 = ".UnmodifiableEList<Object>(";
+  protected final String TEXT_2069 = ", ";
+  protected final String TEXT_2070 = ")";
+  protected final String TEXT_2071 = "null";
+  protected final String TEXT_2072 = ")";
+  protected final String TEXT_2073 = ").";
+  protected final String TEXT_2074 = "()";
+  protected final String TEXT_2075 = ";";
+  protected final String TEXT_2076 = NL + "\t\t}" + NL + "\t\tcatch (";
+  protected final String TEXT_2077 = " ite)" + NL + "\t\t{" + NL + "\t\t\tthrow new ";
+  protected final String TEXT_2078 = "(ite);" + NL + "\t\t}";
+  protected final String TEXT_2079 = NL + "\t\t";
+  protected final String TEXT_2080 = ".";
+  protected final String TEXT_2081 = "(this";
+  protected final String TEXT_2082 = ", ";
+  protected final String TEXT_2083 = ");";
+  protected final String TEXT_2084 = NL + "\t\t";
+  protected final String TEXT_2085 = " cache = getCacheAdapter();" + NL + "\t\tif (cache != null)" + NL + "\t\t{";
+  protected final String TEXT_2086 = NL + "\t\t\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_2087 = NL + "\t\t\t";
+  protected final String TEXT_2088 = " result = (";
+  protected final String TEXT_2089 = ") cache.get(";
+  protected final String TEXT_2090 = "eResource(), ";
+  protected final String TEXT_2091 = "this, ";
+  protected final String TEXT_2092 = ");" + NL + "\t\t\tif (result == null)" + NL + "\t\t\t{" + NL + "\t\t\t\tcache.put(";
+  protected final String TEXT_2093 = "eResource(), ";
+  protected final String TEXT_2094 = "this, ";
+  protected final String TEXT_2095 = ", result = ";
+  protected final String TEXT_2096 = "new ";
+  protected final String TEXT_2097 = "(";
+  protected final String TEXT_2098 = ".";
+  protected final String TEXT_2099 = "(this";
+  protected final String TEXT_2100 = ", ";
   protected final String TEXT_2101 = ")";
-  protected final String TEXT_2102 = ");" + NL + "\t\t\t}" + NL + "\t\t\treturn result";
-  protected final String TEXT_2103 = ".";
-  protected final String TEXT_2104 = "()";
-  protected final String TEXT_2105 = ";" + NL + "\t\t}";
-  protected final String TEXT_2106 = NL + "\t\treturn ";
-  protected final String TEXT_2107 = ".";
-  protected final String TEXT_2108 = "(this";
-  protected final String TEXT_2109 = ", ";
-  protected final String TEXT_2110 = ");";
-  protected final String TEXT_2111 = NL + "\t\tif (";
-  protected final String TEXT_2112 = " == null)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_2113 = ".Helper helper = EOCL_ENV.createOCLHelper();" + NL + "\t\t\thelper.setOperationContext(";
-  protected final String TEXT_2114 = ", ";
-  protected final String TEXT_2115 = ".getEAllOperations().get(";
-  protected final String TEXT_2116 = "));" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_2117 = " = helper.createQuery(";
-  protected final String TEXT_2118 = "__EOCL_EXP);" + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
-  protected final String TEXT_2119 = " pe)" + NL + "\t\t\t{" + NL + "\t\t\t\tthrow new UnsupportedOperationException(pe.getLocalizedMessage());" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\t";
-  protected final String TEXT_2120 = ".Query query = EOCL_ENV.createQuery(";
-  protected final String TEXT_2121 = ");";
-  protected final String TEXT_2122 = NL + "\t\t";
-  protected final String TEXT_2123 = "<?, ?, ?, ?, ?>";
-  protected final String TEXT_2124 = " environment = query.getEvaluationEnvironment();";
-  protected final String TEXT_2125 = NL + "\t\tenvironment.add(\"";
-  protected final String TEXT_2126 = "\", ";
-  protected final String TEXT_2127 = ");";
-  protected final String TEXT_2128 = NL + "\t\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_2129 = NL + "\t\t";
-  protected final String TEXT_2130 = "<";
-  protected final String TEXT_2131 = "> result = (";
-  protected final String TEXT_2132 = "<";
-  protected final String TEXT_2133 = ">) query.evaluate(this);" + NL + "\t\treturn new ";
-  protected final String TEXT_2134 = ".UnmodifiableEList<";
-  protected final String TEXT_2135 = ">(result.size(), result.toArray());";
-  protected final String TEXT_2136 = NL + "\t\treturn ((";
-  protected final String TEXT_2137 = ") query.evaluate(this)).";
-  protected final String TEXT_2138 = "();";
-  protected final String TEXT_2139 = NL + "\t\treturn (";
-  protected final String TEXT_2140 = ") query.evaluate(this);";
-  protected final String TEXT_2141 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_2142 = NL + "\t}" + NL;
-  protected final String TEXT_2143 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2144 = NL + "\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_2145 = NL + "\t@Override";
-  protected final String TEXT_2146 = NL + "\tpublic ";
-  protected final String TEXT_2147 = " eInverseAdd(";
-  protected final String TEXT_2148 = " otherEnd, int featureID, ";
-  protected final String TEXT_2149 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (featureID";
-  protected final String TEXT_2150 = ")" + NL + "\t\t{";
-  protected final String TEXT_2151 = NL + "\t\t\tcase ";
-  protected final String TEXT_2152 = ":";
-  protected final String TEXT_2153 = NL + "\t\t\t\treturn ((";
-  protected final String TEXT_2154 = "(";
-  protected final String TEXT_2155 = ".InternalMapView";
-  protected final String TEXT_2156 = ")";
-  protected final String TEXT_2157 = "()).eMap()).basicAdd(otherEnd, msgs);";
-  protected final String TEXT_2158 = NL + "\t\t\t\treturn (";
-  protected final String TEXT_2159 = "()).basicAdd(otherEnd, msgs);";
-  protected final String TEXT_2160 = NL + "\t\t\t\tif (eInternalContainer() != null)" + NL + "\t\t\t\t\tmsgs = eBasicRemoveFromContainer(msgs);";
-  protected final String TEXT_2161 = NL + "\t\t\t\treturn basicSet";
-  protected final String TEXT_2162 = "((";
-  protected final String TEXT_2163 = ")otherEnd, msgs);";
-  protected final String TEXT_2164 = NL + "\t\t\t\treturn eBasicSetContainer(otherEnd, ";
-  protected final String TEXT_2165 = ", msgs);";
-  protected final String TEXT_2166 = NL + "\t\t\t\t";
-  protected final String TEXT_2167 = " ";
-  protected final String TEXT_2168 = " = (";
-  protected final String TEXT_2169 = ")eVirtualGet(";
-  protected final String TEXT_2170 = ");";
-  protected final String TEXT_2171 = NL + "\t\t\t\t";
-  protected final String TEXT_2172 = " ";
-  protected final String TEXT_2173 = " = ";
-  protected final String TEXT_2174 = "basicGet";
-  protected final String TEXT_2175 = "();";
-  protected final String TEXT_2176 = NL + "\t\t\t\tif (";
-  protected final String TEXT_2177 = " != null)";
-  protected final String TEXT_2178 = NL + "\t\t\t\t\tmsgs = ((";
-  protected final String TEXT_2179 = ")";
-  protected final String TEXT_2180 = ").eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ";
-  protected final String TEXT_2181 = ", null, msgs);";
-  protected final String TEXT_2182 = NL + "\t\t\t\t\tmsgs = ((";
-  protected final String TEXT_2183 = ")";
-  protected final String TEXT_2184 = ").eInverseRemove(this, ";
-  protected final String TEXT_2185 = ", ";
-  protected final String TEXT_2186 = ".class, msgs);";
-  protected final String TEXT_2187 = NL + "\t\t\t\treturn basicSet";
-  protected final String TEXT_2188 = "((";
-  protected final String TEXT_2189 = ")otherEnd, msgs);";
-  protected final String TEXT_2190 = NL + "\t\t}";
-  protected final String TEXT_2191 = NL + "\t\treturn super.eInverseAdd(otherEnd, featureID, msgs);";
-  protected final String TEXT_2192 = NL + "\t\treturn eDynamicInverseAdd(otherEnd, featureID, msgs);";
-  protected final String TEXT_2193 = NL + "\t}" + NL;
-  protected final String TEXT_2194 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2195 = NL + "\t@Override";
-  protected final String TEXT_2196 = NL + "\tpublic ";
-  protected final String TEXT_2197 = " eInverseRemove(";
-  protected final String TEXT_2198 = " otherEnd, int featureID, ";
-  protected final String TEXT_2199 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (featureID";
-  protected final String TEXT_2200 = ")" + NL + "\t\t{";
-  protected final String TEXT_2201 = NL + "\t\t\tcase ";
-  protected final String TEXT_2202 = ":";
-  protected final String TEXT_2203 = NL + "\t\t\t\treturn ((";
-  protected final String TEXT_2204 = ")((";
-  protected final String TEXT_2205 = ".InternalMapView";
-  protected final String TEXT_2206 = ")";
-  protected final String TEXT_2207 = "()).eMap()).basicRemove(otherEnd, msgs);";
-  protected final String TEXT_2208 = NL + "\t\t\t\treturn ((";
-  protected final String TEXT_2209 = ")((";
-  protected final String TEXT_2210 = ".Internal.Wrapper)";
-  protected final String TEXT_2211 = "()).featureMap()).basicRemove(otherEnd, msgs);";
-  protected final String TEXT_2212 = NL + "\t\t\t\treturn ((";
-  protected final String TEXT_2213 = ")";
-  protected final String TEXT_2214 = "()).basicRemove(otherEnd, msgs);";
-  protected final String TEXT_2215 = NL + "\t\t\t\treturn eBasicSetContainer(null, ";
-  protected final String TEXT_2216 = ", msgs);";
-  protected final String TEXT_2217 = NL + "\t\t\t\treturn basicUnset";
-  protected final String TEXT_2218 = "(msgs);";
-  protected final String TEXT_2219 = NL + "\t\t\t\treturn basicSet";
-  protected final String TEXT_2220 = "(null, msgs);";
-  protected final String TEXT_2221 = NL + "\t\t}";
-  protected final String TEXT_2222 = NL + "\t\treturn super.eInverseRemove(otherEnd, featureID, msgs);";
-  protected final String TEXT_2223 = NL + "\t\treturn eDynamicInverseRemove(otherEnd, featureID, msgs);";
-  protected final String TEXT_2224 = NL + "\t}" + NL;
-  protected final String TEXT_2225 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2226 = NL + "\t@Override";
-  protected final String TEXT_2227 = NL + "\tpublic ";
-  protected final String TEXT_2228 = " eBasicRemoveFromContainerFeature(";
-  protected final String TEXT_2229 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (eContainerFeatureID()";
-  protected final String TEXT_2230 = ")" + NL + "\t\t{";
-  protected final String TEXT_2231 = NL + "\t\t\tcase ";
-  protected final String TEXT_2232 = ":" + NL + "\t\t\t\treturn eInternalContainer().eInverseRemove(this, ";
-  protected final String TEXT_2233 = ", ";
-  protected final String TEXT_2234 = ".class, msgs);";
-  protected final String TEXT_2235 = NL + "\t\t}";
-  protected final String TEXT_2236 = NL + "\t\treturn super.eBasicRemoveFromContainerFeature(msgs);";
-  protected final String TEXT_2237 = NL + "\t\treturn eDynamicBasicRemoveFromContainer(msgs);";
-  protected final String TEXT_2238 = NL + "\t}" + NL;
-  protected final String TEXT_2239 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2240 = NL + "\t@Override";
-  protected final String TEXT_2241 = NL + "\tpublic Object eGet(int featureID, boolean resolve, boolean coreType)" + NL + "\t{" + NL + "\t\tswitch (featureID";
-  protected final String TEXT_2242 = ")" + NL + "\t\t{";
-  protected final String TEXT_2243 = NL + "\t\t\tcase ";
-  protected final String TEXT_2244 = ":";
-  protected final String TEXT_2245 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2246 = "();";
-  protected final String TEXT_2247 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2248 = "() ? Boolean.TRUE : Boolean.FALSE;";
-  protected final String TEXT_2249 = NL + "\t\t\t\treturn new ";
-  protected final String TEXT_2250 = "(";
-  protected final String TEXT_2251 = "());";
-  protected final String TEXT_2252 = NL + "\t\t\t\tif (resolve) return ";
-  protected final String TEXT_2253 = "();" + NL + "\t\t\t\treturn basicGet";
-  protected final String TEXT_2254 = "();";
-  protected final String TEXT_2255 = NL + "\t\t\t\tif (coreType) return ((";
-  protected final String TEXT_2256 = ".InternalMapView";
-  protected final String TEXT_2257 = ")";
-  protected final String TEXT_2258 = "()).eMap();" + NL + "\t\t\t\telse return ";
-  protected final String TEXT_2259 = "();";
-  protected final String TEXT_2260 = NL + "\t\t\t\tif (coreType) return ";
-  protected final String TEXT_2261 = "();" + NL + "\t\t\t\telse return ";
-  protected final String TEXT_2262 = "().map();";
-  protected final String TEXT_2263 = NL + "\t\t\t\tif (coreType) return ((";
-  protected final String TEXT_2264 = ".Internal.Wrapper)";
-  protected final String TEXT_2265 = "()).featureMap();" + NL + "\t\t\t\treturn ";
-  protected final String TEXT_2266 = "();";
-  protected final String TEXT_2267 = NL + "\t\t\t\tif (coreType) return ";
-  protected final String TEXT_2268 = "();" + NL + "\t\t\t\treturn ((";
-  protected final String TEXT_2269 = ".Internal)";
-  protected final String TEXT_2270 = "()).getWrapper();";
-  protected final String TEXT_2271 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2272 = "();";
-  protected final String TEXT_2273 = NL + "\t\t}";
-  protected final String TEXT_2274 = NL + "\t\treturn super.eGet(featureID, resolve, coreType);";
-  protected final String TEXT_2275 = NL + "\t\treturn eDynamicGet(featureID, resolve, coreType);";
-  protected final String TEXT_2276 = NL + "\t}" + NL;
-  protected final String TEXT_2277 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2278 = NL + "\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_2279 = NL + "\t@Override";
-  protected final String TEXT_2280 = NL + "\tpublic void eSet(int featureID, Object newValue)" + NL + "\t{" + NL + "\t\tswitch (featureID";
-  protected final String TEXT_2281 = ")" + NL + "\t\t{";
-  protected final String TEXT_2282 = NL + "\t\t\tcase ";
-  protected final String TEXT_2283 = ":";
-  protected final String TEXT_2284 = NL + "\t\t\t\t((";
-  protected final String TEXT_2285 = ".Internal)((";
-  protected final String TEXT_2286 = ".Internal.Wrapper)";
-  protected final String TEXT_2287 = "()).featureMap()).set(newValue);";
-  protected final String TEXT_2288 = NL + "\t\t\t\t((";
-  protected final String TEXT_2289 = ".Internal)";
-  protected final String TEXT_2290 = "()).set(newValue);";
-  protected final String TEXT_2291 = NL + "\t\t\t\t((";
-  protected final String TEXT_2292 = ".Setting)((";
-  protected final String TEXT_2293 = ".InternalMapView";
-  protected final String TEXT_2294 = ")";
-  protected final String TEXT_2295 = "()).eMap()).set(newValue);";
-  protected final String TEXT_2296 = NL + "\t\t\t\t((";
-  protected final String TEXT_2297 = ".Setting)";
-  protected final String TEXT_2298 = "()).set(newValue);";
-  protected final String TEXT_2299 = NL + "\t\t\t\t";
-  protected final String TEXT_2300 = "().clear();" + NL + "\t\t\t\t";
-  protected final String TEXT_2301 = "().addAll((";
-  protected final String TEXT_2302 = "<? extends ";
-  protected final String TEXT_2303 = ">";
-  protected final String TEXT_2304 = ")newValue);";
-  protected final String TEXT_2305 = NL + "\t\t\t\tset";
-  protected final String TEXT_2306 = "(((";
-  protected final String TEXT_2307 = ")newValue).";
-  protected final String TEXT_2308 = "());";
-  protected final String TEXT_2309 = NL + "\t\t\t\tset";
-  protected final String TEXT_2310 = "(";
+  protected final String TEXT_2102 = ")";
+  protected final String TEXT_2103 = ");" + NL + "\t\t\t}" + NL + "\t\t\treturn result";
+  protected final String TEXT_2104 = ".";
+  protected final String TEXT_2105 = "()";
+  protected final String TEXT_2106 = ";" + NL + "\t\t}";
+  protected final String TEXT_2107 = NL + "\t\treturn ";
+  protected final String TEXT_2108 = ".";
+  protected final String TEXT_2109 = "(this";
+  protected final String TEXT_2110 = ", ";
+  protected final String TEXT_2111 = ");";
+  protected final String TEXT_2112 = NL + "\t\tif (";
+  protected final String TEXT_2113 = " == null)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_2114 = ".Helper helper = EOCL_ENV.createOCLHelper();" + NL + "\t\t\thelper.setOperationContext(";
+  protected final String TEXT_2115 = ", ";
+  protected final String TEXT_2116 = ".getEAllOperations().get(";
+  protected final String TEXT_2117 = "));" + NL + "\t\t\ttry" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_2118 = " = helper.createQuery(";
+  protected final String TEXT_2119 = "__EOCL_EXP);" + NL + "\t\t\t}" + NL + "\t\t\tcatch (";
+  protected final String TEXT_2120 = " pe)" + NL + "\t\t\t{" + NL + "\t\t\t\tthrow new UnsupportedOperationException(pe.getLocalizedMessage());" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\t";
+  protected final String TEXT_2121 = ".Query query = EOCL_ENV.createQuery(";
+  protected final String TEXT_2122 = ");";
+  protected final String TEXT_2123 = NL + "\t\t";
+  protected final String TEXT_2124 = "<?, ?, ?, ?, ?>";
+  protected final String TEXT_2125 = " environment = query.getEvaluationEnvironment();";
+  protected final String TEXT_2126 = NL + "\t\tenvironment.add(\"";
+  protected final String TEXT_2127 = "\", ";
+  protected final String TEXT_2128 = ");";
+  protected final String TEXT_2129 = NL + "\t\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_2130 = NL + "\t\t";
+  protected final String TEXT_2131 = "<";
+  protected final String TEXT_2132 = "> result = (";
+  protected final String TEXT_2133 = "<";
+  protected final String TEXT_2134 = ">) query.evaluate(this);" + NL + "\t\treturn new ";
+  protected final String TEXT_2135 = ".UnmodifiableEList<";
+  protected final String TEXT_2136 = ">(result.size(), result.toArray());";
+  protected final String TEXT_2137 = NL + "\t\treturn ((";
+  protected final String TEXT_2138 = ") query.evaluate(this)).";
+  protected final String TEXT_2139 = "();";
+  protected final String TEXT_2140 = NL + "\t\treturn (";
+  protected final String TEXT_2141 = ") query.evaluate(this);";
+  protected final String TEXT_2142 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_2143 = NL + "\t}" + NL;
+  protected final String TEXT_2144 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2145 = NL + "\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_2146 = NL + "\t@Override";
+  protected final String TEXT_2147 = NL + "\tpublic ";
+  protected final String TEXT_2148 = " eInverseAdd(";
+  protected final String TEXT_2149 = " otherEnd, int featureID, ";
+  protected final String TEXT_2150 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (featureID";
+  protected final String TEXT_2151 = ")" + NL + "\t\t{";
+  protected final String TEXT_2152 = NL + "\t\t\tcase ";
+  protected final String TEXT_2153 = ":";
+  protected final String TEXT_2154 = NL + "\t\t\t\treturn ((";
+  protected final String TEXT_2155 = "(";
+  protected final String TEXT_2156 = ".InternalMapView";
+  protected final String TEXT_2157 = ")";
+  protected final String TEXT_2158 = "()).eMap()).basicAdd(otherEnd, msgs);";
+  protected final String TEXT_2159 = NL + "\t\t\t\treturn (";
+  protected final String TEXT_2160 = "()).basicAdd(otherEnd, msgs);";
+  protected final String TEXT_2161 = NL + "\t\t\t\tif (eInternalContainer() != null)" + NL + "\t\t\t\t\tmsgs = eBasicRemoveFromContainer(msgs);";
+  protected final String TEXT_2162 = NL + "\t\t\t\treturn basicSet";
+  protected final String TEXT_2163 = "((";
+  protected final String TEXT_2164 = ")otherEnd, msgs);";
+  protected final String TEXT_2165 = NL + "\t\t\t\treturn eBasicSetContainer(otherEnd, ";
+  protected final String TEXT_2166 = ", msgs);";
+  protected final String TEXT_2167 = NL + "\t\t\t\t";
+  protected final String TEXT_2168 = " ";
+  protected final String TEXT_2169 = " = (";
+  protected final String TEXT_2170 = ")eVirtualGet(";
+  protected final String TEXT_2171 = ");";
+  protected final String TEXT_2172 = NL + "\t\t\t\t";
+  protected final String TEXT_2173 = " ";
+  protected final String TEXT_2174 = " = ";
+  protected final String TEXT_2175 = "basicGet";
+  protected final String TEXT_2176 = "();";
+  protected final String TEXT_2177 = NL + "\t\t\t\tif (";
+  protected final String TEXT_2178 = " != null)";
+  protected final String TEXT_2179 = NL + "\t\t\t\t\tmsgs = ((";
+  protected final String TEXT_2180 = ")";
+  protected final String TEXT_2181 = ").eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ";
+  protected final String TEXT_2182 = ", null, msgs);";
+  protected final String TEXT_2183 = NL + "\t\t\t\t\tmsgs = ((";
+  protected final String TEXT_2184 = ")";
+  protected final String TEXT_2185 = ").eInverseRemove(this, ";
+  protected final String TEXT_2186 = ", ";
+  protected final String TEXT_2187 = ".class, msgs);";
+  protected final String TEXT_2188 = NL + "\t\t\t\treturn basicSet";
+  protected final String TEXT_2189 = "((";
+  protected final String TEXT_2190 = ")otherEnd, msgs);";
+  protected final String TEXT_2191 = NL + "\t\t}";
+  protected final String TEXT_2192 = NL + "\t\treturn super.eInverseAdd(otherEnd, featureID, msgs);";
+  protected final String TEXT_2193 = NL + "\t\treturn eDynamicInverseAdd(otherEnd, featureID, msgs);";
+  protected final String TEXT_2194 = NL + "\t}" + NL;
+  protected final String TEXT_2195 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2196 = NL + "\t@Override";
+  protected final String TEXT_2197 = NL + "\tpublic ";
+  protected final String TEXT_2198 = " eInverseRemove(";
+  protected final String TEXT_2199 = " otherEnd, int featureID, ";
+  protected final String TEXT_2200 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (featureID";
+  protected final String TEXT_2201 = ")" + NL + "\t\t{";
+  protected final String TEXT_2202 = NL + "\t\t\tcase ";
+  protected final String TEXT_2203 = ":";
+  protected final String TEXT_2204 = NL + "\t\t\t\treturn ((";
+  protected final String TEXT_2205 = ")((";
+  protected final String TEXT_2206 = ".InternalMapView";
+  protected final String TEXT_2207 = ")";
+  protected final String TEXT_2208 = "()).eMap()).basicRemove(otherEnd, msgs);";
+  protected final String TEXT_2209 = NL + "\t\t\t\treturn ((";
+  protected final String TEXT_2210 = ")((";
+  protected final String TEXT_2211 = ".Internal.Wrapper)";
+  protected final String TEXT_2212 = "()).featureMap()).basicRemove(otherEnd, msgs);";
+  protected final String TEXT_2213 = NL + "\t\t\t\treturn ((";
+  protected final String TEXT_2214 = ")";
+  protected final String TEXT_2215 = "()).basicRemove(otherEnd, msgs);";
+  protected final String TEXT_2216 = NL + "\t\t\t\treturn eBasicSetContainer(null, ";
+  protected final String TEXT_2217 = ", msgs);";
+  protected final String TEXT_2218 = NL + "\t\t\t\treturn basicUnset";
+  protected final String TEXT_2219 = "(msgs);";
+  protected final String TEXT_2220 = NL + "\t\t\t\treturn basicSet";
+  protected final String TEXT_2221 = "(null, msgs);";
+  protected final String TEXT_2222 = NL + "\t\t}";
+  protected final String TEXT_2223 = NL + "\t\treturn super.eInverseRemove(otherEnd, featureID, msgs);";
+  protected final String TEXT_2224 = NL + "\t\treturn eDynamicInverseRemove(otherEnd, featureID, msgs);";
+  protected final String TEXT_2225 = NL + "\t}" + NL;
+  protected final String TEXT_2226 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2227 = NL + "\t@Override";
+  protected final String TEXT_2228 = NL + "\tpublic ";
+  protected final String TEXT_2229 = " eBasicRemoveFromContainerFeature(";
+  protected final String TEXT_2230 = " msgs)" + NL + "\t{" + NL + "\t\tswitch (eContainerFeatureID()";
+  protected final String TEXT_2231 = ")" + NL + "\t\t{";
+  protected final String TEXT_2232 = NL + "\t\t\tcase ";
+  protected final String TEXT_2233 = ":" + NL + "\t\t\t\treturn eInternalContainer().eInverseRemove(this, ";
+  protected final String TEXT_2234 = ", ";
+  protected final String TEXT_2235 = ".class, msgs);";
+  protected final String TEXT_2236 = NL + "\t\t}";
+  protected final String TEXT_2237 = NL + "\t\treturn super.eBasicRemoveFromContainerFeature(msgs);";
+  protected final String TEXT_2238 = NL + "\t\treturn eDynamicBasicRemoveFromContainer(msgs);";
+  protected final String TEXT_2239 = NL + "\t}" + NL;
+  protected final String TEXT_2240 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2241 = NL + "\t@Override";
+  protected final String TEXT_2242 = NL + "\tpublic Object eGet(int featureID, boolean resolve, boolean coreType)" + NL + "\t{" + NL + "\t\tswitch (featureID";
+  protected final String TEXT_2243 = ")" + NL + "\t\t{";
+  protected final String TEXT_2244 = NL + "\t\t\tcase ";
+  protected final String TEXT_2245 = ":";
+  protected final String TEXT_2246 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2247 = "();";
+  protected final String TEXT_2248 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2249 = "() ? Boolean.TRUE : Boolean.FALSE;";
+  protected final String TEXT_2250 = NL + "\t\t\t\treturn new ";
+  protected final String TEXT_2251 = "(";
+  protected final String TEXT_2252 = "());";
+  protected final String TEXT_2253 = NL + "\t\t\t\tif (resolve) return ";
+  protected final String TEXT_2254 = "();" + NL + "\t\t\t\treturn basicGet";
+  protected final String TEXT_2255 = "();";
+  protected final String TEXT_2256 = NL + "\t\t\t\tif (coreType) return ((";
+  protected final String TEXT_2257 = ".InternalMapView";
+  protected final String TEXT_2258 = ")";
+  protected final String TEXT_2259 = "()).eMap();" + NL + "\t\t\t\telse return ";
+  protected final String TEXT_2260 = "();";
+  protected final String TEXT_2261 = NL + "\t\t\t\tif (coreType) return ";
+  protected final String TEXT_2262 = "();" + NL + "\t\t\t\telse return ";
+  protected final String TEXT_2263 = "().map();";
+  protected final String TEXT_2264 = NL + "\t\t\t\tif (coreType) return ((";
+  protected final String TEXT_2265 = ".Internal.Wrapper)";
+  protected final String TEXT_2266 = "()).featureMap();" + NL + "\t\t\t\treturn ";
+  protected final String TEXT_2267 = "();";
+  protected final String TEXT_2268 = NL + "\t\t\t\tif (coreType) return ";
+  protected final String TEXT_2269 = "();" + NL + "\t\t\t\treturn ((";
+  protected final String TEXT_2270 = ".Internal)";
+  protected final String TEXT_2271 = "()).getWrapper();";
+  protected final String TEXT_2272 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2273 = "();";
+  protected final String TEXT_2274 = NL + "\t\t}";
+  protected final String TEXT_2275 = NL + "\t\treturn super.eGet(featureID, resolve, coreType);";
+  protected final String TEXT_2276 = NL + "\t\treturn eDynamicGet(featureID, resolve, coreType);";
+  protected final String TEXT_2277 = NL + "\t}" + NL;
+  protected final String TEXT_2278 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2279 = NL + "\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_2280 = NL + "\t@Override";
+  protected final String TEXT_2281 = NL + "\tpublic void eSet(int featureID, Object newValue)" + NL + "\t{" + NL + "\t\tswitch (featureID";
+  protected final String TEXT_2282 = ")" + NL + "\t\t{";
+  protected final String TEXT_2283 = NL + "\t\t\tcase ";
+  protected final String TEXT_2284 = ":";
+  protected final String TEXT_2285 = NL + "\t\t\t\t((";
+  protected final String TEXT_2286 = ".Internal)((";
+  protected final String TEXT_2287 = ".Internal.Wrapper)";
+  protected final String TEXT_2288 = "()).featureMap()).set(newValue);";
+  protected final String TEXT_2289 = NL + "\t\t\t\t((";
+  protected final String TEXT_2290 = ".Internal)";
+  protected final String TEXT_2291 = "()).set(newValue);";
+  protected final String TEXT_2292 = NL + "\t\t\t\t((";
+  protected final String TEXT_2293 = ".Setting)((";
+  protected final String TEXT_2294 = ".InternalMapView";
+  protected final String TEXT_2295 = ")";
+  protected final String TEXT_2296 = "()).eMap()).set(newValue);";
+  protected final String TEXT_2297 = NL + "\t\t\t\t((";
+  protected final String TEXT_2298 = ".Setting)";
+  protected final String TEXT_2299 = "()).set(newValue);";
+  protected final String TEXT_2300 = NL + "\t\t\t\t";
+  protected final String TEXT_2301 = "().clear();" + NL + "\t\t\t\t";
+  protected final String TEXT_2302 = "().addAll((";
+  protected final String TEXT_2303 = "<? extends ";
+  protected final String TEXT_2304 = ">";
+  protected final String TEXT_2305 = ")newValue);";
+  protected final String TEXT_2306 = NL + "\t\t\t\tset";
+  protected final String TEXT_2307 = "(((";
+  protected final String TEXT_2308 = ")newValue).";
+  protected final String TEXT_2309 = "());";
+  protected final String TEXT_2310 = NL + "\t\t\t\tset";
   protected final String TEXT_2311 = "(";
-  protected final String TEXT_2312 = ")";
-  protected final String TEXT_2313 = "newValue);";
-  protected final String TEXT_2314 = NL + "\t\t\t\treturn;";
-  protected final String TEXT_2315 = NL + "\t\t}";
-  protected final String TEXT_2316 = NL + "\t\tsuper.eSet(featureID, newValue);";
-  protected final String TEXT_2317 = NL + "\t\teDynamicSet(featureID, newValue);";
-  protected final String TEXT_2318 = NL + "\t}" + NL;
-  protected final String TEXT_2319 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2320 = NL + "\t@Override";
-  protected final String TEXT_2321 = NL + "\tpublic void eUnset(int featureID)" + NL + "\t{" + NL + "\t\tswitch (featureID";
-  protected final String TEXT_2322 = ")" + NL + "\t\t{";
-  protected final String TEXT_2323 = NL + "\t\t\tcase ";
-  protected final String TEXT_2324 = ":";
-  protected final String TEXT_2325 = NL + "\t\t\t\t((";
-  protected final String TEXT_2326 = ".Internal.Wrapper)";
-  protected final String TEXT_2327 = "()).featureMap().clear();";
-  protected final String TEXT_2328 = NL + "\t\t\t\t";
-  protected final String TEXT_2329 = "().clear();";
-  protected final String TEXT_2330 = NL + "\t\t\t\tunset";
-  protected final String TEXT_2331 = "();";
-  protected final String TEXT_2332 = NL + "\t\t\t\tset";
-  protected final String TEXT_2333 = "((";
-  protected final String TEXT_2334 = ")null);";
-  protected final String TEXT_2335 = NL + "\t\t\t\tset";
-  protected final String TEXT_2336 = "(";
-  protected final String TEXT_2337 = ");";
-  protected final String TEXT_2338 = NL + "\t\t\t\treturn;";
-  protected final String TEXT_2339 = NL + "\t\t}";
-  protected final String TEXT_2340 = NL + "\t\tsuper.eUnset(featureID);";
-  protected final String TEXT_2341 = NL + "\t\teDynamicUnset(featureID);";
-  protected final String TEXT_2342 = NL + "\t}" + NL;
-  protected final String TEXT_2343 = NL;
-  protected final String TEXT_2344 = "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2345 = NL + "\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_2346 = NL + "\t@Override";
-  protected final String TEXT_2347 = NL + "\tpublic boolean eIsSet(int featureID)" + NL + "\t{" + NL + "\t\tswitch (featureID)" + NL + "\t\t{";
-  protected final String TEXT_2348 = NL + "\t\t\tcase ";
-  protected final String TEXT_2349 = ":";
-  protected final String TEXT_2350 = NL + "\t\t\t\treturn isSet";
-  protected final String TEXT_2351 = "();";
-  protected final String TEXT_2352 = NL + "\t\t\t\treturn isSet";
-  protected final String TEXT_2353 = "();";
-  protected final String TEXT_2354 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2355 = "_ESETTING_DELEGATE.dynamicIsSet(this, null, 0);";
-  protected final String TEXT_2356 = NL + "\t\t\t\treturn !((";
-  protected final String TEXT_2357 = ".Internal.Wrapper)";
-  protected final String TEXT_2358 = "()).featureMap().isEmpty();";
-  protected final String TEXT_2359 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2360 = " != null && !";
-  protected final String TEXT_2361 = ".featureMap().isEmpty();";
-  protected final String TEXT_2362 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2363 = " != null && !";
-  protected final String TEXT_2364 = ".isEmpty();";
-  protected final String TEXT_2365 = NL + "\t\t\t\t";
-  protected final String TEXT_2366 = " ";
-  protected final String TEXT_2367 = " = (";
-  protected final String TEXT_2368 = ")eVirtualGet(";
-  protected final String TEXT_2369 = ");" + NL + "\t\t\t\treturn ";
-  protected final String TEXT_2370 = " != null && !";
-  protected final String TEXT_2371 = ".isEmpty();";
-  protected final String TEXT_2372 = NL + "\t\t\t\treturn !";
-  protected final String TEXT_2373 = "().isEmpty();";
-  protected final String TEXT_2374 = NL + "\t\t\t\treturn isSet";
-  protected final String TEXT_2375 = "();";
-  protected final String TEXT_2376 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2377 = " != null;";
-  protected final String TEXT_2378 = NL + "\t\t\t\treturn eVirtualGet(";
-  protected final String TEXT_2379 = ") != null;";
-  protected final String TEXT_2380 = NL + "\t\t\t\treturn basicGet";
-  protected final String TEXT_2381 = "() != null;";
-  protected final String TEXT_2382 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2383 = " != null;";
-  protected final String TEXT_2384 = NL + "\t\t\t\treturn eVirtualGet(";
-  protected final String TEXT_2385 = ") != null;";
-  protected final String TEXT_2386 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2387 = "() != null;";
-  protected final String TEXT_2388 = NL + "\t\t\t\treturn ((";
-  protected final String TEXT_2389 = " & ";
-  protected final String TEXT_2390 = "_EFLAG) != 0) != ";
-  protected final String TEXT_2391 = ";";
-  protected final String TEXT_2392 = NL + "\t\t\t\treturn (";
-  protected final String TEXT_2393 = " & ";
-  protected final String TEXT_2394 = "_EFLAG) != ";
-  protected final String TEXT_2395 = "_EFLAG_DEFAULT;";
-  protected final String TEXT_2396 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2397 = " != ";
-  protected final String TEXT_2398 = ";";
-  protected final String TEXT_2399 = NL + "\t\t\t\treturn eVirtualGet(";
-  protected final String TEXT_2400 = ", ";
-  protected final String TEXT_2401 = ") != ";
-  protected final String TEXT_2402 = ";";
-  protected final String TEXT_2403 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2404 = "() != ";
-  protected final String TEXT_2405 = ";";
-  protected final String TEXT_2406 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2407 = " == null ? ";
-  protected final String TEXT_2408 = " != null : !";
-  protected final String TEXT_2409 = ".equals(";
-  protected final String TEXT_2410 = ");";
-  protected final String TEXT_2411 = NL + "\t\t\t\t";
-  protected final String TEXT_2412 = " ";
-  protected final String TEXT_2413 = " = (";
-  protected final String TEXT_2414 = ")eVirtualGet(";
-  protected final String TEXT_2415 = ", ";
-  protected final String TEXT_2416 = ");" + NL + "\t\t\t\treturn ";
-  protected final String TEXT_2417 = " == null ? ";
-  protected final String TEXT_2418 = " != null : !";
-  protected final String TEXT_2419 = ".equals(";
-  protected final String TEXT_2420 = ");";
-  protected final String TEXT_2421 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2422 = " == null ? ";
-  protected final String TEXT_2423 = "() != null : !";
-  protected final String TEXT_2424 = ".equals(";
-  protected final String TEXT_2425 = "());";
-  protected final String TEXT_2426 = NL + "\t\t}";
-  protected final String TEXT_2427 = NL + "\t\treturn super.eIsSet(featureID);";
-  protected final String TEXT_2428 = NL + "\t\treturn eDynamicIsSet(featureID);";
-  protected final String TEXT_2429 = NL + "\t}" + NL;
-  protected final String TEXT_2430 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2431 = NL + "\t@Override";
-  protected final String TEXT_2432 = NL + "\tpublic int eBaseStructuralFeatureID(int derivedFeatureID, Class";
-  protected final String TEXT_2433 = " baseClass)" + NL + "\t{";
-  protected final String TEXT_2434 = NL + "\t\tif (baseClass == ";
-  protected final String TEXT_2435 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (derivedFeatureID";
-  protected final String TEXT_2436 = ")" + NL + "\t\t\t{";
-  protected final String TEXT_2437 = NL + "\t\t\t\tcase ";
-  protected final String TEXT_2438 = ": return ";
-  protected final String TEXT_2439 = ";";
-  protected final String TEXT_2440 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_2441 = NL + "\t\treturn super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);" + NL + "\t}";
-  protected final String TEXT_2442 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2443 = NL + "\t@Override";
-  protected final String TEXT_2444 = NL + "\tpublic int eDerivedStructuralFeatureID(int baseFeatureID, Class";
-  protected final String TEXT_2445 = " baseClass)" + NL + "\t{";
-  protected final String TEXT_2446 = NL + "\t\tif (baseClass == ";
-  protected final String TEXT_2447 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseFeatureID)" + NL + "\t\t\t{";
-  protected final String TEXT_2448 = NL + "\t\t\t\tcase ";
-  protected final String TEXT_2449 = ": return ";
-  protected final String TEXT_2450 = ";";
-  protected final String TEXT_2451 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_2452 = NL + "\t\tif (baseClass == ";
-  protected final String TEXT_2453 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseFeatureID";
-  protected final String TEXT_2454 = ")" + NL + "\t\t\t{";
-  protected final String TEXT_2455 = NL + "\t\t\t\tcase ";
-  protected final String TEXT_2456 = ": return ";
-  protected final String TEXT_2457 = ";";
-  protected final String TEXT_2458 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_2459 = NL + "\t\treturn super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);" + NL + "\t}" + NL;
-  protected final String TEXT_2460 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2461 = NL + "\t@Override";
-  protected final String TEXT_2462 = NL + "\tpublic int eDerivedOperationID(int baseOperationID, Class";
-  protected final String TEXT_2463 = " baseClass)" + NL + "\t{";
-  protected final String TEXT_2464 = NL + "\t\tif (baseClass == ";
-  protected final String TEXT_2465 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID)" + NL + "\t\t\t{";
-  protected final String TEXT_2466 = NL + "\t\t\t\tcase ";
-  protected final String TEXT_2467 = ": return ";
-  protected final String TEXT_2468 = ";";
-  protected final String TEXT_2469 = NL + "\t\t\t\tdefault: return super.eDerivedOperationID(baseOperationID, baseClass);" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_2470 = NL + "\t\tif (baseClass == ";
-  protected final String TEXT_2471 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID)" + NL + "\t\t\t{";
-  protected final String TEXT_2472 = NL + "\t\t\t\tcase ";
-  protected final String TEXT_2473 = ": return ";
-  protected final String TEXT_2474 = ";";
-  protected final String TEXT_2475 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_2476 = NL + "\t\tif (baseClass == ";
-  protected final String TEXT_2477 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID";
-  protected final String TEXT_2478 = ")" + NL + "\t\t\t{";
-  protected final String TEXT_2479 = NL + "\t\t\t\tcase ";
-  protected final String TEXT_2480 = ": return ";
-  protected final String TEXT_2481 = ";";
-  protected final String TEXT_2482 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_2483 = NL + "\t\treturn super.eDerivedOperationID(baseOperationID, baseClass);" + NL + "\t}" + NL;
-  protected final String TEXT_2484 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2485 = NL + "\t@Override";
-  protected final String TEXT_2486 = NL + "\tprotected Object[] eVirtualValues()" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_2487 = ";" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2488 = NL + "\t@Override";
-  protected final String TEXT_2489 = NL + "\tprotected void eSetVirtualValues(Object[] newValues)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_2490 = " = newValues;" + NL + "\t}" + NL;
-  protected final String TEXT_2491 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2492 = NL + "\t@Override";
-  protected final String TEXT_2493 = NL + "\tprotected int eVirtualIndexBits(int offset)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
-  protected final String TEXT_2494 = NL + "\t\t\tcase ";
-  protected final String TEXT_2495 = " :" + NL + "\t\t\t\treturn ";
-  protected final String TEXT_2496 = ";";
-  protected final String TEXT_2497 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2498 = NL + "\t@Override";
-  protected final String TEXT_2499 = NL + "\tprotected void eSetVirtualIndexBits(int offset, int newIndexBits)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
-  protected final String TEXT_2500 = NL + "\t\t\tcase ";
-  protected final String TEXT_2501 = " :" + NL + "\t\t\t\t";
-  protected final String TEXT_2502 = " = newIndexBits;" + NL + "\t\t\t\tbreak;";
-  protected final String TEXT_2503 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL;
-  protected final String TEXT_2504 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2505 = NL + "\t@Override";
-  protected final String TEXT_2506 = NL + "\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_2507 = NL + "\tpublic Object eInvoke(int operationID, ";
-  protected final String TEXT_2508 = " arguments) throws ";
-  protected final String TEXT_2509 = NL + "\t{" + NL + "\t\tswitch (operationID";
-  protected final String TEXT_2510 = ")" + NL + "\t\t{";
-  protected final String TEXT_2511 = NL + "\t\t\tcase ";
-  protected final String TEXT_2512 = ":";
-  protected final String TEXT_2513 = NL + "\t\t\t\t";
-  protected final String TEXT_2514 = "(";
+  protected final String TEXT_2312 = "(";
+  protected final String TEXT_2313 = ")";
+  protected final String TEXT_2314 = "newValue);";
+  protected final String TEXT_2315 = NL + "\t\t\t\treturn;";
+  protected final String TEXT_2316 = NL + "\t\t}";
+  protected final String TEXT_2317 = NL + "\t\tsuper.eSet(featureID, newValue);";
+  protected final String TEXT_2318 = NL + "\t\teDynamicSet(featureID, newValue);";
+  protected final String TEXT_2319 = NL + "\t}" + NL;
+  protected final String TEXT_2320 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2321 = NL + "\t@Override";
+  protected final String TEXT_2322 = NL + "\tpublic void eUnset(int featureID)" + NL + "\t{" + NL + "\t\tswitch (featureID";
+  protected final String TEXT_2323 = ")" + NL + "\t\t{";
+  protected final String TEXT_2324 = NL + "\t\t\tcase ";
+  protected final String TEXT_2325 = ":";
+  protected final String TEXT_2326 = NL + "\t\t\t\t((";
+  protected final String TEXT_2327 = ".Internal.Wrapper)";
+  protected final String TEXT_2328 = "()).featureMap().clear();";
+  protected final String TEXT_2329 = NL + "\t\t\t\t";
+  protected final String TEXT_2330 = "().clear();";
+  protected final String TEXT_2331 = NL + "\t\t\t\tunset";
+  protected final String TEXT_2332 = "();";
+  protected final String TEXT_2333 = NL + "\t\t\t\tset";
+  protected final String TEXT_2334 = "((";
+  protected final String TEXT_2335 = ")null);";
+  protected final String TEXT_2336 = NL + "\t\t\t\tset";
+  protected final String TEXT_2337 = "(";
+  protected final String TEXT_2338 = ");";
+  protected final String TEXT_2339 = NL + "\t\t\t\treturn;";
+  protected final String TEXT_2340 = NL + "\t\t}";
+  protected final String TEXT_2341 = NL + "\t\tsuper.eUnset(featureID);";
+  protected final String TEXT_2342 = NL + "\t\teDynamicUnset(featureID);";
+  protected final String TEXT_2343 = NL + "\t}" + NL;
+  protected final String TEXT_2344 = NL;
+  protected final String TEXT_2345 = "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2346 = NL + "\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_2347 = NL + "\t@Override";
+  protected final String TEXT_2348 = NL + "\tpublic boolean eIsSet(int featureID)" + NL + "\t{" + NL + "\t\tswitch (featureID)" + NL + "\t\t{";
+  protected final String TEXT_2349 = NL + "\t\t\tcase ";
+  protected final String TEXT_2350 = ":";
+  protected final String TEXT_2351 = NL + "\t\t\t\treturn isSet";
+  protected final String TEXT_2352 = "();";
+  protected final String TEXT_2353 = NL + "\t\t\t\treturn isSet";
+  protected final String TEXT_2354 = "();";
+  protected final String TEXT_2355 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2356 = "_ESETTING_DELEGATE.dynamicIsSet(this, null, 0);";
+  protected final String TEXT_2357 = NL + "\t\t\t\treturn !((";
+  protected final String TEXT_2358 = ".Internal.Wrapper)";
+  protected final String TEXT_2359 = "()).featureMap().isEmpty();";
+  protected final String TEXT_2360 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2361 = " != null && !";
+  protected final String TEXT_2362 = ".featureMap().isEmpty();";
+  protected final String TEXT_2363 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2364 = " != null && !";
+  protected final String TEXT_2365 = ".isEmpty();";
+  protected final String TEXT_2366 = NL + "\t\t\t\t";
+  protected final String TEXT_2367 = " ";
+  protected final String TEXT_2368 = " = (";
+  protected final String TEXT_2369 = ")eVirtualGet(";
+  protected final String TEXT_2370 = ");" + NL + "\t\t\t\treturn ";
+  protected final String TEXT_2371 = " != null && !";
+  protected final String TEXT_2372 = ".isEmpty();";
+  protected final String TEXT_2373 = NL + "\t\t\t\treturn !";
+  protected final String TEXT_2374 = "().isEmpty();";
+  protected final String TEXT_2375 = NL + "\t\t\t\treturn isSet";
+  protected final String TEXT_2376 = "();";
+  protected final String TEXT_2377 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2378 = " != null;";
+  protected final String TEXT_2379 = NL + "\t\t\t\treturn eVirtualGet(";
+  protected final String TEXT_2380 = ") != null;";
+  protected final String TEXT_2381 = NL + "\t\t\t\treturn basicGet";
+  protected final String TEXT_2382 = "() != null;";
+  protected final String TEXT_2383 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2384 = " != null;";
+  protected final String TEXT_2385 = NL + "\t\t\t\treturn eVirtualGet(";
+  protected final String TEXT_2386 = ") != null;";
+  protected final String TEXT_2387 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2388 = "() != null;";
+  protected final String TEXT_2389 = NL + "\t\t\t\treturn ((";
+  protected final String TEXT_2390 = " & ";
+  protected final String TEXT_2391 = "_EFLAG) != 0) != ";
+  protected final String TEXT_2392 = ";";
+  protected final String TEXT_2393 = NL + "\t\t\t\treturn (";
+  protected final String TEXT_2394 = " & ";
+  protected final String TEXT_2395 = "_EFLAG) != ";
+  protected final String TEXT_2396 = "_EFLAG_DEFAULT;";
+  protected final String TEXT_2397 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2398 = " != ";
+  protected final String TEXT_2399 = ";";
+  protected final String TEXT_2400 = NL + "\t\t\t\treturn eVirtualGet(";
+  protected final String TEXT_2401 = ", ";
+  protected final String TEXT_2402 = ") != ";
+  protected final String TEXT_2403 = ";";
+  protected final String TEXT_2404 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2405 = "() != ";
+  protected final String TEXT_2406 = ";";
+  protected final String TEXT_2407 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2408 = " == null ? ";
+  protected final String TEXT_2409 = " != null : !";
+  protected final String TEXT_2410 = ".equals(";
+  protected final String TEXT_2411 = ");";
+  protected final String TEXT_2412 = NL + "\t\t\t\t";
+  protected final String TEXT_2413 = " ";
+  protected final String TEXT_2414 = " = (";
+  protected final String TEXT_2415 = ")eVirtualGet(";
+  protected final String TEXT_2416 = ", ";
+  protected final String TEXT_2417 = ");" + NL + "\t\t\t\treturn ";
+  protected final String TEXT_2418 = " == null ? ";
+  protected final String TEXT_2419 = " != null : !";
+  protected final String TEXT_2420 = ".equals(";
+  protected final String TEXT_2421 = ");";
+  protected final String TEXT_2422 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2423 = " == null ? ";
+  protected final String TEXT_2424 = "() != null : !";
+  protected final String TEXT_2425 = ".equals(";
+  protected final String TEXT_2426 = "());";
+  protected final String TEXT_2427 = NL + "\t\t}";
+  protected final String TEXT_2428 = NL + "\t\treturn super.eIsSet(featureID);";
+  protected final String TEXT_2429 = NL + "\t\treturn eDynamicIsSet(featureID);";
+  protected final String TEXT_2430 = NL + "\t}" + NL;
+  protected final String TEXT_2431 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2432 = NL + "\t@Override";
+  protected final String TEXT_2433 = NL + "\tpublic int eBaseStructuralFeatureID(int derivedFeatureID, Class";
+  protected final String TEXT_2434 = " baseClass)" + NL + "\t{";
+  protected final String TEXT_2435 = NL + "\t\tif (baseClass == ";
+  protected final String TEXT_2436 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (derivedFeatureID";
+  protected final String TEXT_2437 = ")" + NL + "\t\t\t{";
+  protected final String TEXT_2438 = NL + "\t\t\t\tcase ";
+  protected final String TEXT_2439 = ": return ";
+  protected final String TEXT_2440 = ";";
+  protected final String TEXT_2441 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_2442 = NL + "\t\treturn super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);" + NL + "\t}";
+  protected final String TEXT_2443 = NL + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2444 = NL + "\t@Override";
+  protected final String TEXT_2445 = NL + "\tpublic int eDerivedStructuralFeatureID(int baseFeatureID, Class";
+  protected final String TEXT_2446 = " baseClass)" + NL + "\t{";
+  protected final String TEXT_2447 = NL + "\t\tif (baseClass == ";
+  protected final String TEXT_2448 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseFeatureID)" + NL + "\t\t\t{";
+  protected final String TEXT_2449 = NL + "\t\t\t\tcase ";
+  protected final String TEXT_2450 = ": return ";
+  protected final String TEXT_2451 = ";";
+  protected final String TEXT_2452 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_2453 = NL + "\t\tif (baseClass == ";
+  protected final String TEXT_2454 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseFeatureID";
+  protected final String TEXT_2455 = ")" + NL + "\t\t\t{";
+  protected final String TEXT_2456 = NL + "\t\t\t\tcase ";
+  protected final String TEXT_2457 = ": return ";
+  protected final String TEXT_2458 = ";";
+  protected final String TEXT_2459 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_2460 = NL + "\t\treturn super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);" + NL + "\t}" + NL;
+  protected final String TEXT_2461 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2462 = NL + "\t@Override";
+  protected final String TEXT_2463 = NL + "\tpublic int eDerivedOperationID(int baseOperationID, Class";
+  protected final String TEXT_2464 = " baseClass)" + NL + "\t{";
+  protected final String TEXT_2465 = NL + "\t\tif (baseClass == ";
+  protected final String TEXT_2466 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID)" + NL + "\t\t\t{";
+  protected final String TEXT_2467 = NL + "\t\t\t\tcase ";
+  protected final String TEXT_2468 = ": return ";
+  protected final String TEXT_2469 = ";";
+  protected final String TEXT_2470 = NL + "\t\t\t\tdefault: return super.eDerivedOperationID(baseOperationID, baseClass);" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_2471 = NL + "\t\tif (baseClass == ";
+  protected final String TEXT_2472 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID)" + NL + "\t\t\t{";
+  protected final String TEXT_2473 = NL + "\t\t\t\tcase ";
+  protected final String TEXT_2474 = ": return ";
+  protected final String TEXT_2475 = ";";
+  protected final String TEXT_2476 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_2477 = NL + "\t\tif (baseClass == ";
+  protected final String TEXT_2478 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseOperationID";
+  protected final String TEXT_2479 = ")" + NL + "\t\t\t{";
+  protected final String TEXT_2480 = NL + "\t\t\t\tcase ";
+  protected final String TEXT_2481 = ": return ";
+  protected final String TEXT_2482 = ";";
+  protected final String TEXT_2483 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_2484 = NL + "\t\treturn super.eDerivedOperationID(baseOperationID, baseClass);" + NL + "\t}" + NL;
+  protected final String TEXT_2485 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2486 = NL + "\t@Override";
+  protected final String TEXT_2487 = NL + "\tprotected Object[] eVirtualValues()" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_2488 = ";" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2489 = NL + "\t@Override";
+  protected final String TEXT_2490 = NL + "\tprotected void eSetVirtualValues(Object[] newValues)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_2491 = " = newValues;" + NL + "\t}" + NL;
+  protected final String TEXT_2492 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2493 = NL + "\t@Override";
+  protected final String TEXT_2494 = NL + "\tprotected int eVirtualIndexBits(int offset)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
+  protected final String TEXT_2495 = NL + "\t\t\tcase ";
+  protected final String TEXT_2496 = " :" + NL + "\t\t\t\treturn ";
+  protected final String TEXT_2497 = ";";
+  protected final String TEXT_2498 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2499 = NL + "\t@Override";
+  protected final String TEXT_2500 = NL + "\tprotected void eSetVirtualIndexBits(int offset, int newIndexBits)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
+  protected final String TEXT_2501 = NL + "\t\t\tcase ";
+  protected final String TEXT_2502 = " :" + NL + "\t\t\t\t";
+  protected final String TEXT_2503 = " = newIndexBits;" + NL + "\t\t\t\tbreak;";
+  protected final String TEXT_2504 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL;
+  protected final String TEXT_2505 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2506 = NL + "\t@Override";
+  protected final String TEXT_2507 = NL + "\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_2508 = NL + "\tpublic Object eInvoke(int operationID, ";
+  protected final String TEXT_2509 = " arguments) throws ";
+  protected final String TEXT_2510 = NL + "\t{" + NL + "\t\tswitch (operationID";
+  protected final String TEXT_2511 = ")" + NL + "\t\t{";
+  protected final String TEXT_2512 = NL + "\t\t\tcase ";
+  protected final String TEXT_2513 = ":";
+  protected final String TEXT_2514 = NL + "\t\t\t\t";
   protected final String TEXT_2515 = "(";
   protected final String TEXT_2516 = "(";
-  protected final String TEXT_2517 = ")";
-  protected final String TEXT_2518 = "arguments.get(";
-  protected final String TEXT_2519 = ")";
-  protected final String TEXT_2520 = ").";
-  protected final String TEXT_2521 = "()";
-  protected final String TEXT_2522 = ", ";
-  protected final String TEXT_2523 = ");" + NL + "\t\t\t\treturn null;";
-  protected final String TEXT_2524 = NL + "\t\t\t\treturn ";
-  protected final String TEXT_2525 = "new ";
-  protected final String TEXT_2526 = "(";
+  protected final String TEXT_2517 = "(";
+  protected final String TEXT_2518 = ")";
+  protected final String TEXT_2519 = "arguments.get(";
+  protected final String TEXT_2520 = ")";
+  protected final String TEXT_2521 = ").";
+  protected final String TEXT_2522 = "()";
+  protected final String TEXT_2523 = ", ";
+  protected final String TEXT_2524 = ");" + NL + "\t\t\t\treturn null;";
+  protected final String TEXT_2525 = NL + "\t\t\t\treturn ";
+  protected final String TEXT_2526 = "new ";
   protected final String TEXT_2527 = "(";
   protected final String TEXT_2528 = "(";
   protected final String TEXT_2529 = "(";
-  protected final String TEXT_2530 = ")";
-  protected final String TEXT_2531 = "arguments.get(";
-  protected final String TEXT_2532 = ")";
-  protected final String TEXT_2533 = ").";
-  protected final String TEXT_2534 = "()";
-  protected final String TEXT_2535 = ", ";
-  protected final String TEXT_2536 = ")";
+  protected final String TEXT_2530 = "(";
+  protected final String TEXT_2531 = ")";
+  protected final String TEXT_2532 = "arguments.get(";
+  protected final String TEXT_2533 = ")";
+  protected final String TEXT_2534 = ").";
+  protected final String TEXT_2535 = "()";
+  protected final String TEXT_2536 = ", ";
   protected final String TEXT_2537 = ")";
-  protected final String TEXT_2538 = ";";
-  protected final String TEXT_2539 = NL + "\t\t}";
-  protected final String TEXT_2540 = NL + "\t\treturn super.eInvoke(operationID, arguments);";
-  protected final String TEXT_2541 = NL + "\t\treturn eDynamicInvoke(operationID, arguments);";
-  protected final String TEXT_2542 = NL + "\t}" + NL;
-  protected final String TEXT_2543 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2544 = NL + "\t@Override";
-  protected final String TEXT_2545 = NL + "\tpublic String toString()" + NL + "\t{" + NL + "\t\tif (eIsProxy()) return super.toString();" + NL + "" + NL + "\t\tStringBuffer result = new StringBuffer(super.toString());";
-  protected final String TEXT_2546 = NL + "\t\tresult.append(\" (";
-  protected final String TEXT_2547 = ": \");";
-  protected final String TEXT_2548 = NL + "\t\tresult.append(\", ";
-  protected final String TEXT_2549 = ": \");";
-  protected final String TEXT_2550 = NL + "\t\tif (eVirtualIsSet(";
-  protected final String TEXT_2551 = ")) result.append(eVirtualGet(";
-  protected final String TEXT_2552 = ")); else result.append(\"<unset>\");";
-  protected final String TEXT_2553 = NL + "\t\tif (";
-  protected final String TEXT_2554 = "(";
-  protected final String TEXT_2555 = " & ";
-  protected final String TEXT_2556 = "_ESETFLAG) != 0";
-  protected final String TEXT_2557 = "ESet";
-  protected final String TEXT_2558 = ") result.append((";
-  protected final String TEXT_2559 = " & ";
-  protected final String TEXT_2560 = "_EFLAG) != 0); else result.append(\"<unset>\");";
-  protected final String TEXT_2561 = NL + "\t\tif (";
-  protected final String TEXT_2562 = "(";
-  protected final String TEXT_2563 = " & ";
-  protected final String TEXT_2564 = "_ESETFLAG) != 0";
-  protected final String TEXT_2565 = "ESet";
-  protected final String TEXT_2566 = ") result.append(";
-  protected final String TEXT_2567 = "_EFLAG_VALUES[(";
-  protected final String TEXT_2568 = " & ";
-  protected final String TEXT_2569 = "_EFLAG) >>> ";
-  protected final String TEXT_2570 = "_EFLAG_OFFSET]); else result.append(\"<unset>\");";
-  protected final String TEXT_2571 = NL + "\t\tif (";
-  protected final String TEXT_2572 = "(";
-  protected final String TEXT_2573 = " & ";
-  protected final String TEXT_2574 = "_ESETFLAG) != 0";
-  protected final String TEXT_2575 = "ESet";
-  protected final String TEXT_2576 = ") result.append(";
-  protected final String TEXT_2577 = "); else result.append(\"<unset>\");";
-  protected final String TEXT_2578 = NL + "\t\tresult.append(eVirtualGet(";
-  protected final String TEXT_2579 = ", ";
-  protected final String TEXT_2580 = "));";
-  protected final String TEXT_2581 = NL + "\t\tresult.append((";
-  protected final String TEXT_2582 = " & ";
-  protected final String TEXT_2583 = "_EFLAG) != 0);";
-  protected final String TEXT_2584 = NL + "\t\tresult.append(";
-  protected final String TEXT_2585 = "_EFLAG_VALUES[(";
-  protected final String TEXT_2586 = " & ";
-  protected final String TEXT_2587 = "_EFLAG) >>> ";
-  protected final String TEXT_2588 = "_EFLAG_OFFSET]);";
-  protected final String TEXT_2589 = NL + "\t\tresult.append(";
-  protected final String TEXT_2590 = ");";
-  protected final String TEXT_2591 = NL + "\t\tresult.append(')');" + NL + "\t\treturn result.toString();" + NL + "\t}" + NL;
-  protected final String TEXT_2592 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2593 = NL + "\t@";
-  protected final String TEXT_2594 = NL + "\tprotected int hash = -1;" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getHash()" + NL + "\t{" + NL + "\t\tif (hash == -1)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_2595 = " theKey = getKey();" + NL + "\t\t\thash = (theKey == null ? 0 : theKey.hashCode());" + NL + "\t\t}" + NL + "\t\treturn hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setHash(int hash)" + NL + "\t{" + NL + "\t\tthis.hash = hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
-  protected final String TEXT_2596 = " getKey()" + NL + "\t{";
-  protected final String TEXT_2597 = NL + "\t\treturn new ";
-  protected final String TEXT_2598 = "(getTypedKey());";
-  protected final String TEXT_2599 = NL + "\t\treturn getTypedKey();";
-  protected final String TEXT_2600 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setKey(";
-  protected final String TEXT_2601 = " key)" + NL + "\t{";
-  protected final String TEXT_2602 = NL + "\t\tgetTypedKey().addAll(";
-  protected final String TEXT_2603 = "(";
-  protected final String TEXT_2604 = ")";
-  protected final String TEXT_2605 = "key);";
-  protected final String TEXT_2606 = NL + "\t\tsetTypedKey(key);";
-  protected final String TEXT_2607 = NL + "\t\tsetTypedKey(((";
-  protected final String TEXT_2608 = ")key).";
-  protected final String TEXT_2609 = "());";
-  protected final String TEXT_2610 = NL + "\t\tsetTypedKey((";
-  protected final String TEXT_2611 = ")key);";
-  protected final String TEXT_2612 = 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_2613 = " getValue()" + NL + "\t{";
-  protected final String TEXT_2614 = NL + "\t\treturn new ";
-  protected final String TEXT_2615 = "(getTypedValue());";
-  protected final String TEXT_2616 = NL + "\t\treturn getTypedValue();";
-  protected final String TEXT_2617 = 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_2618 = " setValue(";
-  protected final String TEXT_2619 = " value)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_2620 = " oldValue = getValue();";
-  protected final String TEXT_2621 = NL + "\t\tgetTypedValue().clear();" + NL + "\t\tgetTypedValue().addAll(";
-  protected final String TEXT_2622 = "(";
-  protected final String TEXT_2623 = ")";
-  protected final String TEXT_2624 = "value);";
-  protected final String TEXT_2625 = NL + "\t\tsetTypedValue(value);";
-  protected final String TEXT_2626 = NL + "\t\tsetTypedValue(((";
-  protected final String TEXT_2627 = ")value).";
-  protected final String TEXT_2628 = "());";
-  protected final String TEXT_2629 = NL + "\t\tsetTypedValue((";
-  protected final String TEXT_2630 = ")value);";
-  protected final String TEXT_2631 = NL + "\t\treturn oldValue;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2632 = NL + "\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_2633 = NL + "\tpublic ";
-  protected final String TEXT_2634 = " getEMap()" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_2635 = " container = eContainer();" + NL + "\t\treturn container == null ? null : (";
-  protected final String TEXT_2636 = ")container.eGet(eContainmentFeature());" + NL + "\t}" + NL;
-  protected final String TEXT_2637 = NL + "\t/**" + NL + "\t * The cached environment for evaluating OCL expressions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final ";
-  protected final String TEXT_2638 = " EOCL_ENV = ";
-  protected final String TEXT_2639 = ".newInstance();" + NL;
-  protected final String TEXT_2640 = NL + "\t/**" + NL + "\t * Creates a new instance of the specified Ecore class." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @param eClass The Ecore class of the instance to create." + NL + "\t * @return The new instance." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_2641 = " create(";
-  protected final String TEXT_2642 = " eClass)" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_2643 = ".create(eClass);" + NL + "\t}" + NL;
-  protected final String TEXT_2644 = NL + "\t/**" + NL + "\t * Retrieves the cache adapter for this '<em><b>";
-  protected final String TEXT_2645 = "</b></em>'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return The cache adapter for this '<em><b>";
-  protected final String TEXT_2646 = "</b></em>'." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
-  protected final String TEXT_2647 = " getCacheAdapter()" + NL + "\t{" + NL + "\t\treturn ";
-  protected final String TEXT_2648 = ".getCacheAdapter(this);" + NL + "\t}" + NL;
-  protected final String TEXT_2649 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2650 = NL + "\t@Override";
-  protected final String TEXT_2651 = NL + "\tprotected ";
-  protected final String TEXT_2652 = " ";
-  protected final String TEXT_2653 = "Helper(";
-  protected final String TEXT_2654 = " ";
-  protected final String TEXT_2655 = ")" + NL + "\t{";
-  protected final String TEXT_2656 = NL + "\t\t";
-  protected final String TEXT_2657 = ".addAll(super.";
-  protected final String TEXT_2658 = "());";
-  protected final String TEXT_2659 = NL + "\t\tsuper.";
-  protected final String TEXT_2660 = "Helper(";
-  protected final String TEXT_2661 = ");";
-  protected final String TEXT_2662 = NL + "\t\tif (isSet";
-  protected final String TEXT_2663 = "())" + NL + "\t\t{" + NL + "\t\t\tfor (";
-  protected final String TEXT_2664 = "<";
-  protected final String TEXT_2665 = ">";
-  protected final String TEXT_2666 = " i = ((";
-  protected final String TEXT_2667 = ") ";
-  protected final String TEXT_2668 = "()).basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_2669 = ".add(i.next());" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_2670 = NL + "\t\tif (eIsSet(";
-  protected final String TEXT_2671 = "))" + NL + "\t\t{" + NL + "\t\t\tfor (";
-  protected final String TEXT_2672 = "<";
-  protected final String TEXT_2673 = ">";
-  protected final String TEXT_2674 = " i = ((";
-  protected final String TEXT_2675 = ") ";
-  protected final String TEXT_2676 = "()).basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_2677 = ".add(i.next());" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_2678 = NL + "\t\t";
-  protected final String TEXT_2679 = " ";
-  protected final String TEXT_2680 = " = ";
-  protected final String TEXT_2681 = "();" + NL + "\t\tif (!";
-  protected final String TEXT_2682 = ".isEmpty())" + NL + "\t\t{" + NL + "\t\t\tfor (";
-  protected final String TEXT_2683 = "<";
-  protected final String TEXT_2684 = ">";
-  protected final String TEXT_2685 = " i = ((";
-  protected final String TEXT_2686 = ") ";
-  protected final String TEXT_2687 = ").basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_2688 = ".add(i.next());" + NL + "\t\t\t}" + NL + "\t\t}";
-  protected final String TEXT_2689 = NL + "\t\tif (isSet";
-  protected final String TEXT_2690 = "())" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_2691 = ".addAll(";
-  protected final String TEXT_2692 = "());" + NL + "\t\t}";
-  protected final String TEXT_2693 = NL + "\t\tif (eIsSet(";
-  protected final String TEXT_2694 = "))" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_2695 = ".addAll(";
-  protected final String TEXT_2696 = "());" + NL + "\t\t}";
-  protected final String TEXT_2697 = NL + "\t\t";
-  protected final String TEXT_2698 = " ";
-  protected final String TEXT_2699 = " = ";
-  protected final String TEXT_2700 = "();" + NL + "\t\tif (!";
-  protected final String TEXT_2701 = ".isEmpty())" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_2702 = ".addAll(";
-  protected final String TEXT_2703 = ");" + NL + "\t\t}";
-  protected final String TEXT_2704 = NL + "\t\tif (isSet";
-  protected final String TEXT_2705 = "())" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_2706 = ".add(";
-  protected final String TEXT_2707 = "basicGet";
-  protected final String TEXT_2708 = "());" + NL + "\t\t}";
-  protected final String TEXT_2709 = NL + "\t\t";
-  protected final String TEXT_2710 = " ";
-  protected final String TEXT_2711 = " = ";
-  protected final String TEXT_2712 = "basicGet";
-  protected final String TEXT_2713 = "();" + NL + "\t\tif (";
-  protected final String TEXT_2714 = " != null)" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_2715 = ".add(";
-  protected final String TEXT_2716 = ");" + NL + "\t\t}";
-  protected final String TEXT_2717 = NL + "\t\treturn ";
-  protected final String TEXT_2718 = ";" + NL + "\t}" + NL;
-  protected final String TEXT_2719 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2720 = NL + "\t@Override";
-  protected final String TEXT_2721 = NL + "\tpublic boolean isSet";
-  protected final String TEXT_2722 = "()" + NL + "\t{";
-  protected final String TEXT_2723 = NL + "\t\treturn super.isSet";
-  protected final String TEXT_2724 = "()";
-  protected final String TEXT_2725 = NL + "\t\treturn isSet";
-  protected final String TEXT_2726 = "()";
-  protected final String TEXT_2727 = ";";
-  protected final String TEXT_2728 = NL + "\t\treturn !";
-  protected final String TEXT_2729 = "().isEmpty()";
-  protected final String TEXT_2730 = ";";
-  protected final String TEXT_2731 = NL + "\t\treturn ";
-  protected final String TEXT_2732 = "basicGet";
-  protected final String TEXT_2733 = "() != null";
-  protected final String TEXT_2734 = ";";
-  protected final String TEXT_2735 = NL + "\t\treturn eIsSet(";
-  protected final String TEXT_2736 = ")";
-  protected final String TEXT_2737 = ";";
-  protected final String TEXT_2738 = NL + "\t\t\t|| isSet";
-  protected final String TEXT_2739 = "()";
-  protected final String TEXT_2740 = ";";
-  protected final String TEXT_2741 = NL + "\t\t\t|| !";
-  protected final String TEXT_2742 = "().isEmpty()";
-  protected final String TEXT_2743 = ";";
-  protected final String TEXT_2744 = NL + "\t\t\t|| ";
-  protected final String TEXT_2745 = "basicGet";
-  protected final String TEXT_2746 = "() != null";
-  protected final String TEXT_2747 = ";";
-  protected final String TEXT_2748 = NL + "\t\t\t|| eIsSet(";
-  protected final String TEXT_2749 = ")";
-  protected final String TEXT_2750 = ";";
-  protected final String TEXT_2751 = NL + "\t\treturn super.isSet";
-  protected final String TEXT_2752 = "();";
-  protected final String TEXT_2753 = NL + "\t\treturn false;";
-  protected final String TEXT_2754 = NL + "\t}" + NL;
-  protected final String TEXT_2755 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2756 = NL + "\t@Override";
-  protected final String TEXT_2757 = NL + "\tpublic ";
-  protected final String TEXT_2758 = " ";
-  protected final String TEXT_2759 = "()" + NL + "\t{";
-  protected final String TEXT_2760 = NL + "\t\t@SuppressWarnings(\"unchecked\")" + NL + "\t\t";
-  protected final String TEXT_2761 = " ";
-  protected final String TEXT_2762 = " = (";
-  protected final String TEXT_2763 = ")((";
-  protected final String TEXT_2764 = ")";
-  protected final String TEXT_2765 = "());" + NL + "\t\treturn ";
-  protected final String TEXT_2766 = ";";
-  protected final String TEXT_2767 = NL + "\t\treturn ";
-  protected final String TEXT_2768 = "();";
-  protected final String TEXT_2769 = NL + "\t\treturn new ";
-  protected final String TEXT_2770 = ".UnmodifiableEList";
-  protected final String TEXT_2771 = "(this, ";
-  protected final String TEXT_2772 = "null";
-  protected final String TEXT_2773 = ", 0, ";
-  protected final String TEXT_2774 = ".EMPTY_LIST.toArray());";
-  protected final String TEXT_2775 = NL + "\t\treturn null;";
-  protected final String TEXT_2776 = NL + "\t\treturn ";
-  protected final String TEXT_2777 = "();";
-  protected final String TEXT_2778 = NL + "\t}" + NL;
-  protected final String TEXT_2779 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2780 = NL + "\t@Override";
-  protected final String TEXT_2781 = NL + "\tpublic ";
-  protected final String TEXT_2782 = " basicGet";
-  protected final String TEXT_2783 = "()" + NL + "\t{";
-  protected final String TEXT_2784 = NL + "\t\treturn null;";
-  protected final String TEXT_2785 = NL + "\t\treturn ";
-  protected final String TEXT_2786 = "basicGet";
-  protected final String TEXT_2787 = "();";
-  protected final String TEXT_2788 = NL + "\t}" + NL;
-  protected final String TEXT_2789 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2790 = NL + "\t@Override";
-  protected final String TEXT_2791 = NL + "\tpublic ";
-  protected final String TEXT_2792 = " basicSet";
-  protected final String TEXT_2793 = "(";
-  protected final String TEXT_2794 = " new";
-  protected final String TEXT_2795 = ", ";
-  protected final String TEXT_2796 = " msgs)" + NL + "\t{";
-  protected final String TEXT_2797 = NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_2798 = NL + "\t\tif (new";
-  protected final String TEXT_2799 = " != null && !(new";
-  protected final String TEXT_2800 = " instanceof ";
-  protected final String TEXT_2801 = "))" + NL + "\t\t{" + NL + "\t\t\tthrow new IllegalArgumentException(String.valueOf(new";
-  protected final String TEXT_2802 = "));" + NL + "\t\t}";
-  protected final String TEXT_2803 = NL + "\t\treturn basicSet";
-  protected final String TEXT_2804 = "(";
+  protected final String TEXT_2538 = ")";
+  protected final String TEXT_2539 = ";";
+  protected final String TEXT_2540 = NL + "\t\t}";
+  protected final String TEXT_2541 = NL + "\t\treturn super.eInvoke(operationID, arguments);";
+  protected final String TEXT_2542 = NL + "\t\treturn eDynamicInvoke(operationID, arguments);";
+  protected final String TEXT_2543 = NL + "\t}" + NL;
+  protected final String TEXT_2544 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2545 = NL + "\t@Override";
+  protected final String TEXT_2546 = NL + "\tpublic String toString()" + NL + "\t{" + NL + "\t\tif (eIsProxy()) return super.toString();" + NL + "" + NL + "\t\tStringBuffer result = new StringBuffer(super.toString());";
+  protected final String TEXT_2547 = NL + "\t\tresult.append(\" (";
+  protected final String TEXT_2548 = ": \");";
+  protected final String TEXT_2549 = NL + "\t\tresult.append(\", ";
+  protected final String TEXT_2550 = ": \");";
+  protected final String TEXT_2551 = NL + "\t\tif (eVirtualIsSet(";
+  protected final String TEXT_2552 = ")) result.append(eVirtualGet(";
+  protected final String TEXT_2553 = ")); else result.append(\"<unset>\");";
+  protected final String TEXT_2554 = NL + "\t\tif (";
+  protected final String TEXT_2555 = "(";
+  protected final String TEXT_2556 = " & ";
+  protected final String TEXT_2557 = "_ESETFLAG) != 0";
+  protected final String TEXT_2558 = "ESet";
+  protected final String TEXT_2559 = ") result.append((";
+  protected final String TEXT_2560 = " & ";
+  protected final String TEXT_2561 = "_EFLAG) != 0); else result.append(\"<unset>\");";
+  protected final String TEXT_2562 = NL + "\t\tif (";
+  protected final String TEXT_2563 = "(";
+  protected final String TEXT_2564 = " & ";
+  protected final String TEXT_2565 = "_ESETFLAG) != 0";
+  protected final String TEXT_2566 = "ESet";
+  protected final String TEXT_2567 = ") result.append(";
+  protected final String TEXT_2568 = "_EFLAG_VALUES[(";
+  protected final String TEXT_2569 = " & ";
+  protected final String TEXT_2570 = "_EFLAG) >>> ";
+  protected final String TEXT_2571 = "_EFLAG_OFFSET]); else result.append(\"<unset>\");";
+  protected final String TEXT_2572 = NL + "\t\tif (";
+  protected final String TEXT_2573 = "(";
+  protected final String TEXT_2574 = " & ";
+  protected final String TEXT_2575 = "_ESETFLAG) != 0";
+  protected final String TEXT_2576 = "ESet";
+  protected final String TEXT_2577 = ") result.append(";
+  protected final String TEXT_2578 = "); else result.append(\"<unset>\");";
+  protected final String TEXT_2579 = NL + "\t\tresult.append(eVirtualGet(";
+  protected final String TEXT_2580 = ", ";
+  protected final String TEXT_2581 = "));";
+  protected final String TEXT_2582 = NL + "\t\tresult.append((";
+  protected final String TEXT_2583 = " & ";
+  protected final String TEXT_2584 = "_EFLAG) != 0);";
+  protected final String TEXT_2585 = NL + "\t\tresult.append(";
+  protected final String TEXT_2586 = "_EFLAG_VALUES[(";
+  protected final String TEXT_2587 = " & ";
+  protected final String TEXT_2588 = "_EFLAG) >>> ";
+  protected final String TEXT_2589 = "_EFLAG_OFFSET]);";
+  protected final String TEXT_2590 = NL + "\t\tresult.append(";
+  protected final String TEXT_2591 = ");";
+  protected final String TEXT_2592 = NL + "\t\tresult.append(')');" + NL + "\t\treturn result.toString();" + NL + "\t}" + NL;
+  protected final String TEXT_2593 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2594 = NL + "\t@";
+  protected final String TEXT_2595 = NL + "\tprotected int hash = -1;" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getHash()" + NL + "\t{" + NL + "\t\tif (hash == -1)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_2596 = " theKey = getKey();" + NL + "\t\t\thash = (theKey == null ? 0 : theKey.hashCode());" + NL + "\t\t}" + NL + "\t\treturn hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setHash(int hash)" + NL + "\t{" + NL + "\t\tthis.hash = hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+  protected final String TEXT_2597 = " getKey()" + NL + "\t{";
+  protected final String TEXT_2598 = NL + "\t\treturn new ";
+  protected final String TEXT_2599 = "(getTypedKey());";
+  protected final String TEXT_2600 = NL + "\t\treturn getTypedKey();";
+  protected final String TEXT_2601 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setKey(";
+  protected final String TEXT_2602 = " key)" + NL + "\t{";
+  protected final String TEXT_2603 = NL + "\t\tgetTypedKey().addAll(";
+  protected final String TEXT_2604 = "(";
+  protected final String TEXT_2605 = ")";
+  protected final String TEXT_2606 = "key);";
+  protected final String TEXT_2607 = NL + "\t\tsetTypedKey(key);";
+  protected final String TEXT_2608 = NL + "\t\tsetTypedKey(((";
+  protected final String TEXT_2609 = ")key).";
+  protected final String TEXT_2610 = "());";
+  protected final String TEXT_2611 = NL + "\t\tsetTypedKey((";
+  protected final String TEXT_2612 = ")key);";
+  protected final String TEXT_2613 = 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_2614 = " getValue()" + NL + "\t{";
+  protected final String TEXT_2615 = NL + "\t\treturn new ";
+  protected final String TEXT_2616 = "(getTypedValue());";
+  protected final String TEXT_2617 = NL + "\t\treturn getTypedValue();";
+  protected final String TEXT_2618 = 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_2619 = " setValue(";
+  protected final String TEXT_2620 = " value)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_2621 = " oldValue = getValue();";
+  protected final String TEXT_2622 = NL + "\t\tgetTypedValue().clear();" + NL + "\t\tgetTypedValue().addAll(";
+  protected final String TEXT_2623 = "(";
+  protected final String TEXT_2624 = ")";
+  protected final String TEXT_2625 = "value);";
+  protected final String TEXT_2626 = NL + "\t\tsetTypedValue(value);";
+  protected final String TEXT_2627 = NL + "\t\tsetTypedValue(((";
+  protected final String TEXT_2628 = ")value).";
+  protected final String TEXT_2629 = "());";
+  protected final String TEXT_2630 = NL + "\t\tsetTypedValue((";
+  protected final String TEXT_2631 = ")value);";
+  protected final String TEXT_2632 = NL + "\t\treturn oldValue;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2633 = NL + "\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_2634 = NL + "\tpublic ";
+  protected final String TEXT_2635 = " getEMap()" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_2636 = " container = eContainer();" + NL + "\t\treturn container == null ? null : (";
+  protected final String TEXT_2637 = ")container.eGet(eContainmentFeature());" + NL + "\t}" + NL;
+  protected final String TEXT_2638 = NL + "\t/**" + NL + "\t * The cached environment for evaluating OCL expressions." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final ";
+  protected final String TEXT_2639 = " EOCL_ENV = ";
+  protected final String TEXT_2640 = ".newInstance();" + NL;
+  protected final String TEXT_2641 = NL + "\t/**" + NL + "\t * Creates a new instance of the specified Ecore class." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @param eClass The Ecore class of the instance to create." + NL + "\t * @return The new instance." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_2642 = " create(";
+  protected final String TEXT_2643 = " eClass)" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_2644 = ".create(eClass);" + NL + "\t}" + NL;
+  protected final String TEXT_2645 = NL + "\t/**" + NL + "\t * Retrieves the cache adapter for this '<em><b>";
+  protected final String TEXT_2646 = "</b></em>'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return The cache adapter for this '<em><b>";
+  protected final String TEXT_2647 = "</b></em>'." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+  protected final String TEXT_2648 = " getCacheAdapter()" + NL + "\t{" + NL + "\t\treturn ";
+  protected final String TEXT_2649 = ".getCacheAdapter(this);" + NL + "\t}" + NL;
+  protected final String TEXT_2650 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2651 = NL + "\t@Override";
+  protected final String TEXT_2652 = NL + "\tprotected ";
+  protected final String TEXT_2653 = " ";
+  protected final String TEXT_2654 = "Helper(";
+  protected final String TEXT_2655 = " ";
+  protected final String TEXT_2656 = ")" + NL + "\t{";
+  protected final String TEXT_2657 = NL + "\t\t";
+  protected final String TEXT_2658 = ".addAll(super.";
+  protected final String TEXT_2659 = "());";
+  protected final String TEXT_2660 = NL + "\t\tsuper.";
+  protected final String TEXT_2661 = "Helper(";
+  protected final String TEXT_2662 = ");";
+  protected final String TEXT_2663 = NL + "\t\tif (isSet";
+  protected final String TEXT_2664 = "())" + NL + "\t\t{" + NL + "\t\t\tfor (";
+  protected final String TEXT_2665 = "<";
+  protected final String TEXT_2666 = ">";
+  protected final String TEXT_2667 = " i = ((";
+  protected final String TEXT_2668 = ") ";
+  protected final String TEXT_2669 = "()).basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_2670 = ".add(i.next());" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_2671 = NL + "\t\tif (eIsSet(";
+  protected final String TEXT_2672 = "))" + NL + "\t\t{" + NL + "\t\t\tfor (";
+  protected final String TEXT_2673 = "<";
+  protected final String TEXT_2674 = ">";
+  protected final String TEXT_2675 = " i = ((";
+  protected final String TEXT_2676 = ") ";
+  protected final String TEXT_2677 = "()).basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_2678 = ".add(i.next());" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_2679 = NL + "\t\t";
+  protected final String TEXT_2680 = " ";
+  protected final String TEXT_2681 = " = ";
+  protected final String TEXT_2682 = "();" + NL + "\t\tif (!";
+  protected final String TEXT_2683 = ".isEmpty())" + NL + "\t\t{" + NL + "\t\t\tfor (";
+  protected final String TEXT_2684 = "<";
+  protected final String TEXT_2685 = ">";
+  protected final String TEXT_2686 = " i = ((";
+  protected final String TEXT_2687 = ") ";
+  protected final String TEXT_2688 = ").basicIterator(); i.hasNext(); )" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_2689 = ".add(i.next());" + NL + "\t\t\t}" + NL + "\t\t}";
+  protected final String TEXT_2690 = NL + "\t\tif (isSet";
+  protected final String TEXT_2691 = "())" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_2692 = ".addAll(";
+  protected final String TEXT_2693 = "());" + NL + "\t\t}";
+  protected final String TEXT_2694 = NL + "\t\tif (eIsSet(";
+  protected final String TEXT_2695 = "))" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_2696 = ".addAll(";
+  protected final String TEXT_2697 = "());" + NL + "\t\t}";
+  protected final String TEXT_2698 = NL + "\t\t";
+  protected final String TEXT_2699 = " ";
+  protected final String TEXT_2700 = " = ";
+  protected final String TEXT_2701 = "();" + NL + "\t\tif (!";
+  protected final String TEXT_2702 = ".isEmpty())" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_2703 = ".addAll(";
+  protected final String TEXT_2704 = ");" + NL + "\t\t}";
+  protected final String TEXT_2705 = NL + "\t\tif (isSet";
+  protected final String TEXT_2706 = "())" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_2707 = ".add(";
+  protected final String TEXT_2708 = "basicGet";
+  protected final String TEXT_2709 = "());" + NL + "\t\t}";
+  protected final String TEXT_2710 = NL + "\t\t";
+  protected final String TEXT_2711 = " ";
+  protected final String TEXT_2712 = " = ";
+  protected final String TEXT_2713 = "basicGet";
+  protected final String TEXT_2714 = "();" + NL + "\t\tif (";
+  protected final String TEXT_2715 = " != null)" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_2716 = ".add(";
+  protected final String TEXT_2717 = ");" + NL + "\t\t}";
+  protected final String TEXT_2718 = NL + "\t\treturn ";
+  protected final String TEXT_2719 = ";" + NL + "\t}" + NL;
+  protected final String TEXT_2720 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2721 = NL + "\t@Override";
+  protected final String TEXT_2722 = NL + "\tpublic boolean isSet";
+  protected final String TEXT_2723 = "()" + NL + "\t{";
+  protected final String TEXT_2724 = NL + "\t\treturn super.isSet";
+  protected final String TEXT_2725 = "()";
+  protected final String TEXT_2726 = NL + "\t\treturn isSet";
+  protected final String TEXT_2727 = "()";
+  protected final String TEXT_2728 = ";";
+  protected final String TEXT_2729 = NL + "\t\treturn !";
+  protected final String TEXT_2730 = "().isEmpty()";
+  protected final String TEXT_2731 = ";";
+  protected final String TEXT_2732 = NL + "\t\treturn ";
+  protected final String TEXT_2733 = "basicGet";
+  protected final String TEXT_2734 = "() != null";
+  protected final String TEXT_2735 = ";";
+  protected final String TEXT_2736 = NL + "\t\treturn eIsSet(";
+  protected final String TEXT_2737 = ")";
+  protected final String TEXT_2738 = ";";
+  protected final String TEXT_2739 = NL + "\t\t\t|| isSet";
+  protected final String TEXT_2740 = "()";
+  protected final String TEXT_2741 = ";";
+  protected final String TEXT_2742 = NL + "\t\t\t|| !";
+  protected final String TEXT_2743 = "().isEmpty()";
+  protected final String TEXT_2744 = ";";
+  protected final String TEXT_2745 = NL + "\t\t\t|| ";
+  protected final String TEXT_2746 = "basicGet";
+  protected final String TEXT_2747 = "() != null";
+  protected final String TEXT_2748 = ";";
+  protected final String TEXT_2749 = NL + "\t\t\t|| eIsSet(";
+  protected final String TEXT_2750 = ")";
+  protected final String TEXT_2751 = ";";
+  protected final String TEXT_2752 = NL + "\t\treturn super.isSet";
+  protected final String TEXT_2753 = "();";
+  protected final String TEXT_2754 = NL + "\t\treturn false;";
+  protected final String TEXT_2755 = NL + "\t}" + NL;
+  protected final String TEXT_2756 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2757 = NL + "\t@Override";
+  protected final String TEXT_2758 = NL + "\tpublic ";
+  protected final String TEXT_2759 = " ";
+  protected final String TEXT_2760 = "()" + NL + "\t{";
+  protected final String TEXT_2761 = NL + "\t\t@SuppressWarnings(\"unchecked\")" + NL + "\t\t";
+  protected final String TEXT_2762 = " ";
+  protected final String TEXT_2763 = " = (";
+  protected final String TEXT_2764 = ")((";
+  protected final String TEXT_2765 = ")";
+  protected final String TEXT_2766 = "());" + NL + "\t\treturn ";
+  protected final String TEXT_2767 = ";";
+  protected final String TEXT_2768 = NL + "\t\treturn ";
+  protected final String TEXT_2769 = "();";
+  protected final String TEXT_2770 = NL + "\t\treturn new ";
+  protected final String TEXT_2771 = ".UnmodifiableEList";
+  protected final String TEXT_2772 = "(this, ";
+  protected final String TEXT_2773 = "null";
+  protected final String TEXT_2774 = ", 0, ";
+  protected final String TEXT_2775 = ".EMPTY_LIST.toArray());";
+  protected final String TEXT_2776 = NL + "\t\treturn null;";
+  protected final String TEXT_2777 = NL + "\t\treturn ";
+  protected final String TEXT_2778 = "();";
+  protected final String TEXT_2779 = NL + "\t}" + NL;
+  protected final String TEXT_2780 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2781 = NL + "\t@Override";
+  protected final String TEXT_2782 = NL + "\tpublic ";
+  protected final String TEXT_2783 = " basicGet";
+  protected final String TEXT_2784 = "()" + NL + "\t{";
+  protected final String TEXT_2785 = NL + "\t\treturn null;";
+  protected final String TEXT_2786 = NL + "\t\treturn ";
+  protected final String TEXT_2787 = "basicGet";
+  protected final String TEXT_2788 = "();";
+  protected final String TEXT_2789 = NL + "\t}" + NL;
+  protected final String TEXT_2790 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2791 = NL + "\t@Override";
+  protected final String TEXT_2792 = NL + "\tpublic ";
+  protected final String TEXT_2793 = " basicSet";
+  protected final String TEXT_2794 = "(";
+  protected final String TEXT_2795 = " new";
+  protected final String TEXT_2796 = ", ";
+  protected final String TEXT_2797 = " msgs)" + NL + "\t{";
+  protected final String TEXT_2798 = NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_2799 = NL + "\t\tif (new";
+  protected final String TEXT_2800 = " != null && !(new";
+  protected final String TEXT_2801 = " instanceof ";
+  protected final String TEXT_2802 = "))" + NL + "\t\t{" + NL + "\t\t\tthrow new IllegalArgumentException(String.valueOf(new";
+  protected final String TEXT_2803 = "));" + NL + "\t\t}";
+  protected final String TEXT_2804 = NL + "\t\treturn basicSet";
   protected final String TEXT_2805 = "(";
-  protected final String TEXT_2806 = ") ";
-  protected final String TEXT_2807 = "new";
-  protected final String TEXT_2808 = ", msgs);";
-  protected final String TEXT_2809 = NL + "\t\tset";
-  protected final String TEXT_2810 = "(";
+  protected final String TEXT_2806 = "(";
+  protected final String TEXT_2807 = ") ";
+  protected final String TEXT_2808 = "new";
+  protected final String TEXT_2809 = ", msgs);";
+  protected final String TEXT_2810 = NL + "\t\tset";
   protected final String TEXT_2811 = "(";
-  protected final String TEXT_2812 = ") ";
-  protected final String TEXT_2813 = "new";
-  protected final String TEXT_2814 = ");" + NL + "\t\treturn msgs;";
-  protected final String TEXT_2815 = NL + "\t}" + NL;
-  protected final String TEXT_2816 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2817 = NL + "\t@Override";
-  protected final String TEXT_2818 = NL + "\tpublic void set";
-  protected final String TEXT_2819 = "(";
-  protected final String TEXT_2820 = " new";
-  protected final String TEXT_2821 = ")" + NL + "\t{";
-  protected final String TEXT_2822 = NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_2823 = NL + "\t\tif (new";
-  protected final String TEXT_2824 = " != null && !(new";
-  protected final String TEXT_2825 = " instanceof ";
-  protected final String TEXT_2826 = "))" + NL + "\t\t{" + NL + "\t\t\tthrow new IllegalArgumentException(String.valueOf(new";
-  protected final String TEXT_2827 = "));" + NL + "\t\t}";
-  protected final String TEXT_2828 = NL + "\t\tset";
-  protected final String TEXT_2829 = "(";
+  protected final String TEXT_2812 = "(";
+  protected final String TEXT_2813 = ") ";
+  protected final String TEXT_2814 = "new";
+  protected final String TEXT_2815 = ");" + NL + "\t\treturn msgs;";
+  protected final String TEXT_2816 = NL + "\t}" + NL;
+  protected final String TEXT_2817 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2818 = NL + "\t@Override";
+  protected final String TEXT_2819 = NL + "\tpublic void set";
+  protected final String TEXT_2820 = "(";
+  protected final String TEXT_2821 = " new";
+  protected final String TEXT_2822 = ")" + NL + "\t{";
+  protected final String TEXT_2823 = NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_2824 = NL + "\t\tif (new";
+  protected final String TEXT_2825 = " != null && !(new";
+  protected final String TEXT_2826 = " instanceof ";
+  protected final String TEXT_2827 = "))" + NL + "\t\t{" + NL + "\t\t\tthrow new IllegalArgumentException(String.valueOf(new";
+  protected final String TEXT_2828 = "));" + NL + "\t\t}";
+  protected final String TEXT_2829 = NL + "\t\tset";
   protected final String TEXT_2830 = "(";
-  protected final String TEXT_2831 = ") ";
-  protected final String TEXT_2832 = "new";
-  protected final String TEXT_2833 = ");";
-  protected final String TEXT_2834 = NL + "\t}" + NL;
-  protected final String TEXT_2835 = NL + "\t/**" + NL + "\t * The array of subset feature identifiers for the '{@link #";
-  protected final String TEXT_2836 = "() <em>";
-  protected final String TEXT_2837 = "</em>}' ";
-  protected final String TEXT_2838 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
-  protected final String TEXT_2839 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final int[] ";
-  protected final String TEXT_2840 = "_ESUBSETS = ";
-  protected final String TEXT_2841 = ";" + NL;
-  protected final String TEXT_2842 = NL + "\t/**" + NL + "\t * The array of superset feature identifiers for the '{@link #";
-  protected final String TEXT_2843 = "() <em>";
-  protected final String TEXT_2844 = "</em>}' ";
-  protected final String TEXT_2845 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
-  protected final String TEXT_2846 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final int[] ";
-  protected final String TEXT_2847 = "_ESUPERSETS = ";
-  protected final String TEXT_2848 = ";" + NL;
-  protected final String TEXT_2849 = NL + "\t/**";
-  protected final String TEXT_2850 = NL + "\t * Creates a new {@link ";
-  protected final String TEXT_2851 = "}, with the specified ";
-  protected final String TEXT_2852 = ", and appends it to the '<em><b>";
-  protected final String TEXT_2853 = "</b></em>' ";
-  protected final String TEXT_2854 = ".";
-  protected final String TEXT_2855 = NL + "\t * Creates a new {@link ";
-  protected final String TEXT_2856 = "}, with the specified ";
-  protected final String TEXT_2857 = ", and sets the '<em><b>";
-  protected final String TEXT_2858 = "</b></em>' ";
-  protected final String TEXT_2859 = ".";
-  protected final String TEXT_2860 = NL + "\t * Creates a new {@link ";
-  protected final String TEXT_2861 = "} and appends it to the '<em><b>";
-  protected final String TEXT_2862 = "</b></em>' ";
-  protected final String TEXT_2863 = ".";
-  protected final String TEXT_2864 = NL + "\t * Creates a new {@link ";
-  protected final String TEXT_2865 = "} and sets the '<em><b>";
-  protected final String TEXT_2866 = "</b></em>' ";
-  protected final String TEXT_2867 = ".";
-  protected final String TEXT_2868 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
-  protected final String TEXT_2869 = NL + "\t * @param ";
-  protected final String TEXT_2870 = " The ";
-  protected final String TEXT_2871 = " for the new {@link ";
-  protected final String TEXT_2872 = "}, or <code>null</code>.";
-  protected final String TEXT_2873 = NL + "\t * @param eClass The Ecore class of the {@link ";
-  protected final String TEXT_2874 = "} to create." + NL + "\t * @return The new {@link ";
-  protected final String TEXT_2875 = "}." + NL + "\t * @see #";
-  protected final String TEXT_2876 = "()" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2877 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2878 = NL + "\t";
-  protected final String TEXT_2879 = " create";
-  protected final String TEXT_2880 = "(";
-  protected final String TEXT_2881 = ", ";
-  protected final String TEXT_2882 = " eClass);" + NL;
-  protected final String TEXT_2883 = NL + "\t@Override";
-  protected final String TEXT_2884 = NL + "\tpublic ";
-  protected final String TEXT_2885 = " create";
-  protected final String TEXT_2886 = "(";
-  protected final String TEXT_2887 = ", ";
-  protected final String TEXT_2888 = " eClass)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_2889 = " new";
-  protected final String TEXT_2890 = " = (";
-  protected final String TEXT_2891 = ") create(eClass);";
-  protected final String TEXT_2892 = NL + "\t\t";
-  protected final String TEXT_2893 = "().add(new";
-  protected final String TEXT_2894 = ");";
-  protected final String TEXT_2895 = NL + "\t\tset";
-  protected final String TEXT_2896 = "(new";
-  protected final String TEXT_2897 = ");";
-  protected final String TEXT_2898 = NL + "\t\tint ";
-  protected final String TEXT_2899 = "ListSize = 0;";
-  protected final String TEXT_2900 = NL + "\t\tint ";
-  protected final String TEXT_2901 = "Size = ";
-  protected final String TEXT_2902 = " == null ? 0 : ";
-  protected final String TEXT_2903 = ".size();" + NL + "\t\tif (";
-  protected final String TEXT_2904 = "Size > ";
-  protected final String TEXT_2905 = "ListSize)" + NL + "\t\t\t";
-  protected final String TEXT_2906 = "ListSize = ";
-  protected final String TEXT_2907 = "Size;";
-  protected final String TEXT_2908 = NL + "\t\tfor (int i = 0; i < ";
-  protected final String TEXT_2909 = "ListSize; i++) {" + NL + "\t\t\tnew";
-  protected final String TEXT_2910 = ".create";
-  protected final String TEXT_2911 = "(";
-  protected final String TEXT_2912 = ", ";
-  protected final String TEXT_2913 = "i < ";
-  protected final String TEXT_2914 = "Size ? (";
-  protected final String TEXT_2915 = ") ";
-  protected final String TEXT_2916 = ".get(i) : null";
-  protected final String TEXT_2917 = ");" + NL + "\t\t}";
-  protected final String TEXT_2918 = NL + "\t\tnew";
-  protected final String TEXT_2919 = ".create";
-  protected final String TEXT_2920 = "(";
-  protected final String TEXT_2921 = ", ";
-  protected final String TEXT_2922 = ");";
-  protected final String TEXT_2923 = NL + "\t\tif (";
-  protected final String TEXT_2924 = " != null)";
-  protected final String TEXT_2925 = NL + "\t\t\tnew";
-  protected final String TEXT_2926 = ".";
-  protected final String TEXT_2927 = "().addAll(";
-  protected final String TEXT_2928 = ");";
-  protected final String TEXT_2929 = NL + "\t\t\tnew";
-  protected final String TEXT_2930 = ".set";
-  protected final String TEXT_2931 = "(";
-  protected final String TEXT_2932 = ");";
-  protected final String TEXT_2933 = NL + "\t\treturn new";
-  protected final String TEXT_2934 = ";" + NL + "\t}" + NL;
-  protected final String TEXT_2935 = NL + "\t/**";
-  protected final String TEXT_2936 = NL + "\t * Creates a new {@link ";
-  protected final String TEXT_2937 = "}, with the specified ";
-  protected final String TEXT_2938 = ", and appends it to the '<em><b>";
-  protected final String TEXT_2939 = "</b></em>' ";
-  protected final String TEXT_2940 = ".";
-  protected final String TEXT_2941 = NL + "\t * Creates a new {@link ";
-  protected final String TEXT_2942 = "},with the specified ";
-  protected final String TEXT_2943 = ", and sets the '<em><b>";
-  protected final String TEXT_2944 = "</b></em>' ";
-  protected final String TEXT_2945 = ".";
-  protected final String TEXT_2946 = NL + "\t * Creates a new {@link ";
-  protected final String TEXT_2947 = "} and appends it to the '<em><b>";
-  protected final String TEXT_2948 = "</b></em>' ";
-  protected final String TEXT_2949 = ".";
-  protected final String TEXT_2950 = NL + "\t * Creates a new {@link ";
-  protected final String TEXT_2951 = "} and sets the '<em><b>";
-  protected final String TEXT_2952 = "</b></em>' ";
-  protected final String TEXT_2953 = ".";
-  protected final String TEXT_2954 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
-  protected final String TEXT_2955 = NL + "\t * @param ";
-  protected final String TEXT_2956 = " The ";
-  protected final String TEXT_2957 = " for the new {@link ";
-  protected final String TEXT_2958 = "}, or <code>null</code>.";
-  protected final String TEXT_2959 = NL + "\t * @return The new {@link ";
-  protected final String TEXT_2960 = "}." + NL + "\t * @see #";
-  protected final String TEXT_2961 = "()" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2962 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_2963 = NL + "\t";
-  protected final String TEXT_2964 = " create";
-  protected final String TEXT_2965 = "(";
-  protected final String TEXT_2966 = ");" + NL;
-  protected final String TEXT_2967 = NL + "\t@Override";
-  protected final String TEXT_2968 = NL + "\tpublic ";
-  protected final String TEXT_2969 = " create";
-  protected final String TEXT_2970 = "(";
-  protected final String TEXT_2971 = ")" + NL + "\t{";
-  protected final String TEXT_2972 = NL + "\t\treturn create";
-  protected final String TEXT_2973 = "(";
-  protected final String TEXT_2974 = ", ";
-  protected final String TEXT_2975 = ");";
-  protected final String TEXT_2976 = NL + "\t\t";
-  protected final String TEXT_2977 = " new";
-  protected final String TEXT_2978 = " = (";
-  protected final String TEXT_2979 = ") create(";
-  protected final String TEXT_2980 = ");";
-  protected final String TEXT_2981 = NL + "\t\t";
-  protected final String TEXT_2982 = "().add(new";
-  protected final String TEXT_2983 = ");";
-  protected final String TEXT_2984 = NL + "\t\tset";
-  protected final String TEXT_2985 = "(new";
-  protected final String TEXT_2986 = ");";
-  protected final String TEXT_2987 = NL + "\t\tint ";
-  protected final String TEXT_2988 = "ListSize = 0;";
-  protected final String TEXT_2989 = NL + "\t\tint ";
-  protected final String TEXT_2990 = "Size = ";
-  protected final String TEXT_2991 = " == null ? 0 : ";
-  protected final String TEXT_2992 = ".size();" + NL + "\t\tif (";
-  protected final String TEXT_2993 = "Size > ";
-  protected final String TEXT_2994 = "ListSize)" + NL + "\t\t\t";
-  protected final String TEXT_2995 = "ListSize = ";
-  protected final String TEXT_2996 = "Size;";
-  protected final String TEXT_2997 = NL + "\t\tfor (int i = 0; i < ";
-  protected final String TEXT_2998 = "ListSize; i++) {" + NL + "\t\t\tnew";
-  protected final String TEXT_2999 = ".create";
-  protected final String TEXT_3000 = "(";
-  protected final String TEXT_3001 = ", ";
-  protected final String TEXT_3002 = "i < ";
-  protected final String TEXT_3003 = "Size ? (";
-  protected final String TEXT_3004 = ") ";
-  protected final String TEXT_3005 = ".get(i) : null";
-  protected final String TEXT_3006 = ");" + NL + "\t\t}";
-  protected final String TEXT_3007 = NL + "\t\tnew";
-  protected final String TEXT_3008 = ".create";
-  protected final String TEXT_3009 = "(";
-  protected final String TEXT_3010 = ", ";
-  protected final String TEXT_3011 = ");";
-  protected final String TEXT_3012 = NL + "\t\tif (";
-  protected final String TEXT_3013 = " != null)";
-  protected final String TEXT_3014 = NL + "\t\t\tnew";
-  protected final String TEXT_3015 = ".";
-  protected final String TEXT_3016 = "().addAll(";
-  protected final String TEXT_3017 = ");";
-  protected final String TEXT_3018 = NL + "\t\t\tnew";
-  protected final String TEXT_3019 = ".set";
-  protected final String TEXT_3020 = "(";
-  protected final String TEXT_3021 = ");";
-  protected final String TEXT_3022 = NL + "\t\treturn new";
-  protected final String TEXT_3023 = ";";
-  protected final String TEXT_3024 = NL + "\t}" + NL;
-  protected final String TEXT_3025 = NL + "\t/**" + NL + "\t * Retrieves the first {@link ";
-  protected final String TEXT_3026 = "} with the specified ";
-  protected final String TEXT_3027 = " from the '<em><b>";
-  protected final String TEXT_3028 = "</b></em>' ";
-  protected final String TEXT_3029 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
-  protected final String TEXT_3030 = NL + "\t * @param ";
-  protected final String TEXT_3031 = " The ";
-  protected final String TEXT_3032 = " of the {@link ";
-  protected final String TEXT_3033 = "} to retrieve, or <code>null</code>.";
-  protected final String TEXT_3034 = NL + "\t * @return The first {@link ";
-  protected final String TEXT_3035 = "} with the specified ";
-  protected final String TEXT_3036 = ", or <code>null</code>." + NL + "\t * @see #";
-  protected final String TEXT_3037 = "()" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_3038 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_3039 = NL + "\t";
-  protected final String TEXT_3040 = " get";
-  protected final String TEXT_3041 = "(";
-  protected final String TEXT_3042 = ");" + NL;
-  protected final String TEXT_3043 = NL + "\t@Override";
-  protected final String TEXT_3044 = NL + "\tpublic ";
-  protected final String TEXT_3045 = " get";
-  protected final String TEXT_3046 = "(";
-  protected final String TEXT_3047 = ")" + NL + "\t{" + NL + "\t\treturn get";
-  protected final String TEXT_3048 = "(";
-  protected final String TEXT_3049 = ", false";
-  protected final String TEXT_3050 = ", null";
-  protected final String TEXT_3051 = ", false";
-  protected final String TEXT_3052 = ");" + NL + "\t}" + NL;
-  protected final String TEXT_3053 = NL + "\t/**" + NL + "\t * Retrieves the first {@link ";
-  protected final String TEXT_3054 = "} with the specified ";
-  protected final String TEXT_3055 = " from the '<em><b>";
-  protected final String TEXT_3056 = "</b></em>' ";
-  protected final String TEXT_3057 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
-  protected final String TEXT_3058 = NL + "\t * @param ";
-  protected final String TEXT_3059 = " The ";
-  protected final String TEXT_3060 = " of the {@link ";
-  protected final String TEXT_3061 = "} to retrieve, or <code>null</code>.";
-  protected final String TEXT_3062 = NL + "\t * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.";
-  protected final String TEXT_3063 = NL + "\t * @param eClass The Ecore class of the {@link ";
-  protected final String TEXT_3064 = "} to retrieve, or <code>null</code>.";
-  protected final String TEXT_3065 = NL + "\t * @param createOnDemand Whether to create a {@link ";
-  protected final String TEXT_3066 = "} on demand if not found.";
-  protected final String TEXT_3067 = NL + "\t * @return The first {@link ";
-  protected final String TEXT_3068 = "} with the specified ";
-  protected final String TEXT_3069 = ", or <code>null</code>." + NL + "\t * @see #";
-  protected final String TEXT_3070 = "()" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_3071 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_3072 = NL + "\t";
-  protected final String TEXT_3073 = " get";
-  protected final String TEXT_3074 = "(";
-  protected final String TEXT_3075 = ", boolean ignoreCase";
-  protected final String TEXT_3076 = ", ";
-  protected final String TEXT_3077 = " eClass";
-  protected final String TEXT_3078 = ", boolean createOnDemand";
-  protected final String TEXT_3079 = ");" + NL;
-  protected final String TEXT_3080 = NL + "\t@Override";
-  protected final String TEXT_3081 = NL + "\tpublic ";
-  protected final String TEXT_3082 = " get";
-  protected final String TEXT_3083 = "(";
-  protected final String TEXT_3084 = ", boolean ignoreCase";
-  protected final String TEXT_3085 = ", ";
-  protected final String TEXT_3086 = " eClass";
-  protected final String TEXT_3087 = ", boolean createOnDemand";
-  protected final String TEXT_3088 = ")" + NL + "\t{";
-  protected final String TEXT_3089 = NL + "\t\t";
-  protected final String TEXT_3090 = "Loop: for (";
-  protected final String TEXT_3091 = " ";
-  protected final String TEXT_3092 = " : ";
-  protected final String TEXT_3093 = "())" + NL + "\t\t{";
-  protected final String TEXT_3094 = NL + "\t\t";
-  protected final String TEXT_3095 = "Loop: for (";
-  protected final String TEXT_3096 = " i = ";
-  protected final String TEXT_3097 = "().iterator(); i.hasNext(); )" + NL + "\t\t{" + NL + "\t\t\t";
-  protected final String TEXT_3098 = " ";
-  protected final String TEXT_3099 = " = (";
-  protected final String TEXT_3100 = ") i.next();";
-  protected final String TEXT_3101 = NL + "\t\t\tif (eClass != null && !eClass.isInstance(";
-  protected final String TEXT_3102 = "))" + NL + "\t\t\t\tcontinue ";
-  protected final String TEXT_3103 = "Loop;";
-  protected final String TEXT_3104 = NL + "\t\t\t";
-  protected final String TEXT_3105 = " ";
-  protected final String TEXT_3106 = "List = ";
-  protected final String TEXT_3107 = ".";
-  protected final String TEXT_3108 = "();" + NL + "\t\t\tint ";
-  protected final String TEXT_3109 = "ListSize = ";
-  protected final String TEXT_3110 = "List.size();" + NL + "\t\t\tif (";
-  protected final String TEXT_3111 = " || (";
-  protected final String TEXT_3112 = " != null && ";
-  protected final String TEXT_3113 = ".size() != ";
-  protected final String TEXT_3114 = "ListSize";
-  protected final String TEXT_3115 = ")";
-  protected final String TEXT_3116 = ")" + NL + "\t\t\t\tcontinue  ";
-  protected final String TEXT_3117 = "Loop;" + NL + "\t\t\tfor (int j = 0; j < ";
-  protected final String TEXT_3118 = "ListSize; j++)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
-  protected final String TEXT_3119 = " ";
-  protected final String TEXT_3120 = " = ";
-  protected final String TEXT_3121 = "(";
-  protected final String TEXT_3122 = ") ";
-  protected final String TEXT_3123 = "List.get(j);";
-  protected final String TEXT_3124 = NL + "\t\t\t\tif (";
-  protected final String TEXT_3125 = " != null && !(ignoreCase ? (";
-  protected final String TEXT_3126 = "(";
-  protected final String TEXT_3127 = ")";
-  protected final String TEXT_3128 = ".get(j)).equalsIgnoreCase(";
-  protected final String TEXT_3129 = ".";
-  protected final String TEXT_3130 = "()) : ";
-  protected final String TEXT_3131 = ".get(j).equals(";
-  protected final String TEXT_3132 = ".";
-  protected final String TEXT_3133 = "())))";
-  protected final String TEXT_3134 = NL + "\t\t\t\tif (";
-  protected final String TEXT_3135 = " != null && !";
-  protected final String TEXT_3136 = ".get(j).equals(";
-  protected final String TEXT_3137 = ".";
-  protected final String TEXT_3138 = "()))";
-  protected final String TEXT_3139 = NL + "\t\t\t\t\tcontinue ";
-  protected final String TEXT_3140 = "Loop;";
-  protected final String TEXT_3141 = NL + "\t\t\t}";
-  protected final String TEXT_3142 = NL + "\t\t\t";
-  protected final String TEXT_3143 = " ";
-  protected final String TEXT_3144 = " = ";
-  protected final String TEXT_3145 = ".";
-  protected final String TEXT_3146 = "();" + NL + "\t\t\tif (";
-  protected final String TEXT_3147 = " == null)" + NL + "\t\t\t\tcontinue ";
-  protected final String TEXT_3148 = "Loop;";
-  protected final String TEXT_3149 = NL + "\t\t\tif (";
-  protected final String TEXT_3150 = " != null && !(ignoreCase ? ";
-  protected final String TEXT_3151 = ".equalsIgnoreCase(";
-  protected final String TEXT_3152 = ".";
-  protected final String TEXT_3153 = "()) : ";
-  protected final String TEXT_3154 = ".equals(";
-  protected final String TEXT_3155 = ".";
-  protected final String TEXT_3156 = "())))";
-  protected final String TEXT_3157 = NL + "\t\t\tif (";
-  protected final String TEXT_3158 = " != null && !";
-  protected final String TEXT_3159 = ".equals(";
-  protected final String TEXT_3160 = ".";
-  protected final String TEXT_3161 = "()))";
-  protected final String TEXT_3162 = NL + "\t\t\t\tcontinue ";
-  protected final String TEXT_3163 = "Loop;";
-  protected final String TEXT_3164 = NL + "\t\t\tif (";
-  protected final String TEXT_3165 = " != null && !(ignoreCase ? ";
-  protected final String TEXT_3166 = ".equalsIgnoreCase(";
-  protected final String TEXT_3167 = ".";
-  protected final String TEXT_3168 = "()) : ";
-  protected final String TEXT_3169 = ".equals(";
-  protected final String TEXT_3170 = ".";
-  protected final String TEXT_3171 = "())))";
-  protected final String TEXT_3172 = NL + "\t\t\tif (";
-  protected final String TEXT_3173 = " != null && !";
-  protected final String TEXT_3174 = ".equals(";
-  protected final String TEXT_3175 = ".";
-  protected final String TEXT_3176 = "()))";
-  protected final String TEXT_3177 = NL + "\t\t\t\tcontinue ";
-  protected final String TEXT_3178 = "Loop;";
-  protected final String TEXT_3179 = NL + "\t\t\treturn ";
-  protected final String TEXT_3180 = ";" + NL + "\t\t}";
-  protected final String TEXT_3181 = NL + "\t\treturn createOnDemand";
-  protected final String TEXT_3182 = " && eClass != null";
-  protected final String TEXT_3183 = " ? create";
-  protected final String TEXT_3184 = "(";
-  protected final String TEXT_3185 = ", eClass";
-  protected final String TEXT_3186 = ") : null;";
-  protected final String TEXT_3187 = NL + "\t\treturn null;";
-  protected final String TEXT_3188 = NL + "\t}" + NL;
-  protected final String TEXT_3189 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean isSet";
-  protected final String TEXT_3190 = "()" + NL + "\t{";
-  protected final String TEXT_3191 = NL + "  \t\treturn false;";
-  protected final String TEXT_3192 = NL + "\t\treturn eIsSet(";
-  protected final String TEXT_3193 = ");";
-  protected final String TEXT_3194 = NL + "\t\treturn !((";
-  protected final String TEXT_3195 = ".Internal.Wrapper)";
-  protected final String TEXT_3196 = "()).featureMap().isEmpty();";
-  protected final String TEXT_3197 = NL + "\t\treturn ";
-  protected final String TEXT_3198 = " != null && !";
-  protected final String TEXT_3199 = ".featureMap().isEmpty();";
-  protected final String TEXT_3200 = NL + "\t\treturn ";
-  protected final String TEXT_3201 = " != null && !";
-  protected final String TEXT_3202 = ".isEmpty();";
-  protected final String TEXT_3203 = NL + "\t\t";
-  protected final String TEXT_3204 = " ";
-  protected final String TEXT_3205 = " = (";
-  protected final String TEXT_3206 = ")eVirtualGet(";
-  protected final String TEXT_3207 = ");" + NL + "\t\treturn ";
-  protected final String TEXT_3208 = " != null && !";
-  protected final String TEXT_3209 = ".isEmpty();";
-  protected final String TEXT_3210 = NL + "\t\treturn !";
-  protected final String TEXT_3211 = "().isEmpty();";
-  protected final String TEXT_3212 = NL + "\t\treturn ";
-  protected final String TEXT_3213 = " != null;";
-  protected final String TEXT_3214 = NL + "\t\treturn eVirtualGet(";
-  protected final String TEXT_3215 = ") != null;";
-  protected final String TEXT_3216 = NL + "\t\treturn basicGet";
-  protected final String TEXT_3217 = "() != null;";
-  protected final String TEXT_3218 = NL + "\t\treturn ";
-  protected final String TEXT_3219 = " != null;";
-  protected final String TEXT_3220 = NL + "\t\treturn eVirtualGet(";
-  protected final String TEXT_3221 = ") != null;";
-  protected final String TEXT_3222 = NL + "\t\treturn ";
-  protected final String TEXT_3223 = "() != null;";
-  protected final String TEXT_3224 = NL + "\t\t\t\treturn ((";
-  protected final String TEXT_3225 = " & ";
-  protected final String TEXT_3226 = "_EFLAG) != 0) != ";
-  protected final String TEXT_3227 = ";";
-  protected final String TEXT_3228 = NL + "\t\t\t\treturn (";
-  protected final String TEXT_3229 = " & ";
-  protected final String TEXT_3230 = "_EFLAG) != ";
-  protected final String TEXT_3231 = "_EFLAG_DEFAULT;";
-  protected final String TEXT_3232 = NL + "\t\treturn ";
-  protected final String TEXT_3233 = " != ";
-  protected final String TEXT_3234 = ";";
-  protected final String TEXT_3235 = NL + "\t\treturn eVirtualGet(";
-  protected final String TEXT_3236 = ", ";
-  protected final String TEXT_3237 = ") != ";
-  protected final String TEXT_3238 = ";";
-  protected final String TEXT_3239 = NL + "\t\treturn ";
-  protected final String TEXT_3240 = "() != ";
-  protected final String TEXT_3241 = ";";
-  protected final String TEXT_3242 = NL + "\t\treturn ";
-  protected final String TEXT_3243 = " == null ? ";
-  protected final String TEXT_3244 = " != null : !";
-  protected final String TEXT_3245 = ".equals(";
-  protected final String TEXT_3246 = ");";
-  protected final String TEXT_3247 = NL + "\t\t";
-  protected final String TEXT_3248 = " ";
-  protected final String TEXT_3249 = " = (";
-  protected final String TEXT_3250 = ")eVirtualGet(";
-  protected final String TEXT_3251 = ", ";
-  protected final String TEXT_3252 = ");" + NL + "\t\treturn ";
-  protected final String TEXT_3253 = " == null ? ";
-  protected final String TEXT_3254 = " != null : !";
-  protected final String TEXT_3255 = ".equals(";
-  protected final String TEXT_3256 = ");";
-  protected final String TEXT_3257 = NL + "\t\treturn ";
-  protected final String TEXT_3258 = " == null ? ";
-  protected final String TEXT_3259 = "() != null : !";
-  protected final String TEXT_3260 = ".equals(";
-  protected final String TEXT_3261 = "());";
-  protected final String TEXT_3262 = NL + "\t\treturn eIsSet(";
-  protected final String TEXT_3263 = ");";
-  protected final String TEXT_3264 = NL + "\t\t";
-  protected final String TEXT_3265 = " ";
-  protected final String TEXT_3266 = " = (";
-  protected final String TEXT_3267 = ")eVirtualGet(";
-  protected final String TEXT_3268 = ");";
-  protected final String TEXT_3269 = NL + "\t\treturn ";
-  protected final String TEXT_3270 = " != null && ((";
-  protected final String TEXT_3271 = ".Unsettable";
-  protected final String TEXT_3272 = ")";
-  protected final String TEXT_3273 = ").isSet();";
-  protected final String TEXT_3274 = NL + "\t\treturn eVirtualIsSet(";
-  protected final String TEXT_3275 = ");";
-  protected final String TEXT_3276 = NL + "\t\treturn (";
-  protected final String TEXT_3277 = " & ";
-  protected final String TEXT_3278 = "_ESETFLAG) != 0;";
-  protected final String TEXT_3279 = NL + "\t\treturn ";
-  protected final String TEXT_3280 = "ESet;";
-  protected final String TEXT_3281 = NL + "\t\treturn !((";
-  protected final String TEXT_3282 = ".Internal)((";
-  protected final String TEXT_3283 = ".Internal.Wrapper)get";
-  protected final String TEXT_3284 = "()).featureMap()).isEmpty(";
-  protected final String TEXT_3285 = ");";
-  protected final String TEXT_3286 = NL + "\t\treturn !((";
-  protected final String TEXT_3287 = ".Internal)get";
-  protected final String TEXT_3288 = "()).isEmpty(";
-  protected final String TEXT_3289 = ");";
-  protected final String TEXT_3290 = NL + "\t\treturn ";
-  protected final String TEXT_3291 = ".";
-  protected final String TEXT_3292 = "(this);";
-  protected final String TEXT_3293 = NL + "\t\t// TODO: implement this method to return whether the '";
-  protected final String TEXT_3294 = "' ";
-  protected final String TEXT_3295 = " is set" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_3296 = NL + "\t}" + NL;
-  protected final String TEXT_3297 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_3298 = NL + "\t@Override";
-  protected final String TEXT_3299 = NL + "\tpublic ";
-  protected final String TEXT_3300 = " ";
-  protected final String TEXT_3301 = "(";
-  protected final String TEXT_3302 = ")";
-  protected final String TEXT_3303 = NL + "\t{";
-  protected final String TEXT_3304 = NL + "\t\t";
-  protected final String TEXT_3305 = "(";
-  protected final String TEXT_3306 = ");";
-  protected final String TEXT_3307 = NL + "\t\tthrow new UnsupportedOperationException();";
-  protected final String TEXT_3308 = NL + "\t\treturn ";
-  protected final String TEXT_3309 = "(";
-  protected final String TEXT_3310 = ");";
-  protected final String TEXT_3311 = NL + "\t}" + NL;
-  protected final String TEXT_3312 = NL + "} //";
-  protected final String TEXT_3313 = NL;
+  protected final String TEXT_2831 = "(";
+  protected final String TEXT_2832 = ") ";
+  protected final String TEXT_2833 = "new";
+  protected final String TEXT_2834 = ");";
+  protected final String TEXT_2835 = NL + "\t}" + NL;
+  protected final String TEXT_2836 = NL + "\t/**" + NL + "\t * The array of subset feature identifiers for the '{@link #";
+  protected final String TEXT_2837 = "() <em>";
+  protected final String TEXT_2838 = "</em>}' ";
+  protected final String TEXT_2839 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+  protected final String TEXT_2840 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final int[] ";
+  protected final String TEXT_2841 = "_ESUBSETS = ";
+  protected final String TEXT_2842 = ";" + NL;
+  protected final String TEXT_2843 = NL + "\t/**" + NL + "\t * The array of superset feature identifiers for the '{@link #";
+  protected final String TEXT_2844 = "() <em>";
+  protected final String TEXT_2845 = "</em>}' ";
+  protected final String TEXT_2846 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+  protected final String TEXT_2847 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final int[] ";
+  protected final String TEXT_2848 = "_ESUPERSETS = ";
+  protected final String TEXT_2849 = ";" + NL;
+  protected final String TEXT_2850 = NL + "\t/**";
+  protected final String TEXT_2851 = NL + "\t * Creates a new {@link ";
+  protected final String TEXT_2852 = "}, with the specified ";
+  protected final String TEXT_2853 = ", and appends it to the '<em><b>";
+  protected final String TEXT_2854 = "</b></em>' ";
+  protected final String TEXT_2855 = ".";
+  protected final String TEXT_2856 = NL + "\t * Creates a new {@link ";
+  protected final String TEXT_2857 = "}, with the specified ";
+  protected final String TEXT_2858 = ", and sets the '<em><b>";
+  protected final String TEXT_2859 = "</b></em>' ";
+  protected final String TEXT_2860 = ".";
+  protected final String TEXT_2861 = NL + "\t * Creates a new {@link ";
+  protected final String TEXT_2862 = "} and appends it to the '<em><b>";
+  protected final String TEXT_2863 = "</b></em>' ";
+  protected final String TEXT_2864 = ".";
+  protected final String TEXT_2865 = NL + "\t * Creates a new {@link ";
+  protected final String TEXT_2866 = "} and sets the '<em><b>";
+  protected final String TEXT_2867 = "</b></em>' ";
+  protected final String TEXT_2868 = ".";
+  protected final String TEXT_2869 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
+  protected final String TEXT_2870 = NL + "\t * @param ";
+  protected final String TEXT_2871 = " The ";
+  protected final String TEXT_2872 = " for the new {@link ";
+  protected final String TEXT_2873 = "}, or <code>null</code>.";
+  protected final String TEXT_2874 = NL + "\t * @param eClass The Ecore class of the {@link ";
+  protected final String TEXT_2875 = "} to create." + NL + "\t * @return The new {@link ";
+  protected final String TEXT_2876 = "}." + NL + "\t * @see #";
+  protected final String TEXT_2877 = "()" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2878 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2879 = NL + "\t";
+  protected final String TEXT_2880 = " create";
+  protected final String TEXT_2881 = "(";
+  protected final String TEXT_2882 = ", ";
+  protected final String TEXT_2883 = " eClass);" + NL;
+  protected final String TEXT_2884 = NL + "\t@Override";
+  protected final String TEXT_2885 = NL + "\tpublic ";
+  protected final String TEXT_2886 = " create";
+  protected final String TEXT_2887 = "(";
+  protected final String TEXT_2888 = ", ";
+  protected final String TEXT_2889 = " eClass)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_2890 = " new";
+  protected final String TEXT_2891 = " = (";
+  protected final String TEXT_2892 = ") create(eClass);";
+  protected final String TEXT_2893 = NL + "\t\t";
+  protected final String TEXT_2894 = "().add(new";
+  protected final String TEXT_2895 = ");";
+  protected final String TEXT_2896 = NL + "\t\tset";
+  protected final String TEXT_2897 = "(new";
+  protected final String TEXT_2898 = ");";
+  protected final String TEXT_2899 = NL + "\t\tint ";
+  protected final String TEXT_2900 = "ListSize = 0;";
+  protected final String TEXT_2901 = NL + "\t\tint ";
+  protected final String TEXT_2902 = "Size = ";
+  protected final String TEXT_2903 = " == null ? 0 : ";
+  protected final String TEXT_2904 = ".size();" + NL + "\t\tif (";
+  protected final String TEXT_2905 = "Size > ";
+  protected final String TEXT_2906 = "ListSize)" + NL + "\t\t\t";
+  protected final String TEXT_2907 = "ListSize = ";
+  protected final String TEXT_2908 = "Size;";
+  protected final String TEXT_2909 = NL + "\t\tfor (int i = 0; i < ";
+  protected final String TEXT_2910 = "ListSize; i++) {" + NL + "\t\t\tnew";
+  protected final String TEXT_2911 = ".create";
+  protected final String TEXT_2912 = "(";
+  protected final String TEXT_2913 = ", ";
+  protected final String TEXT_2914 = "i < ";
+  protected final String TEXT_2915 = "Size ? (";
+  protected final String TEXT_2916 = ") ";
+  protected final String TEXT_2917 = ".get(i) : null";
+  protected final String TEXT_2918 = ");" + NL + "\t\t}";
+  protected final String TEXT_2919 = NL + "\t\tnew";
+  protected final String TEXT_2920 = ".create";
+  protected final String TEXT_2921 = "(";
+  protected final String TEXT_2922 = ", ";
+  protected final String TEXT_2923 = ");";
+  protected final String TEXT_2924 = NL + "\t\tif (";
+  protected final String TEXT_2925 = " != null)";
+  protected final String TEXT_2926 = NL + "\t\t\tnew";
+  protected final String TEXT_2927 = ".";
+  protected final String TEXT_2928 = "().addAll(";
+  protected final String TEXT_2929 = ");";
+  protected final String TEXT_2930 = NL + "\t\t\tnew";
+  protected final String TEXT_2931 = ".set";
+  protected final String TEXT_2932 = "(";
+  protected final String TEXT_2933 = ");";
+  protected final String TEXT_2934 = NL + "\t\treturn new";
+  protected final String TEXT_2935 = ";" + NL + "\t}" + NL;
+  protected final String TEXT_2936 = NL + "\t/**";
+  protected final String TEXT_2937 = NL + "\t * Creates a new {@link ";
+  protected final String TEXT_2938 = "}, with the specified ";
+  protected final String TEXT_2939 = ", and appends it to the '<em><b>";
+  protected final String TEXT_2940 = "</b></em>' ";
+  protected final String TEXT_2941 = ".";
+  protected final String TEXT_2942 = NL + "\t * Creates a new {@link ";
+  protected final String TEXT_2943 = "},with the specified ";
+  protected final String TEXT_2944 = ", and sets the '<em><b>";
+  protected final String TEXT_2945 = "</b></em>' ";
+  protected final String TEXT_2946 = ".";
+  protected final String TEXT_2947 = NL + "\t * Creates a new {@link ";
+  protected final String TEXT_2948 = "} and appends it to the '<em><b>";
+  protected final String TEXT_2949 = "</b></em>' ";
+  protected final String TEXT_2950 = ".";
+  protected final String TEXT_2951 = NL + "\t * Creates a new {@link ";
+  protected final String TEXT_2952 = "} and sets the '<em><b>";
+  protected final String TEXT_2953 = "</b></em>' ";
+  protected final String TEXT_2954 = ".";
+  protected final String TEXT_2955 = NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
+  protected final String TEXT_2956 = NL + "\t * @param ";
+  protected final String TEXT_2957 = " The ";
+  protected final String TEXT_2958 = " for the new {@link ";
+  protected final String TEXT_2959 = "}, or <code>null</code>.";
+  protected final String TEXT_2960 = NL + "\t * @return The new {@link ";
+  protected final String TEXT_2961 = "}." + NL + "\t * @see #";
+  protected final String TEXT_2962 = "()" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2963 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_2964 = NL + "\t";
+  protected final String TEXT_2965 = " create";
+  protected final String TEXT_2966 = "(";
+  protected final String TEXT_2967 = ");" + NL;
+  protected final String TEXT_2968 = NL + "\t@Override";
+  protected final String TEXT_2969 = NL + "\tpublic ";
+  protected final String TEXT_2970 = " create";
+  protected final String TEXT_2971 = "(";
+  protected final String TEXT_2972 = ")" + NL + "\t{";
+  protected final String TEXT_2973 = NL + "\t\treturn create";
+  protected final String TEXT_2974 = "(";
+  protected final String TEXT_2975 = ", ";
+  protected final String TEXT_2976 = ");";
+  protected final String TEXT_2977 = NL + "\t\t";
+  protected final String TEXT_2978 = " new";
+  protected final String TEXT_2979 = " = (";
+  protected final String TEXT_2980 = ") create(";
+  protected final String TEXT_2981 = ");";
+  protected final String TEXT_2982 = NL + "\t\t";
+  protected final String TEXT_2983 = "().add(new";
+  protected final String TEXT_2984 = ");";
+  protected final String TEXT_2985 = NL + "\t\tset";
+  protected final String TEXT_2986 = "(new";
+  protected final String TEXT_2987 = ");";
+  protected final String TEXT_2988 = NL + "\t\tint ";
+  protected final String TEXT_2989 = "ListSize = 0;";
+  protected final String TEXT_2990 = NL + "\t\tint ";
+  protected final String TEXT_2991 = "Size = ";
+  protected final String TEXT_2992 = " == null ? 0 : ";
+  protected final String TEXT_2993 = ".size();" + NL + "\t\tif (";
+  protected final String TEXT_2994 = "Size > ";
+  protected final String TEXT_2995 = "ListSize)" + NL + "\t\t\t";
+  protected final String TEXT_2996 = "ListSize = ";
+  protected final String TEXT_2997 = "Size;";
+  protected final String TEXT_2998 = NL + "\t\tfor (int i = 0; i < ";
+  protected final String TEXT_2999 = "ListSize; i++) {" + NL + "\t\t\tnew";
+  protected final String TEXT_3000 = ".create";
+  protected final String TEXT_3001 = "(";
+  protected final String TEXT_3002 = ", ";
+  protected final String TEXT_3003 = "i < ";
+  protected final String TEXT_3004 = "Size ? (";
+  protected final String TEXT_3005 = ") ";
+  protected final String TEXT_3006 = ".get(i) : null";
+  protected final String TEXT_3007 = ");" + NL + "\t\t}";
+  protected final String TEXT_3008 = NL + "\t\tnew";
+  protected final String TEXT_3009 = ".create";
+  protected final String TEXT_3010 = "(";
+  protected final String TEXT_3011 = ", ";
+  protected final String TEXT_3012 = ");";
+  protected final String TEXT_3013 = NL + "\t\tif (";
+  protected final String TEXT_3014 = " != null)";
+  protected final String TEXT_3015 = NL + "\t\t\tnew";
+  protected final String TEXT_3016 = ".";
+  protected final String TEXT_3017 = "().addAll(";
+  protected final String TEXT_3018 = ");";
+  protected final String TEXT_3019 = NL + "\t\t\tnew";
+  protected final String TEXT_3020 = ".set";
+  protected final String TEXT_3021 = "(";
+  protected final String TEXT_3022 = ");";
+  protected final String TEXT_3023 = NL + "\t\treturn new";
+  protected final String TEXT_3024 = ";";
+  protected final String TEXT_3025 = NL + "\t}" + NL;
+  protected final String TEXT_3026 = NL + "\t/**" + NL + "\t * Retrieves the first {@link ";
+  protected final String TEXT_3027 = "} with the specified ";
+  protected final String TEXT_3028 = " from the '<em><b>";
+  protected final String TEXT_3029 = "</b></em>' ";
+  protected final String TEXT_3030 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
+  protected final String TEXT_3031 = NL + "\t * @param ";
+  protected final String TEXT_3032 = " The ";
+  protected final String TEXT_3033 = " of the {@link ";
+  protected final String TEXT_3034 = "} to retrieve, or <code>null</code>.";
+  protected final String TEXT_3035 = NL + "\t * @return The first {@link ";
+  protected final String TEXT_3036 = "} with the specified ";
+  protected final String TEXT_3037 = ", or <code>null</code>." + NL + "\t * @see #";
+  protected final String TEXT_3038 = "()" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_3039 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_3040 = NL + "\t";
+  protected final String TEXT_3041 = " get";
+  protected final String TEXT_3042 = "(";
+  protected final String TEXT_3043 = ");" + NL;
+  protected final String TEXT_3044 = NL + "\t@Override";
+  protected final String TEXT_3045 = NL + "\tpublic ";
+  protected final String TEXT_3046 = " get";
+  protected final String TEXT_3047 = "(";
+  protected final String TEXT_3048 = ")" + NL + "\t{" + NL + "\t\treturn get";
+  protected final String TEXT_3049 = "(";
+  protected final String TEXT_3050 = ", false";
+  protected final String TEXT_3051 = ", null";
+  protected final String TEXT_3052 = ", false";
+  protected final String TEXT_3053 = ");" + NL + "\t}" + NL;
+  protected final String TEXT_3054 = NL + "\t/**" + NL + "\t * Retrieves the first {@link ";
+  protected final String TEXT_3055 = "} with the specified ";
+  protected final String TEXT_3056 = " from the '<em><b>";
+  protected final String TEXT_3057 = "</b></em>' ";
+  protected final String TEXT_3058 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
+  protected final String TEXT_3059 = NL + "\t * @param ";
+  protected final String TEXT_3060 = " The ";
+  protected final String TEXT_3061 = " of the {@link ";
+  protected final String TEXT_3062 = "} to retrieve, or <code>null</code>.";
+  protected final String TEXT_3063 = NL + "\t * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.";
+  protected final String TEXT_3064 = NL + "\t * @param eClass The Ecore class of the {@link ";
+  protected final String TEXT_3065 = "} to retrieve, or <code>null</code>.";
+  protected final String TEXT_3066 = NL + "\t * @param createOnDemand Whether to create a {@link ";
+  protected final String TEXT_3067 = "} on demand if not found.";
+  protected final String TEXT_3068 = NL + "\t * @return The first {@link ";
+  protected final String TEXT_3069 = "} with the specified ";
+  protected final String TEXT_3070 = ", or <code>null</code>." + NL + "\t * @see #";
+  protected final String TEXT_3071 = "()" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_3072 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_3073 = NL + "\t";
+  protected final String TEXT_3074 = " get";
+  protected final String TEXT_3075 = "(";
+  protected final String TEXT_3076 = ", boolean ignoreCase";
+  protected final String TEXT_3077 = ", ";
+  protected final String TEXT_3078 = " eClass";
+  protected final String TEXT_3079 = ", boolean createOnDemand";
+  protected final String TEXT_3080 = ");" + NL;
+  protected final String TEXT_3081 = NL + "\t@Override";
+  protected final String TEXT_3082 = NL + "\tpublic ";
+  protected final String TEXT_3083 = " get";
+  protected final String TEXT_3084 = "(";
+  protected final String TEXT_3085 = ", boolean ignoreCase";
+  protected final String TEXT_3086 = ", ";
+  protected final String TEXT_3087 = " eClass";
+  protected final String TEXT_3088 = ", boolean createOnDemand";
+  protected final String TEXT_3089 = ")" + NL + "\t{";
+  protected final String TEXT_3090 = NL + "\t\t";
+  protected final String TEXT_3091 = "Loop: for (";
+  protected final String TEXT_3092 = " ";
+  protected final String TEXT_3093 = " : ";
+  protected final String TEXT_3094 = "())" + NL + "\t\t{";
+  protected final String TEXT_3095 = NL + "\t\t";
+  protected final String TEXT_3096 = "Loop: for (";
+  protected final String TEXT_3097 = " i = ";
+  protected final String TEXT_3098 = "().iterator(); i.hasNext(); )" + NL + "\t\t{" + NL + "\t\t\t";
+  protected final String TEXT_3099 = " ";
+  protected final String TEXT_3100 = " = (";
+  protected final String TEXT_3101 = ") i.next();";
+  protected final String TEXT_3102 = NL + "\t\t\tif (eClass != null && !eClass.isInstance(";
+  protected final String TEXT_3103 = "))" + NL + "\t\t\t\tcontinue ";
+  protected final String TEXT_3104 = "Loop;";
+  protected final String TEXT_3105 = NL + "\t\t\t";
+  protected final String TEXT_3106 = " ";
+  protected final String TEXT_3107 = "List = ";
+  protected final String TEXT_3108 = ".";
+  protected final String TEXT_3109 = "();" + NL + "\t\t\tint ";
+  protected final String TEXT_3110 = "ListSize = ";
+  protected final String TEXT_3111 = "List.size();" + NL + "\t\t\tif (";
+  protected final String TEXT_3112 = " || (";
+  protected final String TEXT_3113 = " != null && ";
+  protected final String TEXT_3114 = ".size() != ";
+  protected final String TEXT_3115 = "ListSize";
+  protected final String TEXT_3116 = ")";
+  protected final String TEXT_3117 = ")" + NL + "\t\t\t\tcontinue  ";
+  protected final String TEXT_3118 = "Loop;" + NL + "\t\t\tfor (int j = 0; j < ";
+  protected final String TEXT_3119 = "ListSize; j++)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+  protected final String TEXT_3120 = " ";
+  protected final String TEXT_3121 = " = ";
+  protected final String TEXT_3122 = "(";
+  protected final String TEXT_3123 = ") ";
+  protected final String TEXT_3124 = "List.get(j);";
+  protected final String TEXT_3125 = NL + "\t\t\t\tif (";
+  protected final String TEXT_3126 = " != null && !(ignoreCase ? (";
+  protected final String TEXT_3127 = "(";
+  protected final String TEXT_3128 = ")";
+  protected final String TEXT_3129 = ".get(j)).equalsIgnoreCase(";
+  protected final String TEXT_3130 = ".";
+  protected final String TEXT_3131 = "()) : ";
+  protected final String TEXT_3132 = ".get(j).equals(";
+  protected final String TEXT_3133 = ".";
+  protected final String TEXT_3134 = "())))";
+  protected final String TEXT_3135 = NL + "\t\t\t\tif (";
+  protected final String TEXT_3136 = " != null && !";
+  protected final String TEXT_3137 = ".get(j).equals(";
+  protected final String TEXT_3138 = ".";
+  protected final String TEXT_3139 = "()))";
+  protected final String TEXT_3140 = NL + "\t\t\t\t\tcontinue ";
+  protected final String TEXT_3141 = "Loop;";
+  protected final String TEXT_3142 = NL + "\t\t\t}";
+  protected final String TEXT_3143 = NL + "\t\t\t";
+  protected final String TEXT_3144 = " ";
+  protected final String TEXT_3145 = " = ";
+  protected final String TEXT_3146 = ".";
+  protected final String TEXT_3147 = "();" + NL + "\t\t\tif (";
+  protected final String TEXT_3148 = " == null)" + NL + "\t\t\t\tcontinue ";
+  protected final String TEXT_3149 = "Loop;";
+  protected final String TEXT_3150 = NL + "\t\t\tif (";
+  protected final String TEXT_3151 = " != null && !(ignoreCase ? ";
+  protected final String TEXT_3152 = ".equalsIgnoreCase(";
+  protected final String TEXT_3153 = ".";
+  protected final String TEXT_3154 = "()) : ";
+  protected final String TEXT_3155 = ".equals(";
+  protected final String TEXT_3156 = ".";
+  protected final String TEXT_3157 = "())))";
+  protected final String TEXT_3158 = NL + "\t\t\tif (";
+  protected final String TEXT_3159 = " != null && !";
+  protected final String TEXT_3160 = ".equals(";
+  protected final String TEXT_3161 = ".";
+  protected final String TEXT_3162 = "()))";
+  protected final String TEXT_3163 = NL + "\t\t\t\tcontinue ";
+  protected final String TEXT_3164 = "Loop;";
+  protected final String TEXT_3165 = NL + "\t\t\tif (";
+  protected final String TEXT_3166 = " != null && !(ignoreCase ? ";
+  protected final String TEXT_3167 = ".equalsIgnoreCase(";
+  protected final String TEXT_3168 = ".";
+  protected final String TEXT_3169 = "()) : ";
+  protected final String TEXT_3170 = ".equals(";
+  protected final String TEXT_3171 = ".";
+  protected final String TEXT_3172 = "())))";
+  protected final String TEXT_3173 = NL + "\t\t\tif (";
+  protected final String TEXT_3174 = " != null && !";
+  protected final String TEXT_3175 = ".equals(";
+  protected final String TEXT_3176 = ".";
+  protected final String TEXT_3177 = "()))";
+  protected final String TEXT_3178 = NL + "\t\t\t\tcontinue ";
+  protected final String TEXT_3179 = "Loop;";
+  protected final String TEXT_3180 = NL + "\t\t\treturn ";
+  protected final String TEXT_3181 = ";" + NL + "\t\t}";
+  protected final String TEXT_3182 = NL + "\t\treturn createOnDemand";
+  protected final String TEXT_3183 = " && eClass != null";
+  protected final String TEXT_3184 = " ? create";
+  protected final String TEXT_3185 = "(";
+  protected final String TEXT_3186 = ", eClass";
+  protected final String TEXT_3187 = ") : null;";
+  protected final String TEXT_3188 = NL + "\t\treturn null;";
+  protected final String TEXT_3189 = NL + "\t}" + NL;
+  protected final String TEXT_3190 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean isSet";
+  protected final String TEXT_3191 = "()" + NL + "\t{";
+  protected final String TEXT_3192 = NL + "  \t\treturn false;";
+  protected final String TEXT_3193 = NL + "\t\treturn eIsSet(";
+  protected final String TEXT_3194 = ");";
+  protected final String TEXT_3195 = NL + "\t\treturn !((";
+  protected final String TEXT_3196 = ".Internal.Wrapper)";
+  protected final String TEXT_3197 = "()).featureMap().isEmpty();";
+  protected final String TEXT_3198 = NL + "\t\treturn ";
+  protected final String TEXT_3199 = " != null && !";
+  protected final String TEXT_3200 = ".featureMap().isEmpty();";
+  protected final String TEXT_3201 = NL + "\t\treturn ";
+  protected final String TEXT_3202 = " != null && !";
+  protected final String TEXT_3203 = ".isEmpty();";
+  protected final String TEXT_3204 = NL + "\t\t";
+  protected final String TEXT_3205 = " ";
+  protected final String TEXT_3206 = " = (";
+  protected final String TEXT_3207 = ")eVirtualGet(";
+  protected final String TEXT_3208 = ");" + NL + "\t\treturn ";
+  protected final String TEXT_3209 = " != null && !";
+  protected final String TEXT_3210 = ".isEmpty();";
+  protected final String TEXT_3211 = NL + "\t\treturn !";
+  protected final String TEXT_3212 = "().isEmpty();";
+  protected final String TEXT_3213 = NL + "\t\treturn ";
+  protected final String TEXT_3214 = " != null;";
+  protected final String TEXT_3215 = NL + "\t\treturn eVirtualGet(";
+  protected final String TEXT_3216 = ") != null;";
+  protected final String TEXT_3217 = NL + "\t\treturn basicGet";
+  protected final String TEXT_3218 = "() != null;";
+  protected final String TEXT_3219 = NL + "\t\treturn ";
+  protected final String TEXT_3220 = " != null;";
+  protected final String TEXT_3221 = NL + "\t\treturn eVirtualGet(";
+  protected final String TEXT_3222 = ") != null;";
+  protected final String TEXT_3223 = NL + "\t\treturn ";
+  protected final String TEXT_3224 = "() != null;";
+  protected final String TEXT_3225 = NL + "\t\t\t\treturn ((";
+  protected final String TEXT_3226 = " & ";
+  protected final String TEXT_3227 = "_EFLAG) != 0) != ";
+  protected final String TEXT_3228 = ";";
+  protected final String TEXT_3229 = NL + "\t\t\t\treturn (";
+  protected final String TEXT_3230 = " & ";
+  protected final String TEXT_3231 = "_EFLAG) != ";
+  protected final String TEXT_3232 = "_EFLAG_DEFAULT;";
+  protected final String TEXT_3233 = NL + "\t\treturn ";
+  protected final String TEXT_3234 = " != ";
+  protected final String TEXT_3235 = ";";
+  protected final String TEXT_3236 = NL + "\t\treturn eVirtualGet(";
+  protected final String TEXT_3237 = ", ";
+  protected final String TEXT_3238 = ") != ";
+  protected final String TEXT_3239 = ";";
+  protected final String TEXT_3240 = NL + "\t\treturn ";
+  protected final String TEXT_3241 = "() != ";
+  protected final String TEXT_3242 = ";";
+  protected final String TEXT_3243 = NL + "\t\treturn ";
+  protected final String TEXT_3244 = " == null ? ";
+  protected final String TEXT_3245 = " != null : !";
+  protected final String TEXT_3246 = ".equals(";
+  protected final String TEXT_3247 = ");";
+  protected final String TEXT_3248 = NL + "\t\t";
+  protected final String TEXT_3249 = " ";
+  protected final String TEXT_3250 = " = (";
+  protected final String TEXT_3251 = ")eVirtualGet(";
+  protected final String TEXT_3252 = ", ";
+  protected final String TEXT_3253 = ");" + NL + "\t\treturn ";
+  protected final String TEXT_3254 = " == null ? ";
+  protected final String TEXT_3255 = " != null : !";
+  protected final String TEXT_3256 = ".equals(";
+  protected final String TEXT_3257 = ");";
+  protected final String TEXT_3258 = NL + "\t\treturn ";
+  protected final String TEXT_3259 = " == null ? ";
+  protected final String TEXT_3260 = "() != null : !";
+  protected final String TEXT_3261 = ".equals(";
+  protected final String TEXT_3262 = "());";
+  protected final String TEXT_3263 = NL + "\t\treturn eIsSet(";
+  protected final String TEXT_3264 = ");";
+  protected final String TEXT_3265 = NL + "\t\t";
+  protected final String TEXT_3266 = " ";
+  protected final String TEXT_3267 = " = (";
+  protected final String TEXT_3268 = ")eVirtualGet(";
+  protected final String TEXT_3269 = ");";
+  protected final String TEXT_3270 = NL + "\t\treturn ";
+  protected final String TEXT_3271 = " != null && ((";
+  protected final String TEXT_3272 = ".Unsettable";
+  protected final String TEXT_3273 = ")";
+  protected final String TEXT_3274 = ").isSet();";
+  protected final String TEXT_3275 = NL + "\t\treturn eVirtualIsSet(";
+  protected final String TEXT_3276 = ");";
+  protected final String TEXT_3277 = NL + "\t\treturn (";
+  protected final String TEXT_3278 = " & ";
+  protected final String TEXT_3279 = "_ESETFLAG) != 0;";
+  protected final String TEXT_3280 = NL + "\t\treturn ";
+  protected final String TEXT_3281 = "ESet;";
+  protected final String TEXT_3282 = NL + "\t\treturn !((";
+  protected final String TEXT_3283 = ".Internal)((";
+  protected final String TEXT_3284 = ".Internal.Wrapper)get";
+  protected final String TEXT_3285 = "()).featureMap()).isEmpty(";
+  protected final String TEXT_3286 = ");";
+  protected final String TEXT_3287 = NL + "\t\treturn !((";
+  protected final String TEXT_3288 = ".Internal)get";
+  protected final String TEXT_3289 = "()).isEmpty(";
+  protected final String TEXT_3290 = ");";
+  protected final String TEXT_3291 = NL + "\t\treturn ";
+  protected final String TEXT_3292 = ".";
+  protected final String TEXT_3293 = "(this);";
+  protected final String TEXT_3294 = NL + "\t\t// TODO: implement this method to return whether the '";
+  protected final String TEXT_3295 = "' ";
+  protected final String TEXT_3296 = " is set" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_3297 = NL + "\t}" + NL;
+  protected final String TEXT_3298 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_3299 = NL + "\t@Override";
+  protected final String TEXT_3300 = NL + "\tpublic ";
+  protected final String TEXT_3301 = " ";
+  protected final String TEXT_3302 = "(";
+  protected final String TEXT_3303 = ")";
+  protected final String TEXT_3304 = NL + "\t{";
+  protected final String TEXT_3305 = NL + "\t\t";
+  protected final String TEXT_3306 = "(";
+  protected final String TEXT_3307 = ");";
+  protected final String TEXT_3308 = NL + "\t\tthrow new UnsupportedOperationException();";
+  protected final String TEXT_3309 = NL + "\t\treturn ";
+  protected final String TEXT_3310 = "(";
+  protected final String TEXT_3311 = ");";
+  protected final String TEXT_3312 = NL + "\t}" + NL;
+  protected final String TEXT_3313 = NL + "} //";
+  protected final String TEXT_3314 = NL;
 
   public String generate(Object argument)
   {
@@ -7996,231 +7997,234 @@
     stringBuffer.append(genOperation.getThrows(genClass));
     stringBuffer.append(TEXT_2005);
     } else {
+    if (genModel.useGenerics() && !genOperation.hasBody() && !genOperation.isInvariant() && genOperation.hasInvocationDelegate() && genOperation.isUncheckedCast(genClass)) {
     stringBuffer.append(TEXT_2006);
+    }
+    stringBuffer.append(TEXT_2007);
     stringBuffer.append(genOperation.getTypeParameters(genClass));
     stringBuffer.append(genOperation.getImportedType(genClass));
-    stringBuffer.append(TEXT_2007);
-    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_2008);
-    stringBuffer.append(genOperation.getParameters(genClass));
+    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_2009);
-    stringBuffer.append(genOperation.getThrows(genClass));
+    stringBuffer.append(genOperation.getParameters(genClass));
     stringBuffer.append(TEXT_2010);
-    if (genOperation.hasBody()) {
+    stringBuffer.append(genOperation.getThrows(genClass));
     stringBuffer.append(TEXT_2011);
+    if (genOperation.hasBody()) {
+    stringBuffer.append(TEXT_2012);
     stringBuffer.append(genOperation.getBody(genModel.getIndentation(stringBuffer)));
     } else if (genOperation.isInvariant()) {GenClass opClass = genOperation.getGenClass(); String diagnostics = genOperation.getGenParameters().get(0).getName(); String context = genOperation.getGenParameters().get(1).getName();
     if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF26_VALUE && genOperation.hasInvariantExpression()) {
-    stringBuffer.append(TEXT_2012);
-    stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
     stringBuffer.append(TEXT_2013);
-    stringBuffer.append(genClass.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_2014);
-    stringBuffer.append(diagnostics);
-    stringBuffer.append(TEXT_2015);
-    stringBuffer.append(context);
-    stringBuffer.append(TEXT_2016);
-    stringBuffer.append(genOperation.getValidationDelegate());
-    stringBuffer.append(TEXT_2017);
-    stringBuffer.append(genModel.getNonNLS());
-    stringBuffer.append(TEXT_2018);
-    stringBuffer.append(genOperation.getQualifiedOperationAccessor());
-    stringBuffer.append(TEXT_2019);
-    stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
-    stringBuffer.append(TEXT_2020);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Diagnostic"));
-    stringBuffer.append(TEXT_2021);
     stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
+    stringBuffer.append(TEXT_2014);
+    stringBuffer.append(genClass.getQualifiedClassifierAccessor());
+    stringBuffer.append(TEXT_2015);
+    stringBuffer.append(diagnostics);
+    stringBuffer.append(TEXT_2016);
+    stringBuffer.append(context);
+    stringBuffer.append(TEXT_2017);
+    stringBuffer.append(genOperation.getValidationDelegate());
+    stringBuffer.append(TEXT_2018);
+    stringBuffer.append(genModel.getNonNLS());
+    stringBuffer.append(TEXT_2019);
+    stringBuffer.append(genOperation.getQualifiedOperationAccessor());
+    stringBuffer.append(TEXT_2020);
+    stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
+    stringBuffer.append(TEXT_2021);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Diagnostic"));
     stringBuffer.append(TEXT_2022);
     stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
     stringBuffer.append(TEXT_2023);
-    stringBuffer.append(opClass.getOperationID(genOperation));
+    stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
     stringBuffer.append(TEXT_2024);
+    stringBuffer.append(opClass.getOperationID(genOperation));
+    stringBuffer.append(TEXT_2025);
     } else {
     if (UML2GenModelUtil.hasOperationsClass(genClass, genOperation)) {
-    stringBuffer.append(TEXT_2025);
-    stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_2026);
-    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_2027);
-    stringBuffer.append(diagnostics);
+    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_2028);
-    stringBuffer.append(context);
+    stringBuffer.append(diagnostics);
     stringBuffer.append(TEXT_2029);
+    stringBuffer.append(context);
+    stringBuffer.append(TEXT_2030);
     } else {
     if (UML2GenModelUtil.hasOCLBody(genOperation)) { String oclInv = UML2GenModelUtil.getUpperName(genOperation.getName()) + (genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false))) + "__EOCL_INV";
-    stringBuffer.append(TEXT_2030);
-    stringBuffer.append(oclInv);
     stringBuffer.append(TEXT_2031);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
-    stringBuffer.append(TEXT_2032);
-    stringBuffer.append(opClass.getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_2033);
     stringBuffer.append(oclInv);
+    stringBuffer.append(TEXT_2032);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
+    stringBuffer.append(TEXT_2033);
+    stringBuffer.append(opClass.getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_2034);
+    stringBuffer.append(oclInv);
+    stringBuffer.append(TEXT_2035);
     stringBuffer.append(UML2GenModelUtil.getUpperName(genOperation.getName()));
     stringBuffer.append(genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false)));
-    stringBuffer.append(TEXT_2035);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ParserException"));
     stringBuffer.append(TEXT_2036);
-    stringBuffer.append(oclInv);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ParserException"));
     stringBuffer.append(TEXT_2037);
-    } else {
+    stringBuffer.append(oclInv);
     stringBuffer.append(TEXT_2038);
-    }
+    } else {
     stringBuffer.append(TEXT_2039);
-    stringBuffer.append(diagnostics);
+    }
     stringBuffer.append(TEXT_2040);
     stringBuffer.append(diagnostics);
     stringBuffer.append(TEXT_2041);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicDiagnostic"));
+    stringBuffer.append(diagnostics);
     stringBuffer.append(TEXT_2042);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Diagnostic"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicDiagnostic"));
     stringBuffer.append(TEXT_2043);
-    stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Diagnostic"));
     stringBuffer.append(TEXT_2044);
     stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
     stringBuffer.append(TEXT_2045);
-    stringBuffer.append(opClass.getOperationID(genOperation));
+    stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
     stringBuffer.append(TEXT_2046);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.plugin.EcorePlugin"));
+    stringBuffer.append(opClass.getOperationID(genOperation));
     stringBuffer.append(TEXT_2047);
-    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.plugin.EcorePlugin"));
     stringBuffer.append(TEXT_2048);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectValidator"));
+    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_2049);
-    stringBuffer.append(context);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectValidator"));
     stringBuffer.append(TEXT_2050);
+    stringBuffer.append(context);
+    stringBuffer.append(TEXT_2051);
     stringBuffer.append(genModel.getNonNLS());
     stringBuffer.append(genModel.getNonNLS(2));
-    stringBuffer.append(TEXT_2051);
+    stringBuffer.append(TEXT_2052);
     }
     }
     } else if (genModel.getRuntimeVersion().getValue() >= GenRuntimeVersion.EMF26_VALUE && genOperation.hasInvocationDelegate()) { int size = genOperation.getGenParameters().size();
-    stringBuffer.append(TEXT_2052);
-    if (genOperation.isVoid()) {
     stringBuffer.append(TEXT_2053);
-    stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
+    if (genOperation.isVoid()) {
     stringBuffer.append(TEXT_2054);
-    if (size > 0) {
-    stringBuffer.append(TEXT_2055);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
-    stringBuffer.append(TEXT_2056);
-    stringBuffer.append(size);
-    stringBuffer.append(TEXT_2057);
-    stringBuffer.append(genOperation.getParametersArray(genClass));
-    stringBuffer.append(TEXT_2058);
-    } else {
-    stringBuffer.append(TEXT_2059);
-    }
-    stringBuffer.append(TEXT_2060);
-    } else {
-    stringBuffer.append(TEXT_2061);
-    if (!isJDK50 && genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2062);
-    }
-    stringBuffer.append(TEXT_2063);
-    stringBuffer.append(genOperation.getObjectType(genClass));
-    stringBuffer.append(TEXT_2064);
     stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
-    stringBuffer.append(TEXT_2065);
+    stringBuffer.append(TEXT_2055);
     if (size > 0) {
-    stringBuffer.append(TEXT_2066);
+    stringBuffer.append(TEXT_2056);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
-    stringBuffer.append(TEXT_2067);
+    stringBuffer.append(TEXT_2057);
     stringBuffer.append(size);
-    stringBuffer.append(TEXT_2068);
+    stringBuffer.append(TEXT_2058);
     stringBuffer.append(genOperation.getParametersArray(genClass));
-    stringBuffer.append(TEXT_2069);
+    stringBuffer.append(TEXT_2059);
     } else {
-    stringBuffer.append(TEXT_2070);
+    stringBuffer.append(TEXT_2060);
     }
-    stringBuffer.append(TEXT_2071);
+    stringBuffer.append(TEXT_2061);
+    } else {
+    stringBuffer.append(TEXT_2062);
     if (!isJDK50 && genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2072);
-    stringBuffer.append(genOperation.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_2073);
+    stringBuffer.append(TEXT_2063);
     }
+    stringBuffer.append(TEXT_2064);
+    stringBuffer.append(genOperation.getObjectType(genClass));
+    stringBuffer.append(TEXT_2065);
+    stringBuffer.append(CodeGenUtil.upperName(genClass.getUniqueName(genOperation), genModel.getLocale()));
+    stringBuffer.append(TEXT_2066);
+    if (size > 0) {
+    stringBuffer.append(TEXT_2067);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
+    stringBuffer.append(TEXT_2068);
+    stringBuffer.append(size);
+    stringBuffer.append(TEXT_2069);
+    stringBuffer.append(genOperation.getParametersArray(genClass));
+    stringBuffer.append(TEXT_2070);
+    } else {
+    stringBuffer.append(TEXT_2071);
+    }
+    stringBuffer.append(TEXT_2072);
+    if (!isJDK50 && genOperation.isPrimitiveType()) {
+    stringBuffer.append(TEXT_2073);
+    stringBuffer.append(genOperation.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_2074);
     }
     stringBuffer.append(TEXT_2075);
-    stringBuffer.append(genModel.getImportedName(isGWT ? "org.eclipse.emf.common.util.InvocationTargetException" : "java.lang.reflect.InvocationTargetException"));
+    }
     stringBuffer.append(TEXT_2076);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.WrappedException"));
+    stringBuffer.append(genModel.getImportedName(isGWT ? "org.eclipse.emf.common.util.InvocationTargetException" : "java.lang.reflect.InvocationTargetException"));
     stringBuffer.append(TEXT_2077);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.WrappedException"));
+    stringBuffer.append(TEXT_2078);
     } else {
     if (UML2GenModelUtil.hasOperationsClass(genClass, genOperation)) {
     if (genOperation.isVoid()) {
-    stringBuffer.append(TEXT_2078);
-    stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_2079);
-    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_2080);
-    if (genOperation.getGenParameters().size() > 0) {
+    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_2081);
+    if (genOperation.getGenParameters().size() > 0) {
+    stringBuffer.append(TEXT_2082);
     stringBuffer.append(genOperation.getParameterNames(", "));
     }
-    stringBuffer.append(TEXT_2082);
+    stringBuffer.append(TEXT_2083);
     } else {
     if (UML2GenModelUtil.isCacheAdapterSupport(genModel) && UML2GenModelUtil.isCached(genOperation)) {
-    stringBuffer.append(TEXT_2083);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
     stringBuffer.append(TEXT_2084);
-    if (genModel.useGenerics() && genOperation.isUncheckedCast()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
     stringBuffer.append(TEXT_2085);
-    }
+    if (genModel.useGenerics() && genOperation.isUncheckedCast()) {
     stringBuffer.append(TEXT_2086);
-    stringBuffer.append(genOperation.getObjectType(genClass));
+    }
     stringBuffer.append(TEXT_2087);
     stringBuffer.append(genOperation.getObjectType(genClass));
     stringBuffer.append(TEXT_2088);
-    if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
-    stringBuffer.append(TEXT_2089);
-    }
-    stringBuffer.append(TEXT_2090);
-    stringBuffer.append(genOperation.getQualifiedOperationAccessor());
-    stringBuffer.append(TEXT_2091);
-    if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
-    stringBuffer.append(TEXT_2092);
-    }
-    stringBuffer.append(TEXT_2093);
-    stringBuffer.append(genOperation.getQualifiedOperationAccessor());
-    stringBuffer.append(TEXT_2094);
-    if (genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2095);
     stringBuffer.append(genOperation.getObjectType(genClass));
+    stringBuffer.append(TEXT_2089);
+    if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
+    stringBuffer.append(TEXT_2090);
+    }
+    stringBuffer.append(TEXT_2091);
+    stringBuffer.append(genOperation.getQualifiedOperationAccessor());
+    stringBuffer.append(TEXT_2092);
+    if (UML2GenModelUtil.isResourceCacheAdapterScope(genOperation)) {
+    stringBuffer.append(TEXT_2093);
+    }
+    stringBuffer.append(TEXT_2094);
+    stringBuffer.append(genOperation.getQualifiedOperationAccessor());
+    stringBuffer.append(TEXT_2095);
+    if (genOperation.isPrimitiveType()) {
     stringBuffer.append(TEXT_2096);
+    stringBuffer.append(genOperation.getObjectType(genClass));
+    stringBuffer.append(TEXT_2097);
     }
     stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
-    stringBuffer.append(TEXT_2097);
-    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_2098);
-    if (genOperation.getGenParameters().size() > 0) {
+    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_2099);
+    if (genOperation.getGenParameters().size() > 0) {
+    stringBuffer.append(TEXT_2100);
     stringBuffer.append(genOperation.getParameterNames(", "));
     }
-    stringBuffer.append(TEXT_2100);
-    if (genOperation.isPrimitiveType()) {
     stringBuffer.append(TEXT_2101);
-    }
-    stringBuffer.append(TEXT_2102);
     if (genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2103);
-    stringBuffer.append(genOperation.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_2104);
+    stringBuffer.append(TEXT_2102);
     }
+    stringBuffer.append(TEXT_2103);
+    if (genOperation.isPrimitiveType()) {
+    stringBuffer.append(TEXT_2104);
+    stringBuffer.append(genOperation.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_2105);
     }
     stringBuffer.append(TEXT_2106);
-    stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
+    }
     stringBuffer.append(TEXT_2107);
-    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_2108);
-    if (genOperation.getGenParameters().size() > 0) {
+    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_2109);
+    if (genOperation.getGenParameters().size() > 0) {
+    stringBuffer.append(TEXT_2110);
     stringBuffer.append(genOperation.getParameterNames(", "));
     }
-    stringBuffer.append(TEXT_2110);
+    stringBuffer.append(TEXT_2111);
     }
     } else if (UML2GenModelUtil.hasOCLBody(genOperation)) { String oclQry = UML2GenModelUtil.getUpperName(genOperation.getName()) + (genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false))) + "__EOCL_QRY";
 		GenOperation redefinedGenOperation = genOperation;
@@ -8233,1298 +8237,1300 @@
 			}
 		}
 		int index = genOperation.getGenClass().getAllGenOperations().indexOf(redefinedGenOperation);
-    stringBuffer.append(TEXT_2111);
-    stringBuffer.append(oclQry);
     stringBuffer.append(TEXT_2112);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
+    stringBuffer.append(oclQry);
     stringBuffer.append(TEXT_2113);
-    stringBuffer.append(genOperation.getGenClass().getQualifiedClassifierAccessor());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
     stringBuffer.append(TEXT_2114);
     stringBuffer.append(genOperation.getGenClass().getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_2115);
-    stringBuffer.append(index);
+    stringBuffer.append(genOperation.getGenClass().getQualifiedClassifierAccessor());
     stringBuffer.append(TEXT_2116);
-    stringBuffer.append(oclQry);
+    stringBuffer.append(index);
     stringBuffer.append(TEXT_2117);
+    stringBuffer.append(oclQry);
+    stringBuffer.append(TEXT_2118);
     stringBuffer.append(UML2GenModelUtil.getUpperName(genOperation.getName()));
     stringBuffer.append(genOperation.getGenParameters().size() == 0 ? "" : "__" + UML2GenModelUtil.getUpperName(genOperation.getParameterTypes("_", false)));
-    stringBuffer.append(TEXT_2118);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ParserException"));
     stringBuffer.append(TEXT_2119);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ParserException"));
     stringBuffer.append(TEXT_2120);
-    stringBuffer.append(oclQry);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
     stringBuffer.append(TEXT_2121);
-    if (!genOperation.getGenParameters().isEmpty()) {
+    stringBuffer.append(oclQry);
     stringBuffer.append(TEXT_2122);
+    if (!genOperation.getGenParameters().isEmpty()) {
+    stringBuffer.append(TEXT_2123);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.EvaluationEnvironment"));
     if (isJDK50) {
-    stringBuffer.append(TEXT_2123);
-    }
     stringBuffer.append(TEXT_2124);
-    for (GenParameter genParameter : genOperation.getGenParameters()) {
+    }
     stringBuffer.append(TEXT_2125);
-    stringBuffer.append(genParameter.getName());
+    for (GenParameter genParameter : genOperation.getGenParameters()) {
     stringBuffer.append(TEXT_2126);
     stringBuffer.append(genParameter.getName());
     stringBuffer.append(TEXT_2127);
+    stringBuffer.append(genParameter.getName());
+    stringBuffer.append(TEXT_2128);
     stringBuffer.append(genModel.getNonNLS());
     }
     }
     if (genOperation.isListType()) {
     if (isJDK50) {
-    stringBuffer.append(TEXT_2128);
-    }
     stringBuffer.append(TEXT_2129);
-    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
-    stringBuffer.append(TEXT_2130);
-    stringBuffer.append(genOperation.getListItemType(null));
-    stringBuffer.append(TEXT_2131);
-    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
-    stringBuffer.append(TEXT_2132);
-    stringBuffer.append(genOperation.getListItemType(null));
-    stringBuffer.append(TEXT_2133);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
-    stringBuffer.append(TEXT_2134);
-    stringBuffer.append(genOperation.getListItemType(null));
-    stringBuffer.append(TEXT_2135);
-    } else if (genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2136);
-    stringBuffer.append(genOperation.getObjectType(null));
-    stringBuffer.append(TEXT_2137);
-    stringBuffer.append(genOperation.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_2138);
-    } else {
-    stringBuffer.append(TEXT_2139);
-    stringBuffer.append(genOperation.getImportedType(null));
-    stringBuffer.append(TEXT_2140);
     }
+    stringBuffer.append(TEXT_2130);
+    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
+    stringBuffer.append(TEXT_2131);
+    stringBuffer.append(genOperation.getListItemType(null));
+    stringBuffer.append(TEXT_2132);
+    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
+    stringBuffer.append(TEXT_2133);
+    stringBuffer.append(genOperation.getListItemType(null));
+    stringBuffer.append(TEXT_2134);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
+    stringBuffer.append(TEXT_2135);
+    stringBuffer.append(genOperation.getListItemType(null));
+    stringBuffer.append(TEXT_2136);
+    } else if (genOperation.isPrimitiveType()) {
+    stringBuffer.append(TEXT_2137);
+    stringBuffer.append(genOperation.getObjectType(null));
+    stringBuffer.append(TEXT_2138);
+    stringBuffer.append(genOperation.getPrimitiveValueFunction());
+    stringBuffer.append(TEXT_2139);
     } else {
+    stringBuffer.append(TEXT_2140);
+    stringBuffer.append(genOperation.getImportedType(null));
     stringBuffer.append(TEXT_2141);
     }
-    }
+    } else {
     stringBuffer.append(TEXT_2142);
     }
+    }
+    stringBuffer.append(TEXT_2143);
+    }
     //Class/implementedGenOperation.override.javajetinc
     }//for
     if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEInverseAddGenFeatures())) {
-    stringBuffer.append(TEXT_2143);
+    stringBuffer.append(TEXT_2144);
     if (genModel.useGenerics()) {
     for (GenFeature genFeature : genClass.getEInverseAddGenFeatures()) {
     if (genFeature.isUncheckedCast(genClass)) {
-    stringBuffer.append(TEXT_2144);
+    stringBuffer.append(TEXT_2145);
     break; }
     }
     }
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2145);
-    }
     stringBuffer.append(TEXT_2146);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
+    }
     stringBuffer.append(TEXT_2147);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_2148);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
+    stringBuffer.append(TEXT_2148);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
     stringBuffer.append(TEXT_2149);
-    stringBuffer.append(negativeOffsetCorrection);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
     stringBuffer.append(TEXT_2150);
-    for (GenFeature genFeature : genClass.getEInverseAddGenFeatures()) {
+    stringBuffer.append(negativeOffsetCorrection);
     stringBuffer.append(TEXT_2151);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    for (GenFeature genFeature : genClass.getEInverseAddGenFeatures()) {
     stringBuffer.append(TEXT_2152);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_2153);
     if (genFeature.isListType()) { String cast = "("  + genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList") + (!genModel.useGenerics() ? ")" : "<" + genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject") + ">)(" + genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList") + "<?>)");
     if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {
-    stringBuffer.append(TEXT_2153);
-    stringBuffer.append(cast);
     stringBuffer.append(TEXT_2154);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
+    stringBuffer.append(cast);
     stringBuffer.append(TEXT_2155);
-    stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
     stringBuffer.append(TEXT_2156);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
     stringBuffer.append(TEXT_2157);
-    } else {
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2158);
+    } else {
+    stringBuffer.append(TEXT_2159);
     stringBuffer.append(cast);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2159);
+    stringBuffer.append(TEXT_2160);
     }
     } else if (genFeature.isContainer()) {
-    stringBuffer.append(TEXT_2160);
-    if (genFeature.isBasicSet()) {
     stringBuffer.append(TEXT_2161);
-    stringBuffer.append(genFeature.getAccessorName());
+    if (genFeature.isBasicSet()) {
     stringBuffer.append(TEXT_2162);
-    stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2163);
-    } else {
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2164);
+    } else {
+    stringBuffer.append(TEXT_2165);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_2165);
+    stringBuffer.append(TEXT_2166);
     }
     } else {
     if (genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_2166);
-    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2167);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_2168);
     stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2168);
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_2169);
+    stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2170);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_2170);
-    } else if (genFeature.isVolatile() || genClass.getImplementingGenModel(genFeature).isDynamicDelegation()) {
     stringBuffer.append(TEXT_2171);
-    stringBuffer.append(genFeature.getImportedType(genClass));
+    } else if (genFeature.isVolatile() || genClass.getImplementingGenModel(genFeature).isDynamicDelegation()) {
     stringBuffer.append(TEXT_2172);
-    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2173);
-    if (genFeature.isResolveProxies()) {
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_2174);
+    if (genFeature.isResolveProxies()) {
+    stringBuffer.append(TEXT_2175);
     stringBuffer.append(genFeature.getAccessorName());
     } else {
     stringBuffer.append(genFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_2175);
-    }
     stringBuffer.append(TEXT_2176);
-    stringBuffer.append(genFeature.getSafeName());
+    }
     stringBuffer.append(TEXT_2177);
-    if (genFeature.isEffectiveContains()) {
-    stringBuffer.append(TEXT_2178);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_2179);
     stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2178);
+    if (genFeature.isEffectiveContains()) {
+    stringBuffer.append(TEXT_2179);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
     stringBuffer.append(TEXT_2180);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2181);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_2181);
-    } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
     stringBuffer.append(TEXT_2182);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+    } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
     stringBuffer.append(TEXT_2183);
-    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
     stringBuffer.append(TEXT_2184);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2185);
     stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
     stringBuffer.append(reverseOffsetCorrection);
-    stringBuffer.append(TEXT_2185);
-    stringBuffer.append(targetClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_2186);
-    }
+    stringBuffer.append(targetClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_2187);
-    stringBuffer.append(genFeature.getAccessorName());
+    }
     stringBuffer.append(TEXT_2188);
-    stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2189);
-    }
-    }
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2190);
-    if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_2191);
-    } else {
-    stringBuffer.append(TEXT_2192);
     }
+    }
+    stringBuffer.append(TEXT_2191);
+    if (genModel.isMinimalReflectiveMethods()) {
+    stringBuffer.append(TEXT_2192);
+    } else {
     stringBuffer.append(TEXT_2193);
     }
-    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEInverseRemoveGenFeatures())) {
     stringBuffer.append(TEXT_2194);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2195);
     }
+    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEInverseRemoveGenFeatures())) {
+    stringBuffer.append(TEXT_2195);
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2196);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
+    }
     stringBuffer.append(TEXT_2197);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
-    stringBuffer.append(TEXT_2198);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
+    stringBuffer.append(TEXT_2198);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
     stringBuffer.append(TEXT_2199);
-    stringBuffer.append(negativeOffsetCorrection);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
     stringBuffer.append(TEXT_2200);
-    for (GenFeature genFeature : genClass.getEInverseRemoveGenFeatures()) {
+    stringBuffer.append(negativeOffsetCorrection);
     stringBuffer.append(TEXT_2201);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    for (GenFeature genFeature : genClass.getEInverseRemoveGenFeatures()) {
     stringBuffer.append(TEXT_2202);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_2203);
     if (genFeature.isListType()) {
     if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {
-    stringBuffer.append(TEXT_2203);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_2204);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+    stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_2205);
-    stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
     stringBuffer.append(TEXT_2206);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
     stringBuffer.append(TEXT_2207);
-    } else if (genFeature.isWrappedFeatureMapType()) {
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2208);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(singleWildcard);
+    } else if (genFeature.isWrappedFeatureMapType()) {
     stringBuffer.append(TEXT_2209);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_2210);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2211);
-    } else {
-    stringBuffer.append(TEXT_2212);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
     stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_2213);
+    stringBuffer.append(TEXT_2210);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(TEXT_2211);
     stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2212);
+    } else {
+    stringBuffer.append(TEXT_2213);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+    stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_2214);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2215);
     }
     } else if (genFeature.isContainer() && !genFeature.isBasicSet()) {
-    stringBuffer.append(TEXT_2215);
+    stringBuffer.append(TEXT_2216);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_2216);
-    } else if (genFeature.isUnsettable()) {
     stringBuffer.append(TEXT_2217);
-    stringBuffer.append(genFeature.getAccessorName());
+    } else if (genFeature.isUnsettable()) {
     stringBuffer.append(TEXT_2218);
-    } else {
-    stringBuffer.append(TEXT_2219);
     stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_2220);
-    }
-    }
-    stringBuffer.append(TEXT_2221);
-    if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_2222);
+    stringBuffer.append(TEXT_2219);
     } else {
-    stringBuffer.append(TEXT_2223);
+    stringBuffer.append(TEXT_2220);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2221);
     }
+    }
+    stringBuffer.append(TEXT_2222);
+    if (genModel.isMinimalReflectiveMethods()) {
+    stringBuffer.append(TEXT_2223);
+    } else {
     stringBuffer.append(TEXT_2224);
     }
-    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEBasicRemoveFromContainerGenFeatures())) {
     stringBuffer.append(TEXT_2225);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2226);
     }
+    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEBasicRemoveFromContainerGenFeatures())) {
+    stringBuffer.append(TEXT_2226);
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2227);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
+    }
     stringBuffer.append(TEXT_2228);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
     stringBuffer.append(TEXT_2229);
-    stringBuffer.append(negativeOffsetCorrection);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
     stringBuffer.append(TEXT_2230);
+    stringBuffer.append(negativeOffsetCorrection);
+    stringBuffer.append(TEXT_2231);
     for (GenFeature genFeature : genClass.getEBasicRemoveFromContainerGenFeatures()) {
     GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(genFeature) : "";
-    stringBuffer.append(TEXT_2231);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_2232);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_2233);
     stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
     stringBuffer.append(reverseOffsetCorrection);
-    stringBuffer.append(TEXT_2233);
-    stringBuffer.append(targetClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_2234);
-    }
+    stringBuffer.append(targetClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_2235);
-    if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_2236);
-    } else {
-    stringBuffer.append(TEXT_2237);
     }
+    stringBuffer.append(TEXT_2236);
+    if (genModel.isMinimalReflectiveMethods()) {
+    stringBuffer.append(TEXT_2237);
+    } else {
     stringBuffer.append(TEXT_2238);
     }
-    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEGetGenFeatures())) {
     stringBuffer.append(TEXT_2239);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2240);
     }
+    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEGetGenFeatures())) {
+    stringBuffer.append(TEXT_2240);
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2241);
-    stringBuffer.append(negativeOffsetCorrection);
+    }
     stringBuffer.append(TEXT_2242);
-    for (GenFeature genFeature : genClass.getEGetGenFeatures()) {
+    stringBuffer.append(negativeOffsetCorrection);
     stringBuffer.append(TEXT_2243);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    for (GenFeature genFeature : genClass.getEGetGenFeatures()) {
     stringBuffer.append(TEXT_2244);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_2245);
     if (genFeature.isPrimitiveType()) {
     if (isJDK50) {
-    stringBuffer.append(TEXT_2245);
-    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2246);
-    } else if (genFeature.isBooleanType()) {
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2247);
-    stringBuffer.append(genFeature.getGetAccessor());
+    } else if (genFeature.isBooleanType()) {
     stringBuffer.append(TEXT_2248);
-    } else {
-    stringBuffer.append(TEXT_2249);
-    stringBuffer.append(genFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_2250);
     stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2249);
+    } else {
+    stringBuffer.append(TEXT_2250);
+    stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_2251);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2252);
     }
     } else if (genFeature.isResolveProxies() && !genFeature.isListType()) {
-    stringBuffer.append(TEXT_2252);
-    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2253);
-    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2254);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2255);
     } else if (genFeature.isMapType()) {
     if (genFeature.isEffectiveSuppressEMFTypes()) {
-    stringBuffer.append(TEXT_2255);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
     stringBuffer.append(TEXT_2256);
-    stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
     stringBuffer.append(TEXT_2257);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
     stringBuffer.append(TEXT_2258);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2259);
-    } else {
-    stringBuffer.append(TEXT_2260);
     stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2260);
+    } else {
     stringBuffer.append(TEXT_2261);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2262);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2263);
     }
     } else if (genFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_2263);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2264);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2265);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2266);
-    } else if (genFeature.isFeatureMapType()) {
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2267);
-    stringBuffer.append(genFeature.getGetAccessor());
+    } else if (genFeature.isFeatureMapType()) {
     stringBuffer.append(TEXT_2268);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2269);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2270);
-    } else {
-    stringBuffer.append(TEXT_2271);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2272);
-    }
-    }
-    stringBuffer.append(TEXT_2273);
-    if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_2274);
+    stringBuffer.append(TEXT_2271);
     } else {
-    stringBuffer.append(TEXT_2275);
+    stringBuffer.append(TEXT_2272);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2273);
     }
+    }
+    stringBuffer.append(TEXT_2274);
+    if (genModel.isMinimalReflectiveMethods()) {
+    stringBuffer.append(TEXT_2275);
+    } else {
     stringBuffer.append(TEXT_2276);
     }
-    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getESetGenFeatures())) {
     stringBuffer.append(TEXT_2277);
+    }
+    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getESetGenFeatures())) {
+    stringBuffer.append(TEXT_2278);
     if (genModel.useGenerics()) {
     for (GenFeature genFeature : genClass.getESetGenFeatures()) {
     if (genFeature.isUncheckedCast(genClass) && !genFeature.isFeatureMapType() && !genFeature.isMapType()) {
-    stringBuffer.append(TEXT_2278);
+    stringBuffer.append(TEXT_2279);
     break; }
     }
     }
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2279);
-    }
     stringBuffer.append(TEXT_2280);
-    stringBuffer.append(negativeOffsetCorrection);
+    }
     stringBuffer.append(TEXT_2281);
-    for (GenFeature genFeature : genClass.getESetGenFeatures()) {
+    stringBuffer.append(negativeOffsetCorrection);
     stringBuffer.append(TEXT_2282);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    for (GenFeature genFeature : genClass.getESetGenFeatures()) {
     stringBuffer.append(TEXT_2283);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_2284);
     if (genFeature.isListType()) {
     if (genFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_2284);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2285);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2286);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2287);
-    } else if (genFeature.isFeatureMapType()) {
-    stringBuffer.append(TEXT_2288);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_2289);
+    stringBuffer.append(TEXT_2287);
     stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2288);
+    } else if (genFeature.isFeatureMapType()) {
+    stringBuffer.append(TEXT_2289);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2290);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2291);
     } else if (genFeature.isMapType()) {
     if (genFeature.isEffectiveSuppressEMFTypes()) {
-    stringBuffer.append(TEXT_2291);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
     stringBuffer.append(TEXT_2292);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
-    stringBuffer.append(TEXT_2293);
-    stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
-    stringBuffer.append(TEXT_2294);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2295);
-    } else {
-    stringBuffer.append(TEXT_2296);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
-    stringBuffer.append(TEXT_2297);
+    stringBuffer.append(TEXT_2293);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
+    stringBuffer.append(TEXT_2294);
+    stringBuffer.append(genFeature.getImportedMapTemplateArguments(genClass));
+    stringBuffer.append(TEXT_2295);
     stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2296);
+    } else {
+    stringBuffer.append(TEXT_2297);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
     stringBuffer.append(TEXT_2298);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2299);
     }
     } else {
-    stringBuffer.append(TEXT_2299);
-    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2300);
     stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2301);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2302);
     stringBuffer.append(genModel.getImportedName("java.util.Collection"));
     if (isJDK50) {
-    stringBuffer.append(TEXT_2302);
-    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_2303);
-    }
+    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_2304);
     }
-    } else if (!isJDK50 && genFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_2305);
-    stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_2306);
-    stringBuffer.append(genFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_2307);
-    stringBuffer.append(genFeature.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_2308);
-    } else {
-    stringBuffer.append(TEXT_2309);
-    stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_2310);
-    if (genFeature.getTypeGenDataType() == null || !genFeature.getTypeGenDataType().isObjectType() || !genFeature.getRawType().equals(genFeature.getType(genClass))) {
-    stringBuffer.append(TEXT_2311);
-    stringBuffer.append(genFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_2312);
     }
+    } else if (!isJDK50 && genFeature.isPrimitiveType()) {
+    stringBuffer.append(TEXT_2306);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2307);
+    stringBuffer.append(genFeature.getObjectType(genClass));
+    stringBuffer.append(TEXT_2308);
+    stringBuffer.append(genFeature.getPrimitiveValueFunction());
+    stringBuffer.append(TEXT_2309);
+    } else {
+    stringBuffer.append(TEXT_2310);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2311);
+    if (genFeature.getTypeGenDataType() == null || !genFeature.getTypeGenDataType().isObjectType() || !genFeature.getRawType().equals(genFeature.getType(genClass))) {
+    stringBuffer.append(TEXT_2312);
+    stringBuffer.append(genFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_2313);
     }
     stringBuffer.append(TEXT_2314);
     }
     stringBuffer.append(TEXT_2315);
-    if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_2316);
-    } else {
-    stringBuffer.append(TEXT_2317);
     }
+    stringBuffer.append(TEXT_2316);
+    if (genModel.isMinimalReflectiveMethods()) {
+    stringBuffer.append(TEXT_2317);
+    } else {
     stringBuffer.append(TEXT_2318);
     }
-    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEUnsetGenFeatures())) {
     stringBuffer.append(TEXT_2319);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2320);
     }
+    if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEUnsetGenFeatures())) {
+    stringBuffer.append(TEXT_2320);
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2321);
-    stringBuffer.append(negativeOffsetCorrection);
+    }
     stringBuffer.append(TEXT_2322);
-    for (GenFeature genFeature : genClass.getEUnsetGenFeatures()) {
+    stringBuffer.append(negativeOffsetCorrection);
     stringBuffer.append(TEXT_2323);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    for (GenFeature genFeature : genClass.getEUnsetGenFeatures()) {
     stringBuffer.append(TEXT_2324);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_2325);
     if (genFeature.isListType() && !genFeature.isUnsettable()) {
     if (genFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_2325);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2326);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2327);
-    } else {
-    stringBuffer.append(TEXT_2328);
     stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2328);
+    } else {
     stringBuffer.append(TEXT_2329);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2330);
     }
     } else if (genFeature.isUnsettable()) {
-    stringBuffer.append(TEXT_2330);
-    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2331);
-    } else if (!genFeature.hasEDefault()) {
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2332);
-    stringBuffer.append(genFeature.getAccessorName());
+    } else if (!genFeature.hasEDefault()) {
     stringBuffer.append(TEXT_2333);
-    stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2334);
-    } else {
-    stringBuffer.append(TEXT_2335);
     stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2334);
+    stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2335);
+    } else {
     stringBuffer.append(TEXT_2336);
-    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2337);
-    }
+    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_2338);
     }
     stringBuffer.append(TEXT_2339);
-    if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_2340);
-    } else {
-    stringBuffer.append(TEXT_2341);
     }
+    stringBuffer.append(TEXT_2340);
+    if (genModel.isMinimalReflectiveMethods()) {
+    stringBuffer.append(TEXT_2341);
+    } else {
     stringBuffer.append(TEXT_2342);
+    }
+    stringBuffer.append(TEXT_2343);
     //Class/eUnset.override.javajetinc
     }
     if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEIsSetGenFeatures())) {
-    stringBuffer.append(TEXT_2343);
     stringBuffer.append(TEXT_2344);
+    stringBuffer.append(TEXT_2345);
     if (genModel.useGenerics()) {
     for (GenFeature genFeature : genClass.getEIsSetGenFeatures()) {
     if (genFeature.isListType() && !genFeature.isUnsettable() && !genFeature.isWrappedFeatureMapType() && !genClass.isField(genFeature) && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_2345);
+    stringBuffer.append(TEXT_2346);
     break; }
     }
     }
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2346);
-    }
     stringBuffer.append(TEXT_2347);
-    for (GenFeature genFeature : genClass.getEIsSetGenFeatures()) { String safeNameAccessor = genFeature.getSafeName(); if ("featureID".equals(safeNameAccessor)) { safeNameAccessor = "this." + safeNameAccessor; }
+    }
     stringBuffer.append(TEXT_2348);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    for (GenFeature genFeature : genClass.getEIsSetGenFeatures()) { String safeNameAccessor = genFeature.getSafeName(); if ("featureID".equals(safeNameAccessor)) { safeNameAccessor = "this." + safeNameAccessor; }
     stringBuffer.append(TEXT_2349);
-    if (UML2GenModelUtil.isUnion(genFeature) || UML2GenModelUtil.isRedefinition(genFeature) || UML2GenModelUtil.isRedefined(genClass, genFeature)) {
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_2350);
-    stringBuffer.append(genFeature.getAccessorName());
+    if (UML2GenModelUtil.isUnion(genFeature) || UML2GenModelUtil.isRedefinition(genFeature) || UML2GenModelUtil.isRedefined(genClass, genFeature)) {
     stringBuffer.append(TEXT_2351);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2352);
     } else {
     if (genFeature.hasSettingDelegate()) {
     if (genFeature.isUnsettable()) {
-    stringBuffer.append(TEXT_2352);
-    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2353);
-    } else {
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2354);
-    stringBuffer.append(genFeature.getUpperName());
+    } else {
     stringBuffer.append(TEXT_2355);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2356);
     }
     } else if (genFeature.isListType() && !genFeature.isUnsettable()) {
     if (genFeature.isWrappedFeatureMapType()) {
     if (genFeature.isVolatile()) {
-    stringBuffer.append(TEXT_2356);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2357);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_2358);
-    } else {
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2359);
-    stringBuffer.append(safeNameAccessor);
+    } else {
     stringBuffer.append(TEXT_2360);
     stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2361);
+    stringBuffer.append(safeNameAccessor);
+    stringBuffer.append(TEXT_2362);
     }
     } else {
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_2362);
-    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2363);
     stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2364);
+    stringBuffer.append(safeNameAccessor);
+    stringBuffer.append(TEXT_2365);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_2365);
-    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2366);
-    stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_2367);
     stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2367);
+    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2368);
+    stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2369);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_2369);
-    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2370);
     stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2371);
-    } else {
+    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2372);
-    stringBuffer.append(genFeature.getGetAccessor());
+    } else {
     stringBuffer.append(TEXT_2373);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2374);
     }
     }
     }
     } else if (genFeature.isUnsettable()) {
-    stringBuffer.append(TEXT_2374);
-    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2375);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2376);
     } else if (genFeature.isResolveProxies()) {
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_2376);
-    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2377);
+    stringBuffer.append(safeNameAccessor);
+    stringBuffer.append(TEXT_2378);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_2378);
+    stringBuffer.append(TEXT_2379);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_2379);
-    } else {
     stringBuffer.append(TEXT_2380);
-    stringBuffer.append(genFeature.getAccessorName());
+    } else {
     stringBuffer.append(TEXT_2381);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2382);
     }
     }
     } else if (!genFeature.hasEDefault()) {
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_2382);
-    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2383);
+    stringBuffer.append(safeNameAccessor);
+    stringBuffer.append(TEXT_2384);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_2384);
+    stringBuffer.append(TEXT_2385);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_2385);
-    } else {
     stringBuffer.append(TEXT_2386);
-    stringBuffer.append(genFeature.getGetAccessor());
+    } else {
     stringBuffer.append(TEXT_2387);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2388);
     }
     }
     } else if (genFeature.isPrimitiveType() || genFeature.isEnumType()) {
     if (genClass.isField(genFeature)) {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_2388);
-    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_2389);
-    stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_2390);
-    stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_2391);
-    } else {
-    stringBuffer.append(TEXT_2392);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_2393);
+    stringBuffer.append(TEXT_2390);
     stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2391);
+    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_2392);
+    } else {
+    stringBuffer.append(TEXT_2393);
+    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_2394);
     stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_2395);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2396);
     }
     } else {
-    stringBuffer.append(TEXT_2396);
-    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2397);
-    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2398);
+    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_2399);
     }
     } else {
     if (genFeature.isEnumType() && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_2399);
+    stringBuffer.append(TEXT_2400);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_2400);
-    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_2401);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_2402);
-    } else {
-    stringBuffer.append(TEXT_2403);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2404);
     stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_2403);
+    } else {
+    stringBuffer.append(TEXT_2404);
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2405);
+    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_2406);
     }
     }
     } else {//datatype
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_2406);
-    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_2407);
-    stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_2408);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_2409);
+    stringBuffer.append(TEXT_2408);
     stringBuffer.append(safeNameAccessor);
+    stringBuffer.append(TEXT_2409);
+    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_2410);
+    stringBuffer.append(safeNameAccessor);
+    stringBuffer.append(TEXT_2411);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_2411);
-    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2412);
-    stringBuffer.append(safeNameAccessor);
-    stringBuffer.append(TEXT_2413);
     stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2413);
+    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2414);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2415);
-    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_2416);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_2417);
-    stringBuffer.append(safeNameAccessor);
+    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_2418);
-    stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_2419);
     stringBuffer.append(safeNameAccessor);
+    stringBuffer.append(TEXT_2419);
+    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_2420);
-    } else {
+    stringBuffer.append(safeNameAccessor);
     stringBuffer.append(TEXT_2421);
-    stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_2422);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2423);
-    stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_2424);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2425);
-    }
-    }
-    }
-    }
-    }
-    stringBuffer.append(TEXT_2426);
-    if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_2427);
     } else {
-    stringBuffer.append(TEXT_2428);
+    stringBuffer.append(TEXT_2422);
+    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_2423);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2424);
+    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_2425);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2426);
     }
+    }
+    }
+    }
+    }
+    stringBuffer.append(TEXT_2427);
+    if (genModel.isMinimalReflectiveMethods()) {
+    stringBuffer.append(TEXT_2428);
+    } else {
     stringBuffer.append(TEXT_2429);
+    }
+    stringBuffer.append(TEXT_2430);
     //Class/eIsSet.override.javajetinc
     }
     if (isImplementation && (!genClass.getMixinGenFeatures().isEmpty() || genClass.hasOffsetCorrection() && !genClass.getGenFeatures().isEmpty())) {
     if (!genClass.getMixinGenFeatures().isEmpty()) {
-    stringBuffer.append(TEXT_2430);
-    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2431);
-    }
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2432);
-    stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_2433);
-    for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {
-    stringBuffer.append(TEXT_2434);
-    stringBuffer.append(mixinGenClass.getRawImportedInterfaceName());
-    stringBuffer.append(TEXT_2435);
-    stringBuffer.append(negativeOffsetCorrection);
-    stringBuffer.append(TEXT_2436);
-    for (GenFeature genFeature : mixinGenClass.getGenFeatures()) {
-    stringBuffer.append(TEXT_2437);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_2438);
-    stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_2439);
     }
+    stringBuffer.append(TEXT_2433);
+    stringBuffer.append(singleWildcard);
+    stringBuffer.append(TEXT_2434);
+    for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {
+    stringBuffer.append(TEXT_2435);
+    stringBuffer.append(mixinGenClass.getRawImportedInterfaceName());
+    stringBuffer.append(TEXT_2436);
+    stringBuffer.append(negativeOffsetCorrection);
+    stringBuffer.append(TEXT_2437);
+    for (GenFeature genFeature : mixinGenClass.getGenFeatures()) {
+    stringBuffer.append(TEXT_2438);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_2439);
+    stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_2440);
     }
     stringBuffer.append(TEXT_2441);
     }
     stringBuffer.append(TEXT_2442);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2443);
     }
+    stringBuffer.append(TEXT_2443);
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2444);
-    stringBuffer.append(singleWildcard);
+    }
     stringBuffer.append(TEXT_2445);
-    for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {
+    stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_2446);
-    stringBuffer.append(mixinGenClass.getRawImportedInterfaceName());
+    for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {
     stringBuffer.append(TEXT_2447);
-    for (GenFeature genFeature : mixinGenClass.getGenFeatures()) {
+    stringBuffer.append(mixinGenClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_2448);
-    stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));
+    for (GenFeature genFeature : mixinGenClass.getGenFeatures()) {
     stringBuffer.append(TEXT_2449);
+    stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(TEXT_2450);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_2450);
-    }
     stringBuffer.append(TEXT_2451);
     }
-    if (genClass.hasOffsetCorrection() && !genClass.getGenFeatures().isEmpty()) {
     stringBuffer.append(TEXT_2452);
-    stringBuffer.append(genClass.getRawImportedInterfaceName());
+    }
+    if (genClass.hasOffsetCorrection() && !genClass.getGenFeatures().isEmpty()) {
     stringBuffer.append(TEXT_2453);
-    stringBuffer.append(negativeOffsetCorrection);
+    stringBuffer.append(genClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_2454);
-    for (GenFeature genFeature : genClass.getGenFeatures()) {
+    stringBuffer.append(negativeOffsetCorrection);
     stringBuffer.append(TEXT_2455);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    for (GenFeature genFeature : genClass.getGenFeatures()) {
     stringBuffer.append(TEXT_2456);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_2457);
-    }
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_2458);
     }
     stringBuffer.append(TEXT_2459);
     }
-    if (genModel.isOperationReflection() && isImplementation && (!genClass.getMixinGenOperations().isEmpty() || !genClass.getOverrideGenOperations(genClass.getExtendedGenOperations(), genClass.getImplementedGenOperations()).isEmpty() || genClass.hasOffsetCorrection() && !genClass.getGenOperations().isEmpty())) {
     stringBuffer.append(TEXT_2460);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2461);
     }
+    if (genModel.isOperationReflection() && isImplementation && (!genClass.getMixinGenOperations().isEmpty() || !genClass.getOverrideGenOperations(genClass.getExtendedGenOperations(), genClass.getImplementedGenOperations()).isEmpty() || genClass.hasOffsetCorrection() && !genClass.getGenOperations().isEmpty())) {
+    stringBuffer.append(TEXT_2461);
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2462);
-    stringBuffer.append(singleWildcard);
+    }
     stringBuffer.append(TEXT_2463);
+    stringBuffer.append(singleWildcard);
+    stringBuffer.append(TEXT_2464);
     for (GenClass extendedGenClass : genClass.getExtendedGenClasses()) { List<GenOperation> extendedImplementedGenOperations = extendedGenClass.getImplementedGenOperations(); List<GenOperation> implementedGenOperations = genClass.getImplementedGenOperations();
     if (!genClass.getOverrideGenOperations(extendedImplementedGenOperations, implementedGenOperations).isEmpty()) {
-    stringBuffer.append(TEXT_2464);
-    stringBuffer.append(extendedGenClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_2465);
+    stringBuffer.append(extendedGenClass.getRawImportedInterfaceName());
+    stringBuffer.append(TEXT_2466);
     for (GenOperation genOperation : extendedImplementedGenOperations) { GenOperation overrideGenOperation = genClass.getOverrideGenOperation(genOperation);
     if (implementedGenOperations.contains(overrideGenOperation)) {
-    stringBuffer.append(TEXT_2466);
-    stringBuffer.append(extendedGenClass.getQualifiedOperationID(genOperation));
     stringBuffer.append(TEXT_2467);
+    stringBuffer.append(extendedGenClass.getQualifiedOperationID(genOperation));
+    stringBuffer.append(TEXT_2468);
     stringBuffer.append(genClass.getQualifiedOperationID(overrideGenOperation));
     stringBuffer.append(positiveOperationOffsetCorrection);
-    stringBuffer.append(TEXT_2468);
-    }
-    }
     stringBuffer.append(TEXT_2469);
     }
     }
-    for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {
     stringBuffer.append(TEXT_2470);
-    stringBuffer.append(mixinGenClass.getRawImportedInterfaceName());
+    }
+    }
+    for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {
     stringBuffer.append(TEXT_2471);
-    for (GenOperation genOperation : mixinGenClass.getGenOperations()) { GenOperation overrideGenOperation = genClass.getOverrideGenOperation(genOperation);
+    stringBuffer.append(mixinGenClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_2472);
-    stringBuffer.append(mixinGenClass.getQualifiedOperationID(genOperation));
+    for (GenOperation genOperation : mixinGenClass.getGenOperations()) { GenOperation overrideGenOperation = genClass.getOverrideGenOperation(genOperation);
     stringBuffer.append(TEXT_2473);
+    stringBuffer.append(mixinGenClass.getQualifiedOperationID(genOperation));
+    stringBuffer.append(TEXT_2474);
     stringBuffer.append(genClass.getQualifiedOperationID(overrideGenOperation != null ? overrideGenOperation : genOperation));
     stringBuffer.append(positiveOperationOffsetCorrection);
-    stringBuffer.append(TEXT_2474);
-    }
     stringBuffer.append(TEXT_2475);
     }
-    if (genClass.hasOffsetCorrection() && !genClass.getGenOperations().isEmpty()) {
     stringBuffer.append(TEXT_2476);
-    stringBuffer.append(genClass.getRawImportedInterfaceName());
+    }
+    if (genClass.hasOffsetCorrection() && !genClass.getGenOperations().isEmpty()) {
     stringBuffer.append(TEXT_2477);
-    stringBuffer.append(negativeOperationOffsetCorrection);
+    stringBuffer.append(genClass.getRawImportedInterfaceName());
     stringBuffer.append(TEXT_2478);
-    for (GenOperation genOperation : genClass.getGenOperations()) {
+    stringBuffer.append(negativeOperationOffsetCorrection);
     stringBuffer.append(TEXT_2479);
-    stringBuffer.append(genClass.getQualifiedOperationID(genOperation));
+    for (GenOperation genOperation : genClass.getGenOperations()) {
     stringBuffer.append(TEXT_2480);
     stringBuffer.append(genClass.getQualifiedOperationID(genOperation));
-    stringBuffer.append(positiveOperationOffsetCorrection);
     stringBuffer.append(TEXT_2481);
-    }
+    stringBuffer.append(genClass.getQualifiedOperationID(genOperation));
+    stringBuffer.append(positiveOperationOffsetCorrection);
     stringBuffer.append(TEXT_2482);
     }
     stringBuffer.append(TEXT_2483);
     }
+    stringBuffer.append(TEXT_2484);
+    }
     if (isImplementation && genModel.isVirtualDelegation()) { String eVirtualValuesField = genClass.getEVirtualValuesField();
     if (eVirtualValuesField != null) {
-    stringBuffer.append(TEXT_2484);
-    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2485);
-    }
-    stringBuffer.append(TEXT_2486);
-    stringBuffer.append(eVirtualValuesField);
-    stringBuffer.append(TEXT_2487);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2488);
+    stringBuffer.append(TEXT_2486);
     }
-    stringBuffer.append(TEXT_2489);
+    stringBuffer.append(TEXT_2487);
     stringBuffer.append(eVirtualValuesField);
+    stringBuffer.append(TEXT_2488);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_2489);
+    }
     stringBuffer.append(TEXT_2490);
+    stringBuffer.append(eVirtualValuesField);
+    stringBuffer.append(TEXT_2491);
     }
     { List<String> eVirtualIndexBitFields = genClass.getEVirtualIndexBitFields(new ArrayList<String>());
     if (!eVirtualIndexBitFields.isEmpty()) { List<String> allEVirtualIndexBitFields = genClass.getAllEVirtualIndexBitFields(new ArrayList<String>());
-    stringBuffer.append(TEXT_2491);
-    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2492);
-    }
-    stringBuffer.append(TEXT_2493);
-    for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {
-    stringBuffer.append(TEXT_2494);
-    stringBuffer.append(i);
-    stringBuffer.append(TEXT_2495);
-    stringBuffer.append(allEVirtualIndexBitFields.get(i));
-    stringBuffer.append(TEXT_2496);
-    }
-    stringBuffer.append(TEXT_2497);
     if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2498);
+    stringBuffer.append(TEXT_2493);
     }
-    stringBuffer.append(TEXT_2499);
+    stringBuffer.append(TEXT_2494);
     for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {
-    stringBuffer.append(TEXT_2500);
+    stringBuffer.append(TEXT_2495);
     stringBuffer.append(i);
-    stringBuffer.append(TEXT_2501);
+    stringBuffer.append(TEXT_2496);
     stringBuffer.append(allEVirtualIndexBitFields.get(i));
-    stringBuffer.append(TEXT_2502);
+    stringBuffer.append(TEXT_2497);
     }
+    stringBuffer.append(TEXT_2498);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_2499);
+    }
+    stringBuffer.append(TEXT_2500);
+    for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {
+    stringBuffer.append(TEXT_2501);
+    stringBuffer.append(i);
+    stringBuffer.append(TEXT_2502);
+    stringBuffer.append(allEVirtualIndexBitFields.get(i));
     stringBuffer.append(TEXT_2503);
     }
+    stringBuffer.append(TEXT_2504);
+    }
     }
     }
     if (genModel.isOperationReflection() && isImplementation && !genClass.getImplementedGenOperations().isEmpty()) {
-    stringBuffer.append(TEXT_2504);
-    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2505);
+    if (genModel.useClassOverrideAnnotation()) {
+    stringBuffer.append(TEXT_2506);
     }
+    if (genModel.useGenerics()) {
     LOOP: for (GenOperation genOperation : (genModel.isMinimalReflectiveMethods() ? genClass.getImplementedGenOperations() : genClass.getAllGenOperations())) {
     for (GenParameter genParameter : genOperation.getGenParameters()) {
     if (genParameter.isUncheckedCast()) {
-    stringBuffer.append(TEXT_2506);
+    stringBuffer.append(TEXT_2507);
     break LOOP;}
     }
     }
-    stringBuffer.append(TEXT_2507);
+    }
+    stringBuffer.append(TEXT_2508);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EList"));
     stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_2508);
-    stringBuffer.append(genModel.getImportedName(isGWT ? "org.eclipse.emf.common.util.InvocationTargetException" : "java.lang.reflect.InvocationTargetException"));
     stringBuffer.append(TEXT_2509);
-    stringBuffer.append(negativeOperationOffsetCorrection);
+    stringBuffer.append(genModel.getImportedName(isGWT ? "org.eclipse.emf.common.util.InvocationTargetException" : "java.lang.reflect.InvocationTargetException"));
     stringBuffer.append(TEXT_2510);
-    for (GenOperation genOperation : (genModel.isMinimalReflectiveMethods() ? genClass.getImplementedGenOperations() : genClass.getAllGenOperations())) { List<GenParameter> genParameters = genOperation.getGenParameters(); int size = genParameters.size();
+    stringBuffer.append(negativeOperationOffsetCorrection);
     stringBuffer.append(TEXT_2511);
-    stringBuffer.append(genClass.getQualifiedOperationID(genOperation));
+    for (GenOperation genOperation : (genModel.isMinimalReflectiveMethods() ? genClass.getImplementedGenOperations() : genClass.getAllGenOperations())) { List<GenParameter> genParameters = genOperation.getGenParameters(); int size = genParameters.size();
     stringBuffer.append(TEXT_2512);
-    if (genOperation.isVoid()) {
+    stringBuffer.append(genClass.getQualifiedOperationID(genOperation));
     stringBuffer.append(TEXT_2513);
-    stringBuffer.append(genOperation.getName());
+    if (genOperation.isVoid()) {
     stringBuffer.append(TEXT_2514);
+    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(TEXT_2515);
     for (int i = 0; i < size; i++) { GenParameter genParameter = genParameters.get(i);
     if (!isJDK50 && genParameter.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2515);
+    stringBuffer.append(TEXT_2516);
     }
     if (genParameter.getTypeGenDataType() == null || !genParameter.getTypeGenDataType().isObjectType() || !genParameter.getRawType().equals(genParameter.getType(genClass))) {
-    stringBuffer.append(TEXT_2516);
-    stringBuffer.append(genParameter.getObjectType(genClass));
     stringBuffer.append(TEXT_2517);
-    }
+    stringBuffer.append(genParameter.getObjectType(genClass));
     stringBuffer.append(TEXT_2518);
-    stringBuffer.append(i);
-    stringBuffer.append(TEXT_2519);
-    if (!isJDK50 && genParameter.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2520);
-    stringBuffer.append(genParameter.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_2521);
     }
-    if (i < (size - 1)) {
+    stringBuffer.append(TEXT_2519);
+    stringBuffer.append(i);
+    stringBuffer.append(TEXT_2520);
+    if (!isJDK50 && genParameter.isPrimitiveType()) {
+    stringBuffer.append(TEXT_2521);
+    stringBuffer.append(genParameter.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_2522);
     }
-    }
+    if (i < (size - 1)) {
     stringBuffer.append(TEXT_2523);
-    } else {
+    }
+    }
     stringBuffer.append(TEXT_2524);
-    if (!isJDK50 && genOperation.isPrimitiveType()) {
+    } else {
     stringBuffer.append(TEXT_2525);
-    stringBuffer.append(genOperation.getObjectType(genClass));
+    if (!isJDK50 && genOperation.isPrimitiveType()) {
     stringBuffer.append(TEXT_2526);
+    stringBuffer.append(genOperation.getObjectType(genClass));
+    stringBuffer.append(TEXT_2527);
     }
     stringBuffer.append(genOperation.getName());
-    stringBuffer.append(TEXT_2527);
+    stringBuffer.append(TEXT_2528);
     for (int i = 0; i < size; i++) { GenParameter genParameter = genParameters.get(i);
     if (!isJDK50 && genParameter.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2528);
+    stringBuffer.append(TEXT_2529);
     }
     if (genParameter.getTypeGenDataType() == null || !genParameter.getTypeGenDataType().isObjectType() || !genParameter.getRawType().equals(genParameter.getType(genClass))) {
-    stringBuffer.append(TEXT_2529);
-    stringBuffer.append(genParameter.getObjectType(genClass));
     stringBuffer.append(TEXT_2530);
-    }
+    stringBuffer.append(genParameter.getObjectType(genClass));
     stringBuffer.append(TEXT_2531);
-    stringBuffer.append(i);
-    stringBuffer.append(TEXT_2532);
-    if (!isJDK50 && genParameter.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2533);
-    stringBuffer.append(genParameter.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_2534);
     }
-    if (i < (size - 1)) {
+    stringBuffer.append(TEXT_2532);
+    stringBuffer.append(i);
+    stringBuffer.append(TEXT_2533);
+    if (!isJDK50 && genParameter.isPrimitiveType()) {
+    stringBuffer.append(TEXT_2534);
+    stringBuffer.append(genParameter.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_2535);
     }
-    }
+    if (i < (size - 1)) {
     stringBuffer.append(TEXT_2536);
-    if (!isJDK50 && genOperation.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2537);
     }
+    }
+    stringBuffer.append(TEXT_2537);
+    if (!isJDK50 && genOperation.isPrimitiveType()) {
     stringBuffer.append(TEXT_2538);
     }
-    }
     stringBuffer.append(TEXT_2539);
-    if (genModel.isMinimalReflectiveMethods()) {
-    stringBuffer.append(TEXT_2540);
-    } else {
-    stringBuffer.append(TEXT_2541);
     }
+    }
+    stringBuffer.append(TEXT_2540);
+    if (genModel.isMinimalReflectiveMethods()) {
+    stringBuffer.append(TEXT_2541);
+    } else {
     stringBuffer.append(TEXT_2542);
     }
-    if (!genClass.hasImplementedToStringGenOperation() && isImplementation && !genModel.isReflectiveDelegation() && !genModel.isDynamicDelegation() && !genClass.getToStringGenFeatures().isEmpty()) {
     stringBuffer.append(TEXT_2543);
-    if (genModel.useClassOverrideAnnotation()) {
-    stringBuffer.append(TEXT_2544);
     }
+    if (!genClass.hasImplementedToStringGenOperation() && isImplementation && !genModel.isReflectiveDelegation() && !genModel.isDynamicDelegation() && !genClass.getToStringGenFeatures().isEmpty()) {
+    stringBuffer.append(TEXT_2544);
+    if (genModel.useClassOverrideAnnotation()) {
     stringBuffer.append(TEXT_2545);
+    }
+    stringBuffer.append(TEXT_2546);
     { boolean first = true;
     for (GenFeature genFeature : genClass.getToStringGenFeatures()) {
     if (first) { first = false;
-    stringBuffer.append(TEXT_2546);
-    stringBuffer.append(genFeature.getName());
     stringBuffer.append(TEXT_2547);
+    stringBuffer.append(genFeature.getName());
+    stringBuffer.append(TEXT_2548);
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_2548);
-    stringBuffer.append(genFeature.getName());
     stringBuffer.append(TEXT_2549);
+    stringBuffer.append(genFeature.getName());
+    stringBuffer.append(TEXT_2550);
     stringBuffer.append(genModel.getNonNLS());
     }
     if (genFeature.isUnsettable() && !genFeature.isListType()) {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2550);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_2551);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_2552);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(positiveOffsetCorrection);
+    stringBuffer.append(TEXT_2553);
     stringBuffer.append(genModel.getNonNLS());
     } else {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_2553);
-    if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_2554);
-    stringBuffer.append(genClass.getESetFlagsField(genFeature));
+    if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_2555);
-    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_2556);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2557);
     } else {
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_2557);
-    }
     stringBuffer.append(TEXT_2558);
-    stringBuffer.append(genClass.getFlagsField(genFeature));
+    }
     stringBuffer.append(TEXT_2559);
-    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_2560);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2561);
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_2561);
-    if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_2562);
-    stringBuffer.append(genClass.getESetFlagsField(genFeature));
+    if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_2563);
-    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_2564);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2565);
     } else {
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_2565);
-    }
     stringBuffer.append(TEXT_2566);
-    stringBuffer.append(genFeature.getUpperName());
+    }
     stringBuffer.append(TEXT_2567);
-    stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_2568);
     stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2568);
+    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_2569);
     stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_2570);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2571);
     stringBuffer.append(genModel.getNonNLS());
     }
     } else {
-    stringBuffer.append(TEXT_2571);
-    if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_2572);
-    stringBuffer.append(genClass.getESetFlagsField(genFeature));
+    if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_2573);
-    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_2574);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2575);
     } else {
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_2575);
-    }
     stringBuffer.append(TEXT_2576);
-    stringBuffer.append(genFeature.getSafeName());
+    }
     stringBuffer.append(TEXT_2577);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2578);
     stringBuffer.append(genModel.getNonNLS());
     }
     }
     } else {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2578);
+    stringBuffer.append(TEXT_2579);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     if (!genFeature.isListType() && !genFeature.isReferenceType()){
-    stringBuffer.append(TEXT_2579);
+    stringBuffer.append(TEXT_2580);
     stringBuffer.append(genFeature.getEDefault());
     }
-    stringBuffer.append(TEXT_2580);
+    stringBuffer.append(TEXT_2581);
     } else {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_2581);
-    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_2582);
-    stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_2583);
-    } else {
-    stringBuffer.append(TEXT_2584);
-    stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_2585);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_2586);
+    stringBuffer.append(TEXT_2583);
     stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2584);
+    } else {
+    stringBuffer.append(TEXT_2585);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2586);
+    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_2587);
     stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_2588);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_2589);
     }
     } else {
-    stringBuffer.append(TEXT_2589);
-    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_2590);
-    }
-    }
-    }
-    }
-    }
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_2591);
     }
+    }
+    }
+    }
+    }
+    stringBuffer.append(TEXT_2592);
+    }
     if (isImplementation && genClass.isMapEntry()) { GenFeature keyFeature = genClass.getMapEntryKeyFeature(); GenFeature valueFeature = genClass.getMapEntryValueFeature();
     String objectType = genModel.getImportedName("java.lang.Object");
     String keyType = isJDK50 ? keyFeature.getObjectType(genClass) : objectType;
     String valueType = isJDK50 ? valueFeature.getObjectType(genClass) : objectType;
     String eMapType = genModel.getImportedName("org.eclipse.emf.common.util.EMap") + (isJDK50 ? "<" + keyType + ", " + valueType + ">" : "");
-    stringBuffer.append(TEXT_2592);
-    if (isGWT) {
     stringBuffer.append(TEXT_2593);
+    if (isGWT) {
+    stringBuffer.append(TEXT_2594);
     stringBuffer.append(genModel.getImportedName("com.google.gwt.user.client.rpc.GwtTransient"));
     }
-    stringBuffer.append(TEXT_2594);
-    stringBuffer.append(objectType);
     stringBuffer.append(TEXT_2595);
-    stringBuffer.append(keyType);
+    stringBuffer.append(objectType);
     stringBuffer.append(TEXT_2596);
-    if (!isJDK50 && keyFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2597);
-    stringBuffer.append(keyFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_2598);
-    } else {
-    stringBuffer.append(TEXT_2599);
-    }
-    stringBuffer.append(TEXT_2600);
     stringBuffer.append(keyType);
-    stringBuffer.append(TEXT_2601);
-    if (keyFeature.isListType()) {
-    stringBuffer.append(TEXT_2602);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_2603);
-    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
-    stringBuffer.append(TEXT_2604);
-    }
-    stringBuffer.append(TEXT_2605);
-    } else if (isJDK50) {
-    stringBuffer.append(TEXT_2606);
-    } else if (keyFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2607);
+    stringBuffer.append(TEXT_2597);
+    if (!isJDK50 && keyFeature.isPrimitiveType()) {
+    stringBuffer.append(TEXT_2598);
     stringBuffer.append(keyFeature.getObjectType(genClass));
+    stringBuffer.append(TEXT_2599);
+    } else {
+    stringBuffer.append(TEXT_2600);
+    }
+    stringBuffer.append(TEXT_2601);
+    stringBuffer.append(keyType);
+    stringBuffer.append(TEXT_2602);
+    if (keyFeature.isListType()) {
+    stringBuffer.append(TEXT_2603);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_2604);
+    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
+    stringBuffer.append(TEXT_2605);
+    }
+    stringBuffer.append(TEXT_2606);
+    } else if (isJDK50) {
+    stringBuffer.append(TEXT_2607);
+    } else if (keyFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_2608);
-    stringBuffer.append(keyFeature.getPrimitiveValueFunction());
+    stringBuffer.append(keyFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_2609);
-    } else {
+    stringBuffer.append(keyFeature.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_2610);
-    stringBuffer.append(keyFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2611);
-    }
-    stringBuffer.append(TEXT_2612);
-    stringBuffer.append(valueType);
-    stringBuffer.append(TEXT_2613);
-    if (!isJDK50 && valueFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_2614);
-    stringBuffer.append(valueFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_2615);
     } else {
-    stringBuffer.append(TEXT_2616);
+    stringBuffer.append(TEXT_2611);
+    stringBuffer.append(keyFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2612);
     }
-    stringBuffer.append(TEXT_2617);
+    stringBuffer.append(TEXT_2613);
     stringBuffer.append(valueType);
+    stringBuffer.append(TEXT_2614);
+    if (!isJDK50 && valueFeature.isPrimitiveType()) {
+    stringBuffer.append(TEXT_2615);
+    stringBuffer.append(valueFeature.getObjectType(genClass));
+    stringBuffer.append(TEXT_2616);
+    } else {
+    stringBuffer.append(TEXT_2617);
+    }
     stringBuffer.append(TEXT_2618);
     stringBuffer.append(valueType);
     stringBuffer.append(TEXT_2619);
     stringBuffer.append(valueType);
     stringBuffer.append(TEXT_2620);
-    if (valueFeature.isListType()) {
+    stringBuffer.append(valueType);
     stringBuffer.append(TEXT_2621);
-    if (!genModel.useGenerics()) {
+    if (valueFeature.isListType()) {
     stringBuffer.append(TEXT_2622);
-    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
+    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_2623);
-    }
+    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
     stringBuffer.append(TEXT_2624);
-    } else if (isJDK50) {
+    }
     stringBuffer.append(TEXT_2625);
-    } else if (valueFeature.isPrimitiveType()) {
+    } else if (isJDK50) {
     stringBuffer.append(TEXT_2626);
-    stringBuffer.append(valueFeature.getObjectType(genClass));
+    } else if (valueFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_2627);
-    stringBuffer.append(valueFeature.getPrimitiveValueFunction());
+    stringBuffer.append(valueFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_2628);
-    } else {
+    stringBuffer.append(valueFeature.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_2629);
-    stringBuffer.append(valueFeature.getImportedType(genClass));
+    } else {
     stringBuffer.append(TEXT_2630);
-    }
+    stringBuffer.append(valueFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2631);
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_2632);
     }
+    stringBuffer.append(TEXT_2632);
+    if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_2633);
-    stringBuffer.append(eMapType);
+    }
     stringBuffer.append(TEXT_2634);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
-    stringBuffer.append(TEXT_2635);
     stringBuffer.append(eMapType);
+    stringBuffer.append(TEXT_2635);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
     stringBuffer.append(TEXT_2636);
+    stringBuffer.append(eMapType);
+    stringBuffer.append(TEXT_2637);
     }
     if (isImplementation) {
     if (!UML2GenModelUtil.isOperationsClasses(genPackage) && UML2GenModelUtil.hasOCLOperationBodies(genClass) && !UML2GenModelUtil.hasOCLOperationBodies(genClass.getClassExtendsGenClass())) {
-    stringBuffer.append(TEXT_2637);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
     stringBuffer.append(TEXT_2638);
     stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
     stringBuffer.append(TEXT_2639);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.ocl.ecore.OCL"));
+    stringBuffer.append(TEXT_2640);
     }
     if (genClass.isModelRoot()) {
     if (UML2GenModelUtil.isFactoryMethods(genClass)) {
-    stringBuffer.append(TEXT_2640);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
     stringBuffer.append(TEXT_2641);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
     stringBuffer.append(TEXT_2642);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
     stringBuffer.append(TEXT_2643);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));
+    stringBuffer.append(TEXT_2644);
     }
     if (UML2GenModelUtil.isCacheAdapterSupport(genClass)) {
-    stringBuffer.append(TEXT_2644);
-    stringBuffer.append(genClass.getFormattedName());
     stringBuffer.append(TEXT_2645);
     stringBuffer.append(genClass.getFormattedName());
     stringBuffer.append(TEXT_2646);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
+    stringBuffer.append(genClass.getFormattedName());
     stringBuffer.append(TEXT_2647);
     stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
     stringBuffer.append(TEXT_2648);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter"));
+    stringBuffer.append(TEXT_2649);
     }
     }
     for (GenFeature genFeature : UML2GenModelUtil.getImplementedUnionGenFeatures(genClass)) {
     if (genFeature.isGet()) {
     if (genFeature.isListType()) {
     if (!UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)) {
-    stringBuffer.append(TEXT_2649);
-    if (genModel.useClassOverrideAnnotation() && genClass.getExtendedGenFeatures().contains(genFeature)) {
     stringBuffer.append(TEXT_2650);
-    }
+    if (genModel.useClassOverrideAnnotation() && genClass.getExtendedGenFeatures().contains(genFeature)) {
     stringBuffer.append(TEXT_2651);
-    stringBuffer.append(genFeature.getImportedType(genClass));
+    }
     stringBuffer.append(TEXT_2652);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2653);
     stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2653);
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2654);
-    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2655);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2656);
     if (genClass.getExtendedGenFeatures().contains(genFeature)) {
     if (UML2GenModelUtil.isDerivedUnionListType(genClass.getClassExtendsGenClass(), genFeature)) {
-    stringBuffer.append(TEXT_2656);
-    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_2657);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2658);
-    } else {
-    stringBuffer.append(TEXT_2659);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2660);
     stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2658);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2659);
+    } else {
+    stringBuffer.append(TEXT_2660);
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2661);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2662);
     }
     }
     for (GenFeature subsetGenFeature : UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature)) {
@@ -9532,588 +9538,586 @@
     if (subsetGenFeature.isListType()) {
     if (subsetGenFeature.isResolveProxies() || UML2GenModelUtil.isUnion(subsetGenFeature)) {
     if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
-    stringBuffer.append(TEXT_2662);
-    stringBuffer.append(subsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2663);
-    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    if (genModel.useGenerics()) {
+    stringBuffer.append(subsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2664);
-    stringBuffer.append(genModel.getImportedName(subsetGenFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
+    if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_2665);
-    }
+    stringBuffer.append(genModel.getImportedName(subsetGenFeature.getQualifiedListItemType(genClass)));
     stringBuffer.append(TEXT_2666);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+    }
     stringBuffer.append(TEXT_2667);
-    stringBuffer.append(subsetGenFeature.getGetAccessor());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
     stringBuffer.append(TEXT_2668);
-    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(subsetGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_2669);
-    } else {
-    if (genClass.isField(subsetGenFeature)) {
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_2670);
-    stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
-    stringBuffer.append(TEXT_2671);
-    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_2672);
-    stringBuffer.append(genModel.getImportedName(subsetGenFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_2673);
-    }
-    stringBuffer.append(TEXT_2674);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_2675);
-    stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2676);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_2677);
-    } else {
-    stringBuffer.append(TEXT_2678);
-    stringBuffer.append(subsetGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2679);
-    stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_2680);
-    stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2681);
-    stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_2682);
-    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    if (genModel.useGenerics()) {
-    stringBuffer.append(TEXT_2683);
-    stringBuffer.append(genModel.getImportedName(subsetGenFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_2684);
-    }
-    stringBuffer.append(TEXT_2685);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_2686);
-    stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_2687);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_2688);
-    }
-    }
-    } else {
-    if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
-    stringBuffer.append(TEXT_2689);
-    stringBuffer.append(subsetGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_2690);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_2691);
-    stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2692);
     } else {
     if (genClass.isField(subsetGenFeature)) {
-    stringBuffer.append(TEXT_2693);
+    stringBuffer.append(TEXT_2671);
     stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
-    stringBuffer.append(TEXT_2694);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_2695);
+    stringBuffer.append(TEXT_2672);
+    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_2673);
+    stringBuffer.append(genModel.getImportedName(subsetGenFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(TEXT_2674);
+    }
+    stringBuffer.append(TEXT_2675);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+    stringBuffer.append(TEXT_2676);
     stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2696);
+    stringBuffer.append(TEXT_2677);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2678);
     } else {
-    stringBuffer.append(TEXT_2697);
+    stringBuffer.append(TEXT_2679);
     stringBuffer.append(subsetGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2698);
+    stringBuffer.append(TEXT_2680);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_2699);
+    stringBuffer.append(TEXT_2681);
     stringBuffer.append(subsetGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2700);
+    stringBuffer.append(TEXT_2682);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_2701);
+    stringBuffer.append(TEXT_2683);
+    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
+    if (genModel.useGenerics()) {
+    stringBuffer.append(TEXT_2684);
+    stringBuffer.append(genModel.getImportedName(subsetGenFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(TEXT_2685);
+    }
+    stringBuffer.append(TEXT_2686);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+    stringBuffer.append(TEXT_2687);
+    stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_2688);
     stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_2702);
+    stringBuffer.append(TEXT_2689);
+    }
+    }
+    } else {
+    if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
+    stringBuffer.append(TEXT_2690);
+    stringBuffer.append(subsetGenFeature.getAccessorName());
+    stringBuffer.append(TEXT_2691);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2692);
+    stringBuffer.append(subsetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2693);
+    } else {
+    if (genClass.isField(subsetGenFeature)) {
+    stringBuffer.append(TEXT_2694);
+    stringBuffer.append(genClass.getQualifiedFeatureID(subsetGenFeature));
+    stringBuffer.append(TEXT_2695);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2696);
+    stringBuffer.append(subsetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2697);
+    } else {
+    stringBuffer.append(TEXT_2698);
+    stringBuffer.append(subsetGenFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2699);
     stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_2700);
+    stringBuffer.append(subsetGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2701);
+    stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_2702);
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_2703);
+    stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_2704);
     }
     }
     }
     } else {
     if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {
-    stringBuffer.append(TEXT_2704);
-    stringBuffer.append(subsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2705);
-    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(subsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2706);
-    if (subsetGenFeature.isBasicGet()) {
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_2707);
-    stringBuffer.append(subsetGenFeature.getAccessorName());
-    } else {
-    stringBuffer.append(subsetGenFeature.getGetAccessor());
-    }
-    stringBuffer.append(TEXT_2708);
-    } else {
-    stringBuffer.append(TEXT_2709);
-    stringBuffer.append(subsetGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2710);
-    stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_2711);
     if (subsetGenFeature.isBasicGet()) {
-    stringBuffer.append(TEXT_2712);
+    stringBuffer.append(TEXT_2708);
     stringBuffer.append(subsetGenFeature.getAccessorName());
     } else {
     stringBuffer.append(subsetGenFeature.getGetAccessor());
     }
+    stringBuffer.append(TEXT_2709);
+    } else {
+    stringBuffer.append(TEXT_2710);
+    stringBuffer.append(subsetGenFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2711);
+    stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_2712);
+    if (subsetGenFeature.isBasicGet()) {
     stringBuffer.append(TEXT_2713);
-    stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(subsetGenFeature.getAccessorName());
+    } else {
+    stringBuffer.append(subsetGenFeature.getGetAccessor());
+    }
     stringBuffer.append(TEXT_2714);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_2715);
     stringBuffer.append(subsetGenFeature.getSafeName());
-    stringBuffer.append(TEXT_2716);
-    }
-    }
-    }
-    }
-    stringBuffer.append(TEXT_2717);
+    stringBuffer.append(TEXT_2715);
     stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_2716);
+    stringBuffer.append(subsetGenFeature.getSafeName());
+    stringBuffer.append(TEXT_2717);
+    }
+    }
+    }
+    }
     stringBuffer.append(TEXT_2718);
-    }
-    }
-    }
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_2719);
+    }
+    }
+    }
+    stringBuffer.append(TEXT_2720);
     if (isJDK50) { //isSetGenFeature.annotations.insert.javajetinc
     if (genClass.getExtendedGenFeatures().contains(genFeature) || (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
-    stringBuffer.append(TEXT_2720);
-    }
-    }
     stringBuffer.append(TEXT_2721);
-    stringBuffer.append(genFeature.getAccessorName());
+    }
+    }
     stringBuffer.append(TEXT_2722);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2723);
     if (!UML2GenModelUtil.getIsSetSubsetGenFeatures(genClass, genFeature).isEmpty()) { boolean first = true;
     if (first && genClass.getExtendedGenFeatures().contains(genFeature)) { first = false;
-    stringBuffer.append(TEXT_2723);
-    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2724);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2725);
     }
     for (Iterator<GenFeature> isSetSubsetGenFeatures = UML2GenModelUtil.getIsSetSubsetGenFeatures(genClass, genFeature).iterator(); isSetSubsetGenFeatures.hasNext();) { GenFeature isSetSubsetGenFeature = isSetSubsetGenFeatures.next();
     if (first) { first = false;
     if (isSetSubsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(isSetSubsetGenFeature) || UML2GenModelUtil.isRedefinition(isSetSubsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, isSetSubsetGenFeature)) {
-    stringBuffer.append(TEXT_2725);
-    stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2726);
-    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2727);
+    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(TEXT_2728);
     }
     } else if (UML2GenModelUtil.isDuplicate(isSetSubsetGenFeature) && !UML2GenModelUtil.isRedefinition(isSetSubsetGenFeature)) {
     if (isSetSubsetGenFeature.isListType()) {
-    stringBuffer.append(TEXT_2728);
-    stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_2729);
-    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_2730);
+    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(TEXT_2731);
     }
     } else {
-    stringBuffer.append(TEXT_2731);
-    if (isSetSubsetGenFeature.isBasicGet()) {
     stringBuffer.append(TEXT_2732);
+    if (isSetSubsetGenFeature.isBasicGet()) {
+    stringBuffer.append(TEXT_2733);
     stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     } else {
     stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_2733);
-    if (!isSetSubsetGenFeatures.hasNext()) {
     stringBuffer.append(TEXT_2734);
+    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(TEXT_2735);
     }
     }
     } else {
-    stringBuffer.append(TEXT_2735);
-    stringBuffer.append(genClass.getQualifiedFeatureID(isSetSubsetGenFeature));
     stringBuffer.append(TEXT_2736);
-    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(genClass.getQualifiedFeatureID(isSetSubsetGenFeature));
     stringBuffer.append(TEXT_2737);
+    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(TEXT_2738);
     }
     }
     } else {
     if (isSetSubsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(isSetSubsetGenFeature) || UML2GenModelUtil.isRedefinition(isSetSubsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, isSetSubsetGenFeature)) {
-    stringBuffer.append(TEXT_2738);
-    stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2739);
-    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2740);
+    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(TEXT_2741);
     }
     } else if (UML2GenModelUtil.isDuplicate(isSetSubsetGenFeature) && !UML2GenModelUtil.isRedefinition(isSetSubsetGenFeature)) {
     if (isSetSubsetGenFeature.isListType()) {
-    stringBuffer.append(TEXT_2741);
-    stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_2742);
-    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_2743);
+    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(TEXT_2744);
     }
     } else {
-    stringBuffer.append(TEXT_2744);
-    if (isSetSubsetGenFeature.isBasicGet()) {
     stringBuffer.append(TEXT_2745);
+    if (isSetSubsetGenFeature.isBasicGet()) {
+    stringBuffer.append(TEXT_2746);
     stringBuffer.append(isSetSubsetGenFeature.getAccessorName());
     } else {
     stringBuffer.append(isSetSubsetGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_2746);
-    if (!isSetSubsetGenFeatures.hasNext()) {
     stringBuffer.append(TEXT_2747);
+    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(TEXT_2748);
     }
     }
     } else {
-    stringBuffer.append(TEXT_2748);
-    stringBuffer.append(genClass.getQualifiedFeatureID(isSetSubsetGenFeature));
     stringBuffer.append(TEXT_2749);
-    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(genClass.getQualifiedFeatureID(isSetSubsetGenFeature));
     stringBuffer.append(TEXT_2750);
+    if (!isSetSubsetGenFeatures.hasNext()) {
+    stringBuffer.append(TEXT_2751);
     }
     }
     }
     }
     } else {
     if (genClass.getExtendedGenFeatures().contains(genFeature)) {
-    stringBuffer.append(TEXT_2751);
-    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2752);
-    } else {
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2753);
-    }
-    }
+    } else {
     stringBuffer.append(TEXT_2754);
     }
+    }
+    stringBuffer.append(TEXT_2755);
+    }
     for (GenFeature genFeature : UML2GenModelUtil.getImplementedRedefinedGenFeatures(genClass)) { GenFeature redefinitionGenFeature = UML2GenModelUtil.getRedefinitionGenFeatures(genClass, genFeature).iterator().next();
     if (genFeature.isGet()) {
-    stringBuffer.append(TEXT_2755);
+    stringBuffer.append(TEXT_2756);
     if (isJDK50) { //getGenFeature.annotations.insert.javajetinc
     if (genClass.getExtendedGenFeatures().contains(genFeature) || (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
-    stringBuffer.append(TEXT_2756);
-    }
-    }
     stringBuffer.append(TEXT_2757);
-    stringBuffer.append(genFeature.getImportedType(genClass));
+    }
+    }
     stringBuffer.append(TEXT_2758);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2759);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2760);
     if (genFeature.isListType()) {
     if (redefinitionGenFeature.isListType()) {
     if (genModel.useGenerics() && !redefinitionGenFeature.getListItemType(genClass).equals(genFeature.getListItemType(genClass))) {
-    stringBuffer.append(TEXT_2760);
-    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2761);
-    stringBuffer.append(redefinitionGenFeature.getUncapName());
-    stringBuffer.append(TEXT_2762);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2763);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EList") + "<?>");
-    stringBuffer.append(TEXT_2764);
-    stringBuffer.append(redefinitionGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2765);
+    stringBuffer.append(TEXT_2762);
     stringBuffer.append(redefinitionGenFeature.getUncapName());
-    stringBuffer.append(TEXT_2766);
-    } else {
-    stringBuffer.append(TEXT_2767);
+    stringBuffer.append(TEXT_2763);
+    stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2764);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EList") + "<?>");
+    stringBuffer.append(TEXT_2765);
     stringBuffer.append(redefinitionGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2766);
+    stringBuffer.append(redefinitionGenFeature.getUncapName());
+    stringBuffer.append(TEXT_2767);
+    } else {
     stringBuffer.append(TEXT_2768);
+    stringBuffer.append(redefinitionGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2769);
     }
     } else {
-    stringBuffer.append(TEXT_2769);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreEList"));
     stringBuffer.append(TEXT_2770);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreEList"));
+    stringBuffer.append(TEXT_2771);
     if (genModel.useGenerics()) {
     stringBuffer.append("<" + genFeature.getListItemType(genClass) + ">");
     }
-    stringBuffer.append(TEXT_2771);
-    if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
     stringBuffer.append(TEXT_2772);
+    if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
+    stringBuffer.append(TEXT_2773);
     } else {
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     }
-    stringBuffer.append(TEXT_2773);
-    stringBuffer.append(genModel.getImportedName("java.util.Collections"));
     stringBuffer.append(TEXT_2774);
+    stringBuffer.append(genModel.getImportedName("java.util.Collections"));
+    stringBuffer.append(TEXT_2775);
     }
     } else {
     if (redefinitionGenFeature.isListType()) {
-    stringBuffer.append(TEXT_2775);
-    } else {
     stringBuffer.append(TEXT_2776);
-    stringBuffer.append(redefinitionGenFeature.getGetAccessor());
+    } else {
     stringBuffer.append(TEXT_2777);
-    }
-    }
+    stringBuffer.append(redefinitionGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_2778);
     }
-    if (genFeature.isBasicGet()) {
+    }
     stringBuffer.append(TEXT_2779);
+    }
+    if (genFeature.isBasicGet()) {
+    stringBuffer.append(TEXT_2780);
     if (isJDK50) { //basicGetGenFeature.annotations.insert.javajetinc
     if (genClass.getExtendedGenFeatures().contains(genFeature) || (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
-    stringBuffer.append(TEXT_2780);
-    }
-    }
     stringBuffer.append(TEXT_2781);
-    stringBuffer.append(genFeature.getImportedType(genClass));
+    }
+    }
     stringBuffer.append(TEXT_2782);
-    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2783);
-    if (redefinitionGenFeature.isListType()) {
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2784);
-    } else {
+    if (redefinitionGenFeature.isListType()) {
     stringBuffer.append(TEXT_2785);
-    if (redefinitionGenFeature.isBasicGet()) {
+    } else {
     stringBuffer.append(TEXT_2786);
+    if (redefinitionGenFeature.isBasicGet()) {
+    stringBuffer.append(TEXT_2787);
     stringBuffer.append(redefinitionGenFeature.getAccessorName());
     } else {
     stringBuffer.append(redefinitionGenFeature.getGetAccessor());
     }
-    stringBuffer.append(TEXT_2787);
-    }
     stringBuffer.append(TEXT_2788);
     }
-    if (genFeature.isBasicSet()) {
     stringBuffer.append(TEXT_2789);
+    }
+    if (genFeature.isBasicSet()) {
+    stringBuffer.append(TEXT_2790);
     if (isJDK50) { //basicSetGenFeature.annotations.insert.javajetinc
     if (genClass.getExtendedGenFeatures().contains(genFeature) || (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
-    stringBuffer.append(TEXT_2790);
-    }
-    }
     stringBuffer.append(TEXT_2791);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
+    }
+    }
     stringBuffer.append(TEXT_2792);
-    stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_2793);
-    stringBuffer.append(genFeature.getImportedInternalType(genClass));
-    stringBuffer.append(TEXT_2794);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_2795);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
+    stringBuffer.append(TEXT_2793);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_2794);
+    stringBuffer.append(genFeature.getImportedInternalType(genClass));
+    stringBuffer.append(TEXT_2795);
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2796);
-    if (!redefinitionGenFeature.isSet() || redefinitionGenFeature.isListType()) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));
     stringBuffer.append(TEXT_2797);
+    if (!redefinitionGenFeature.isSet() || redefinitionGenFeature.isListType()) {
+    stringBuffer.append(TEXT_2798);
     } else {
     if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
-    stringBuffer.append(TEXT_2798);
-    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2799);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2800);
-    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2801);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2801);
+    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2802);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2803);
     }
     if (redefinitionGenFeature.isBasicSet()) {
-    stringBuffer.append(TEXT_2803);
-    stringBuffer.append(redefinitionGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2804);
-    if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
-    stringBuffer.append(TEXT_2805);
-    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2806);
-    }
-    stringBuffer.append(TEXT_2807);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_2808);
-    } else {
-    stringBuffer.append(TEXT_2809);
     stringBuffer.append(redefinitionGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_2810);
+    stringBuffer.append(TEXT_2805);
     if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
-    stringBuffer.append(TEXT_2811);
+    stringBuffer.append(TEXT_2806);
     stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2812);
+    stringBuffer.append(TEXT_2807);
     }
-    stringBuffer.append(TEXT_2813);
+    stringBuffer.append(TEXT_2808);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2809);
+    } else {
+    stringBuffer.append(TEXT_2810);
+    stringBuffer.append(redefinitionGenFeature.getAccessorName());
+    stringBuffer.append(TEXT_2811);
+    if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
+    stringBuffer.append(TEXT_2812);
+    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2813);
+    }
     stringBuffer.append(TEXT_2814);
-    }
-    }
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2815);
     }
-    if (genFeature.isSet()) {
+    }
     stringBuffer.append(TEXT_2816);
+    }
+    if (genFeature.isSet()) {
+    stringBuffer.append(TEXT_2817);
     if (isJDK50) { //setGenFeature.annotations.insert.javajetinc
     if (genClass.getExtendedGenFeatures().contains(genFeature) || (UML2GenModelUtil.isDuplicate(genFeature) && (!UML2GenModelUtil.isRedefinition(genFeature) || genClass.getExtendedGenFeatures().contains(UML2GenModelUtil.getRedefinedGenFeatures(genFeature).iterator().next())))) {
-    stringBuffer.append(TEXT_2817);
-    }
-    }
     stringBuffer.append(TEXT_2818);
-    stringBuffer.append(genFeature.getAccessorName());
+    }
+    }
     stringBuffer.append(TEXT_2819);
-    stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2820);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_2821);
-    if (!redefinitionGenFeature.isSet() || redefinitionGenFeature.isListType()) {
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2822);
+    if (!redefinitionGenFeature.isSet() || redefinitionGenFeature.isListType()) {
+    stringBuffer.append(TEXT_2823);
     } else {
     if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
-    stringBuffer.append(TEXT_2823);
-    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2824);
     stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2825);
-    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2826);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_2827);
-    }
-    stringBuffer.append(TEXT_2828);
-    stringBuffer.append(redefinitionGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_2829);
-    if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
-    stringBuffer.append(TEXT_2830);
     stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2831);
-    }
-    stringBuffer.append(TEXT_2832);
+    stringBuffer.append(TEXT_2827);
     stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_2833);
+    stringBuffer.append(TEXT_2828);
     }
+    stringBuffer.append(TEXT_2829);
+    stringBuffer.append(redefinitionGenFeature.getAccessorName());
+    stringBuffer.append(TEXT_2830);
+    if (!genFeature.getType(genClass).equals(redefinitionGenFeature.getType(genClass))) {
+    stringBuffer.append(TEXT_2831);
+    stringBuffer.append(redefinitionGenFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2832);
+    }
+    stringBuffer.append(TEXT_2833);
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2834);
     }
+    stringBuffer.append(TEXT_2835);
+    }
     if (isImplementation && genFeature.isListType()) {
     if (!UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)).isEmpty()) {
-    stringBuffer.append(TEXT_2835);
-    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2836);
-    stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_2837);
-    stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_2838);
     stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2837);
+    stringBuffer.append(genFeature.getFormattedName());
+    stringBuffer.append(TEXT_2838);
+    stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_2839);
-    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2840);
-    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureIDArray(genClass, genFeature, UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)));
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_2841);
+    stringBuffer.append(UML2GenModelUtil.getSubsetFeatureIDArray(genClass, genFeature, UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)));
+    stringBuffer.append(TEXT_2842);
     }
     if (!UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false).isEmpty()) {
-    stringBuffer.append(TEXT_2842);
-    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2843);
-    stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_2844);
-    stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_2845);
     stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2844);
+    stringBuffer.append(genFeature.getFormattedName());
+    stringBuffer.append(TEXT_2845);
+    stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_2846);
-    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2847);
-    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureIDArray(genClass, genFeature));
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_2848);
+    stringBuffer.append(UML2GenModelUtil.getSupersetFeatureIDArray(genClass, genFeature));
+    stringBuffer.append(TEXT_2849);
     }
     }
     if (!genClass.getExtendedGenFeatures().contains(genFeature) && UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) { List<GenFeature> keyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(genFeature);
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     if (isInterface) {
-    stringBuffer.append(TEXT_2849);
+    stringBuffer.append(TEXT_2850);
     if (!keyGenFeatures.isEmpty()) {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_2850);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_2851);
-    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_2852);
-    stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_2853);
-    stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_2854);
-    } else {
-    stringBuffer.append(TEXT_2855);
-    stringBuffer.append(genFeature.getType(genClass));
-    stringBuffer.append(TEXT_2856);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_2857);
+    stringBuffer.append(TEXT_2853);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_2858);
+    stringBuffer.append(TEXT_2854);
     stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(TEXT_2855);
+    } else {
+    stringBuffer.append(TEXT_2856);
+    stringBuffer.append(genFeature.getType(genClass));
+    stringBuffer.append(TEXT_2857);
+    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
+    stringBuffer.append(TEXT_2858);
+    stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_2859);
+    stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(TEXT_2860);
     }
     } else {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_2860);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_2861);
-    stringBuffer.append(genFeature.getFormattedName());
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_2862);
-    stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_2863);
-    } else {
-    stringBuffer.append(TEXT_2864);
-    stringBuffer.append(genFeature.getType(genClass));
-    stringBuffer.append(TEXT_2865);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_2866);
+    stringBuffer.append(TEXT_2863);
     stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(TEXT_2864);
+    } else {
+    stringBuffer.append(TEXT_2865);
+    stringBuffer.append(genFeature.getType(genClass));
+    stringBuffer.append(TEXT_2866);
+    stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_2867);
-    }
-    }
+    stringBuffer.append(genFeature.getFeatureKind());
     stringBuffer.append(TEXT_2868);
-    for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_2869);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_2870);
-    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_2871);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_2872);
     }
-    stringBuffer.append(TEXT_2873);
+    }
+    stringBuffer.append(TEXT_2869);
+    for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
+    stringBuffer.append(TEXT_2870);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_2871);
+    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
+    stringBuffer.append(TEXT_2872);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
+    stringBuffer.append(TEXT_2873);
+    }
     stringBuffer.append(TEXT_2874);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_2875);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_2876);
-    } else {
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2877);
+    } else {
+    stringBuffer.append(TEXT_2878);
     }
     if (!isImplementation) {
-    stringBuffer.append(TEXT_2878);
-    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_2879);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_2880);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2881);
     if (!keyGenFeatures.isEmpty()) {
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
-    stringBuffer.append(TEXT_2881);
+    stringBuffer.append(TEXT_2882);
     }
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_2882);
+    stringBuffer.append(TEXT_2883);
     } else { int index = 0;
     if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
-    stringBuffer.append(TEXT_2883);
-    }
     stringBuffer.append(TEXT_2884);
-    stringBuffer.append(genFeature.getListItemType(genClass));
+    }
     stringBuffer.append(TEXT_2885);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_2886);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2887);
     if (!keyGenFeatures.isEmpty()) {
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
-    stringBuffer.append(TEXT_2887);
+    stringBuffer.append(TEXT_2888);
     }
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
-    stringBuffer.append(TEXT_2888);
-    stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
     stringBuffer.append(TEXT_2889);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_2890);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(TEXT_2890);
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2891);
-    if (genFeature.isListType()) {
+    stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
     stringBuffer.append(TEXT_2892);
-    stringBuffer.append(genFeature.getGetAccessor());
+    if (genFeature.isListType()) {
     stringBuffer.append(TEXT_2893);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2894);
-    } else {
-    stringBuffer.append(TEXT_2895);
-    stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_2896);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2895);
+    } else {
+    stringBuffer.append(TEXT_2896);
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2897);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2898);
     }
     for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {
     if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_2898);
-    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_2899);
-    for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
+    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_2900);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
     stringBuffer.append(TEXT_2901);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_2902);
@@ -10121,198 +10125,198 @@
     stringBuffer.append(TEXT_2903);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_2904);
-    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_2905);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_2906);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_2907);
-    index++;}
-    stringBuffer.append(TEXT_2908);
     stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_2907);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_2908);
+    index++;}
     stringBuffer.append(TEXT_2909);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_2910);
-    stringBuffer.append(keyGenFeature.getCapName());
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2911);
+    stringBuffer.append(keyGenFeature.getCapName());
+    stringBuffer.append(TEXT_2912);
     for (int n = nestedKeyGenFeatures.size(); n > 0; n--) { GenFeature nestedKeyGenFeature = nestedKeyGenFeatures.get(nestedKeyGenFeatures.size() - n);
     if (first) { first = false; } else {
-    stringBuffer.append(TEXT_2912);
-    }
     stringBuffer.append(TEXT_2913);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_2914);
-    stringBuffer.append(nestedKeyGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_2915);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_2916);
     }
+    stringBuffer.append(TEXT_2914);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
+    stringBuffer.append(TEXT_2915);
+    stringBuffer.append(nestedKeyGenFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_2916);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
     stringBuffer.append(TEXT_2917);
-    } else {
+    }
     stringBuffer.append(TEXT_2918);
-    stringBuffer.append(genFeature.getCapName());
+    } else {
     stringBuffer.append(TEXT_2919);
-    stringBuffer.append(keyGenFeature.getCapName());
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2920);
+    stringBuffer.append(keyGenFeature.getCapName());
+    stringBuffer.append(TEXT_2921);
     for (int n = 0; n < nestedKeyGenFeatures.size(); n++) {
     if (first) { first = false; } else {
-    stringBuffer.append(TEXT_2921);
-    }
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    index++;}
     stringBuffer.append(TEXT_2922);
     }
-    } else {
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    index++;}
     stringBuffer.append(TEXT_2923);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_2924);
-    if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_2925);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_2926);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2927);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_2928);
+    }
     } else {
-    stringBuffer.append(TEXT_2929);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_2930);
-    stringBuffer.append(keyGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_2931);
+    stringBuffer.append(TEXT_2924);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_2925);
+    if (keyGenFeature.isListType()) {
+    stringBuffer.append(TEXT_2926);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2927);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2928);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_2929);
+    } else {
+    stringBuffer.append(TEXT_2930);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2931);
+    stringBuffer.append(keyGenFeature.getAccessorName());
     stringBuffer.append(TEXT_2932);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_2933);
     }
     index++;}
     }
-    stringBuffer.append(TEXT_2933);
-    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2934);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2935);
     }
     }
     if (genClass.getChildrenClasses(genFeature).size() == 1 || !genFeature.getTypeGenClass().isAbstract()) { GenClass childGenClass = genClass.getChildrenClasses(genFeature).get(0);
     if (isInterface) {
-    stringBuffer.append(TEXT_2935);
+    stringBuffer.append(TEXT_2936);
     if (!keyGenFeatures.isEmpty()) {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_2936);
-    stringBuffer.append(childGenClass.getQualifiedInterfaceName());
     stringBuffer.append(TEXT_2937);
-    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_2938);
-    stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_2939);
-    stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_2940);
-    } else {
-    stringBuffer.append(TEXT_2941);
     stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_2942);
+    stringBuffer.append(TEXT_2938);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_2943);
+    stringBuffer.append(TEXT_2939);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_2944);
+    stringBuffer.append(TEXT_2940);
     stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(TEXT_2941);
+    } else {
+    stringBuffer.append(TEXT_2942);
+    stringBuffer.append(childGenClass.getQualifiedInterfaceName());
+    stringBuffer.append(TEXT_2943);
+    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
+    stringBuffer.append(TEXT_2944);
+    stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_2945);
+    stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(TEXT_2946);
     }
     } else {
     if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_2946);
-    stringBuffer.append(childGenClass.getQualifiedInterfaceName());
     stringBuffer.append(TEXT_2947);
-    stringBuffer.append(genFeature.getFormattedName());
+    stringBuffer.append(childGenClass.getQualifiedInterfaceName());
     stringBuffer.append(TEXT_2948);
-    stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_2949);
-    } else {
-    stringBuffer.append(TEXT_2950);
-    stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_2951);
     stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_2952);
+    stringBuffer.append(TEXT_2949);
     stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_2953);
-    }
-    }
-    stringBuffer.append(TEXT_2954);
-    for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_2955);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_2956);
-    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_2957);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_2958);
-    }
-    stringBuffer.append(TEXT_2959);
-    stringBuffer.append(childGenClass.getQualifiedInterfaceName());
-    stringBuffer.append(TEXT_2960);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2961);
+    stringBuffer.append(TEXT_2950);
     } else {
+    stringBuffer.append(TEXT_2951);
+    stringBuffer.append(childGenClass.getQualifiedInterfaceName());
+    stringBuffer.append(TEXT_2952);
+    stringBuffer.append(genFeature.getFormattedName());
+    stringBuffer.append(TEXT_2953);
+    stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(TEXT_2954);
+    }
+    }
+    stringBuffer.append(TEXT_2955);
+    for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
+    stringBuffer.append(TEXT_2956);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_2957);
+    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
+    stringBuffer.append(TEXT_2958);
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
+    stringBuffer.append(TEXT_2959);
+    }
+    stringBuffer.append(TEXT_2960);
+    stringBuffer.append(childGenClass.getQualifiedInterfaceName());
+    stringBuffer.append(TEXT_2961);
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_2962);
+    } else {
+    stringBuffer.append(TEXT_2963);
     }
     if (!isImplementation) {
-    stringBuffer.append(TEXT_2963);
-    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_2964);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_2965);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_2966);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
+    stringBuffer.append(TEXT_2967);
     } else { int index = 0;
     if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
-    stringBuffer.append(TEXT_2967);
-    }
     stringBuffer.append(TEXT_2968);
-    stringBuffer.append(genFeature.getListItemType(genClass));
+    }
     stringBuffer.append(TEXT_2969);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_2970);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
-    stringBuffer.append(TEXT_2971);
-    if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_2972);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2971);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
+    stringBuffer.append(TEXT_2972);
+    if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     stringBuffer.append(TEXT_2973);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2974);
     if (!keyGenFeatures.isEmpty()) {
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false));
-    stringBuffer.append(TEXT_2974);
+    stringBuffer.append(TEXT_2975);
     }
     stringBuffer.append(genFeature.getTypeGenClass().getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_2975);
-    } else {
     stringBuffer.append(TEXT_2976);
-    stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_2977);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_2978);
-    stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_2979);
-    stringBuffer.append(genFeature.getTypeGenClass().getQualifiedClassifierAccessor());
-    stringBuffer.append(TEXT_2980);
-    if (genFeature.isListType()) {
-    stringBuffer.append(TEXT_2981);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_2982);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_2983);
     } else {
-    stringBuffer.append(TEXT_2984);
-    stringBuffer.append(genFeature.getAccessorName());
-    stringBuffer.append(TEXT_2985);
+    stringBuffer.append(TEXT_2977);
+    stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(TEXT_2978);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2979);
+    stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(TEXT_2980);
+    stringBuffer.append(genFeature.getTypeGenClass().getQualifiedClassifierAccessor());
+    stringBuffer.append(TEXT_2981);
+    if (genFeature.isListType()) {
+    stringBuffer.append(TEXT_2982);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_2983);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2984);
+    } else {
+    stringBuffer.append(TEXT_2985);
+    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_2986);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_2987);
     }
     for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {
     if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_2987);
-    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_2988);
-    for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
+    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_2989);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
     stringBuffer.append(TEXT_2990);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_2991);
@@ -10320,751 +10324,753 @@
     stringBuffer.append(TEXT_2992);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_2993);
-    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_2994);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_2995);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_2996);
-    index++;}
-    stringBuffer.append(TEXT_2997);
     stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_2996);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_2997);
+    index++;}
     stringBuffer.append(TEXT_2998);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_2999);
-    stringBuffer.append(keyGenFeature.getCapName());
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_3000);
+    stringBuffer.append(keyGenFeature.getCapName());
+    stringBuffer.append(TEXT_3001);
     for (int n = nestedKeyGenFeatures.size(); n > 0; n--) { GenFeature nestedKeyGenFeature = nestedKeyGenFeatures.get(nestedKeyGenFeatures.size() - n);
     if (first) { first = false; } else {
-    stringBuffer.append(TEXT_3001);
-    }
     stringBuffer.append(TEXT_3002);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_3003);
-    stringBuffer.append(nestedKeyGenFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_3004);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
-    stringBuffer.append(TEXT_3005);
     }
+    stringBuffer.append(TEXT_3003);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
+    stringBuffer.append(TEXT_3004);
+    stringBuffer.append(nestedKeyGenFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_3005);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false));
     stringBuffer.append(TEXT_3006);
-    } else {
+    }
     stringBuffer.append(TEXT_3007);
-    stringBuffer.append(genFeature.getCapName());
+    } else {
     stringBuffer.append(TEXT_3008);
-    stringBuffer.append(keyGenFeature.getCapName());
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_3009);
+    stringBuffer.append(keyGenFeature.getCapName());
+    stringBuffer.append(TEXT_3010);
     for (int n = 0; n < nestedKeyGenFeatures.size(); n++) {
     if (first) { first = false; } else {
-    stringBuffer.append(TEXT_3010);
-    }
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    index++;}
     stringBuffer.append(TEXT_3011);
     }
-    } else {
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    index++;}
     stringBuffer.append(TEXT_3012);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_3013);
-    if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_3014);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_3015);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3016);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_3017);
+    }
     } else {
-    stringBuffer.append(TEXT_3018);
-    stringBuffer.append(genFeature.getCapName());
-    stringBuffer.append(TEXT_3019);
-    stringBuffer.append(keyGenFeature.getAccessorName());
-    stringBuffer.append(TEXT_3020);
+    stringBuffer.append(TEXT_3013);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_3014);
+    if (keyGenFeature.isListType()) {
+    stringBuffer.append(TEXT_3015);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_3016);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3017);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_3018);
+    } else {
+    stringBuffer.append(TEXT_3019);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_3020);
+    stringBuffer.append(keyGenFeature.getAccessorName());
     stringBuffer.append(TEXT_3021);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_3022);
     }
     index++;}
     }
-    stringBuffer.append(TEXT_3022);
-    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_3023);
-    }
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_3024);
     }
+    stringBuffer.append(TEXT_3025);
+    }
     }
     }
     if (!genClass.getExtendedGenFeatures().contains(genFeature) && genFeature.isListType() && genFeature.isReferenceType()) { List<GenFeature> keyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(genFeature);
     if (!keyGenFeatures.isEmpty()) {
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature) || UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
     if (isInterface) {
-    stringBuffer.append(TEXT_3025);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_3026);
-    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_3027);
-    stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_3028);
-    stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_3029);
-    for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_3030);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_3031);
-    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_3032);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_3033);
-    }
-    stringBuffer.append(TEXT_3034);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
-    stringBuffer.append(TEXT_3035);
     stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
+    stringBuffer.append(TEXT_3028);
+    stringBuffer.append(genFeature.getFormattedName());
+    stringBuffer.append(TEXT_3029);
+    stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(TEXT_3030);
+    for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
+    stringBuffer.append(TEXT_3031);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_3032);
+    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
+    stringBuffer.append(TEXT_3033);
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
+    stringBuffer.append(TEXT_3034);
+    }
+    stringBuffer.append(TEXT_3035);
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_3036);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
     stringBuffer.append(TEXT_3037);
-    } else {
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_3038);
+    } else {
+    stringBuffer.append(TEXT_3039);
     }
     if (!isImplementation) {
-    stringBuffer.append(TEXT_3039);
-    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_3040);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_3041);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
+    stringBuffer.append(genFeature.getCapName());
     stringBuffer.append(TEXT_3042);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
+    stringBuffer.append(TEXT_3043);
     } else {
     if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
-    stringBuffer.append(TEXT_3043);
-    }
     stringBuffer.append(TEXT_3044);
-    stringBuffer.append(genFeature.getListItemType(genClass));
+    }
     stringBuffer.append(TEXT_3045);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_3046);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
-    stringBuffer.append(TEXT_3047);
     stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_3047);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
     stringBuffer.append(TEXT_3048);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_3049);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false));
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_3049);
-    }
-    if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     stringBuffer.append(TEXT_3050);
     }
-    if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
+    if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     stringBuffer.append(TEXT_3051);
     }
+    if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
     stringBuffer.append(TEXT_3052);
     }
+    stringBuffer.append(TEXT_3053);
+    }
     }
     if (isInterface) {
-    stringBuffer.append(TEXT_3053);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_3054);
-    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
-    stringBuffer.append(TEXT_3055);
-    stringBuffer.append(genFeature.getFormattedName());
-    stringBuffer.append(TEXT_3056);
-    stringBuffer.append(genFeature.getFeatureKind());
-    stringBuffer.append(TEXT_3057);
-    for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
-    stringBuffer.append(TEXT_3058);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_3059);
-    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
-    stringBuffer.append(TEXT_3060);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
+    stringBuffer.append(TEXT_3055);
+    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
+    stringBuffer.append(TEXT_3056);
+    stringBuffer.append(genFeature.getFormattedName());
+    stringBuffer.append(TEXT_3057);
+    stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(TEXT_3058);
+    for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {
+    stringBuffer.append(TEXT_3059);
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_3060);
+    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index));
     stringBuffer.append(TEXT_3061);
-    }
-    if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_3062);
     }
-    if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
+    if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
     stringBuffer.append(TEXT_3063);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
+    }
+    if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     stringBuffer.append(TEXT_3064);
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
+    stringBuffer.append(TEXT_3065);
     }
     if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
-    stringBuffer.append(TEXT_3065);
-    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_3066);
-    }
-    stringBuffer.append(TEXT_3067);
     stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
+    stringBuffer.append(TEXT_3067);
+    }
     stringBuffer.append(TEXT_3068);
-    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
+    stringBuffer.append(genFeature.getQualifiedListItemType(genClass));
     stringBuffer.append(TEXT_3069);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature));
     stringBuffer.append(TEXT_3070);
-    } else {
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_3071);
+    } else {
+    stringBuffer.append(TEXT_3072);
     }
     if (!isImplementation) {
-    stringBuffer.append(TEXT_3072);
-    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_3073);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_3074);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_3075);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_3075);
+    stringBuffer.append(TEXT_3076);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_3076);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
     stringBuffer.append(TEXT_3077);
-    }
-    if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
     stringBuffer.append(TEXT_3078);
     }
+    if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
     stringBuffer.append(TEXT_3079);
+    }
+    stringBuffer.append(TEXT_3080);
     } else { int index = 0;
     if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {
-    stringBuffer.append(TEXT_3080);
-    }
     stringBuffer.append(TEXT_3081);
-    stringBuffer.append(genFeature.getListItemType(genClass));
+    }
     stringBuffer.append(TEXT_3082);
-    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(genFeature.getListItemType(genClass));
     stringBuffer.append(TEXT_3083);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_3084);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature));
     if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {
-    stringBuffer.append(TEXT_3084);
+    stringBuffer.append(TEXT_3085);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_3085);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
     stringBuffer.append(TEXT_3086);
-    }
-    if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));
     stringBuffer.append(TEXT_3087);
     }
+    if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
     stringBuffer.append(TEXT_3088);
-    if (isJDK50) {
+    }
     stringBuffer.append(TEXT_3089);
-    stringBuffer.append(genFeature.getUncapName());
+    if (isJDK50) {
     stringBuffer.append(TEXT_3090);
-    stringBuffer.append(genModel.getImportedName(genFeature.getListItemType(genClass)));
+    stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_3091);
-    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(genModel.getImportedName(genFeature.getListItemType(genClass)));
     stringBuffer.append(TEXT_3092);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_3093);
-    } else {
-    stringBuffer.append(TEXT_3094);
-    stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_3095);
-    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
-    stringBuffer.append(TEXT_3096);
     stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3097);
-    stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_3098);
+    stringBuffer.append(TEXT_3094);
+    } else {
+    stringBuffer.append(TEXT_3095);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_3099);
+    stringBuffer.append(TEXT_3096);
+    stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
+    stringBuffer.append(TEXT_3097);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3098);
     stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(TEXT_3099);
+    stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_3100);
+    stringBuffer.append(genModel.getImportedName(genFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(TEXT_3101);
     }
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_3101);
-    stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_3102);
     stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_3103);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_3104);
     }
     for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {
     if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;
     if (keyGenFeature.isListType()) {
-    stringBuffer.append(TEXT_3104);
-    stringBuffer.append(keyGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_3105);
-    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(keyGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_3106);
-    stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_3107);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3108);
     stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_3107);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_3108);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_3109);
     stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_3110);
+    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_3111);
     for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {
     if (!first) {
-    stringBuffer.append(TEXT_3111);
-    }
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index + n, false));
     stringBuffer.append(TEXT_3112);
+    }
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index + n, false));
     stringBuffer.append(TEXT_3113);
-    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index + n, false));
     stringBuffer.append(TEXT_3114);
+    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_3115);
     if (first) {first = false;
     } else {
-    stringBuffer.append(TEXT_3115);
-    }
-    }
     stringBuffer.append(TEXT_3116);
-    stringBuffer.append(genFeature.getUncapName());
+    }
+    }
     stringBuffer.append(TEXT_3117);
-    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_3118);
-    stringBuffer.append(genModel.getImportedName(keyGenFeature.getQualifiedListItemType(genClass)));
-    stringBuffer.append(TEXT_3119);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_3120);
-    if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {
-    stringBuffer.append(TEXT_3121);
+    stringBuffer.append(TEXT_3119);
     stringBuffer.append(genModel.getImportedName(keyGenFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(TEXT_3120);
+    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_3121);
+    if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {
     stringBuffer.append(TEXT_3122);
+    stringBuffer.append(genModel.getImportedName(keyGenFeature.getQualifiedListItemType(genClass)));
+    stringBuffer.append(TEXT_3123);
     }
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_3123);
+    stringBuffer.append(TEXT_3124);
     for (GenFeature nestedKeyGenFeature : nestedKeyGenFeatures) {
     if (nestedKeyGenFeature.isStringType()) {
-    stringBuffer.append(TEXT_3124);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3125);
-    if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3126);
-    stringBuffer.append(genModel.getImportedName("java.lang.String"));
+    if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {
     stringBuffer.append(TEXT_3127);
+    stringBuffer.append(genModel.getImportedName("java.lang.String"));
+    stringBuffer.append(TEXT_3128);
     }
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_3128);
-    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_3129);
-    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3130);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_3131);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_3132);
+    stringBuffer.append(TEXT_3130);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3133);
-    } else {
-    stringBuffer.append(TEXT_3134);
+    stringBuffer.append(TEXT_3131);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_3132);
+    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_3133);
+    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3134);
+    } else {
     stringBuffer.append(TEXT_3135);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3136);
-    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3137);
-    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
+    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_3138);
-    }
+    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_3139);
-    stringBuffer.append(genFeature.getUncapName());
+    }
     stringBuffer.append(TEXT_3140);
-    index++;}
+    stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_3141);
-    } else {
+    index++;}
     stringBuffer.append(TEXT_3142);
-    stringBuffer.append(keyGenFeature.getImportedType(genClass));
+    } else {
     stringBuffer.append(TEXT_3143);
-    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(keyGenFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_3144);
-    stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_3145);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3146);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_3147);
+    stringBuffer.append(TEXT_3145);
     stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_3146);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3147);
+    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_3148);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_3149);
     for (GenFeature nestedKeyGenFeature : nestedKeyGenFeatures) {
     if (nestedKeyGenFeature.isStringType()) {
-    stringBuffer.append(TEXT_3149);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3150);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3151);
-    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3152);
-    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3153);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_3154);
     stringBuffer.append(keyGenFeature.getUncapName());
-    stringBuffer.append(TEXT_3155);
+    stringBuffer.append(TEXT_3153);
     stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3156);
-    } else {
-    stringBuffer.append(TEXT_3157);
+    stringBuffer.append(TEXT_3154);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_3155);
+    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(TEXT_3156);
+    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3157);
+    } else {
     stringBuffer.append(TEXT_3158);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3159);
-    stringBuffer.append(keyGenFeature.getUncapName());
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3160);
-    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
+    stringBuffer.append(keyGenFeature.getUncapName());
     stringBuffer.append(TEXT_3161);
-    }
+    stringBuffer.append(nestedKeyGenFeature.getGetAccessor());
     stringBuffer.append(TEXT_3162);
-    stringBuffer.append(genFeature.getUncapName());
+    }
     stringBuffer.append(TEXT_3163);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_3164);
     index++;}
     }
     } else {
     if (keyGenFeature.isStringType()) {
-    stringBuffer.append(TEXT_3164);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3165);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3166);
-    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3167);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3168);
-    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
-    stringBuffer.append(TEXT_3169);
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_3170);
+    stringBuffer.append(TEXT_3168);
     stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3171);
-    } else {
-    stringBuffer.append(TEXT_3172);
+    stringBuffer.append(TEXT_3169);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
+    stringBuffer.append(TEXT_3170);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_3171);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3172);
+    } else {
     stringBuffer.append(TEXT_3173);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3174);
-    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false));
     stringBuffer.append(TEXT_3175);
-    stringBuffer.append(keyGenFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3176);
-    }
-    stringBuffer.append(TEXT_3177);
     stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_3176);
+    stringBuffer.append(keyGenFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3177);
+    }
     stringBuffer.append(TEXT_3178);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_3179);
     index++;}
     }
-    stringBuffer.append(TEXT_3179);
-    stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_3180);
-    if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
+    stringBuffer.append(genFeature.getUncapName());
     stringBuffer.append(TEXT_3181);
-    if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
+    if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {
     stringBuffer.append(TEXT_3182);
-    }
+    if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
     stringBuffer.append(TEXT_3183);
-    stringBuffer.append(genFeature.getCapName());
+    }
     stringBuffer.append(TEXT_3184);
+    stringBuffer.append(genFeature.getCapName());
+    stringBuffer.append(TEXT_3185);
     stringBuffer.append(UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false));
     if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {
-    stringBuffer.append(TEXT_3185);
-    }
     stringBuffer.append(TEXT_3186);
-    } else {
-    stringBuffer.append(TEXT_3187);
     }
+    stringBuffer.append(TEXT_3187);
+    } else {
     stringBuffer.append(TEXT_3188);
     }
+    stringBuffer.append(TEXT_3189);
+    }
     }
     }
     if (isImplementation && ((UML2GenModelUtil.isRedefinition(genFeature) && !genFeature.isIsSet()) || UML2GenModelUtil.isRedefined(genClass, genFeature))) {
-    stringBuffer.append(TEXT_3189);
-    stringBuffer.append(genFeature.getAccessorName());
     stringBuffer.append(TEXT_3190);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_3191);
     if (!genFeature.isUnsettable()) {
     if (UML2GenModelUtil.isRedefined(genClass, genFeature)) {
-    stringBuffer.append(TEXT_3191);
-    } else if (genModel.isReflectiveDelegation()) {
     stringBuffer.append(TEXT_3192);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    } else if (genModel.isReflectiveDelegation()) {
     stringBuffer.append(TEXT_3193);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_3194);
     } else if (genFeature.isListType()) {
     if (genFeature.isWrappedFeatureMapType()) {
     if (genFeature.isVolatile()) {
-    stringBuffer.append(TEXT_3194);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_3195);
-    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_3196);
-    } else {
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_3197);
-    stringBuffer.append(genFeature.getSafeName());
+    } else {
     stringBuffer.append(TEXT_3198);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3199);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3200);
     }
     } else {
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_3200);
-    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3201);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3202);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3203);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_3203);
-    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_3204);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_3205);
     stringBuffer.append(genFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_3206);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(TEXT_3207);
+    stringBuffer.append(TEXT_3205);
     stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3206);
+    stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_3207);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3208);
     stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3209);
-    } else {
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3210);
-    stringBuffer.append(genFeature.getGetAccessor());
+    } else {
     stringBuffer.append(TEXT_3211);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3212);
     }
     }
     }
     } else if (genFeature.isResolveProxies()) {
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_3212);
-    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3213);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3214);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_3214);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3215);
-    } else {
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3216);
-    stringBuffer.append(genFeature.getAccessorName());
+    } else {
     stringBuffer.append(TEXT_3217);
+    stringBuffer.append(genFeature.getAccessorName());
+    stringBuffer.append(TEXT_3218);
     }
     }
     } else if (genFeature.isReferenceType()) {
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_3218);
-    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3219);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3220);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_3220);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3221);
-    } else {
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3222);
-    stringBuffer.append(genFeature.getGetAccessor());
+    } else {
     stringBuffer.append(TEXT_3223);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3224);
     }
     }
     } else if (genFeature.isPrimitiveType() || genFeature.isEnumType()) {
     if (genClass.isField(genFeature)) {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_3224);
-    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_3225);
-    stringBuffer.append(genFeature.getUpperName());
-    stringBuffer.append(TEXT_3226);
-    stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_3227);
-    } else {
-    stringBuffer.append(TEXT_3228);
     stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_3229);
+    stringBuffer.append(TEXT_3226);
     stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_3227);
+    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_3228);
+    } else {
+    stringBuffer.append(TEXT_3229);
+    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_3230);
     stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_3231);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_3232);
     }
     } else {
-    stringBuffer.append(TEXT_3232);
-    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3233);
-    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3234);
+    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_3235);
     }
     } else {
     if (genFeature.isEnumType() && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_3235);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3236);
-    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3237);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_3238);
-    } else {
-    stringBuffer.append(TEXT_3239);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3240);
     stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_3239);
+    } else {
+    stringBuffer.append(TEXT_3240);
+    stringBuffer.append(genFeature.getGetAccessor());
     stringBuffer.append(TEXT_3241);
+    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(TEXT_3242);
     }
     }
     } else {//datatype
     if (genClass.isField(genFeature)) {
-    stringBuffer.append(TEXT_3242);
-    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_3243);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_3244);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_3245);
+    stringBuffer.append(TEXT_3244);
     stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3245);
+    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_3246);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3247);
     } else {
     if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
-    stringBuffer.append(TEXT_3247);
-    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_3248);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_3249);
     stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_3249);
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3250);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_3251);
-    stringBuffer.append(genFeature.getEDefault());
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3252);
     stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_3253);
-    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_3254);
-    stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_3255);
     stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3255);
+    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_3256);
-    } else {
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3257);
-    stringBuffer.append(genFeature.getEDefault());
+    } else {
     stringBuffer.append(TEXT_3258);
-    stringBuffer.append(genFeature.getGetAccessor());
-    stringBuffer.append(TEXT_3259);
     stringBuffer.append(genFeature.getEDefault());
-    stringBuffer.append(TEXT_3260);
+    stringBuffer.append(TEXT_3259);
     stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3260);
+    stringBuffer.append(genFeature.getEDefault());
     stringBuffer.append(TEXT_3261);
+    stringBuffer.append(genFeature.getGetAccessor());
+    stringBuffer.append(TEXT_3262);
     }
     }
     }
     } else {
     if (genModel.isReflectiveDelegation()) {
-    stringBuffer.append(TEXT_3262);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
     stringBuffer.append(TEXT_3263);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_3264);
     } else if (!genFeature.isVolatile()) {
     if (genFeature.isListType()) {
     if (genModel.isVirtualDelegation()) {
-    stringBuffer.append(TEXT_3264);
-    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_3265);
-    stringBuffer.append(genFeature.getSafeName());
-    stringBuffer.append(TEXT_3266);
     stringBuffer.append(genFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_3266);
+    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_3267);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(genFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_3268);
-    }
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3269);
-    stringBuffer.append(genFeature.getSafeName());
+    }
     stringBuffer.append(TEXT_3270);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
-    stringBuffer.append(TEXT_3271);
-    stringBuffer.append(singleWildcard);
-    stringBuffer.append(TEXT_3272);
     stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3271);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+    stringBuffer.append(TEXT_3272);
+    stringBuffer.append(singleWildcard);
     stringBuffer.append(TEXT_3273);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_3274);
     } else {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_3274);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3275);
-    } else if (genClass.isESetFlag(genFeature)) {
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(TEXT_3276);
-    stringBuffer.append(genClass.getESetFlagsField(genFeature));
+    } else if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_3277);
-    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_3278);
-    } else {
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_3279);
-    stringBuffer.append(genFeature.getUncapName());
+    } else {
     stringBuffer.append(TEXT_3280);
+    stringBuffer.append(genFeature.getUncapName());
+    stringBuffer.append(TEXT_3281);
     }
     }
     } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
     if (delegateFeature.isWrappedFeatureMapType()) {
-    stringBuffer.append(TEXT_3281);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_3282);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
     stringBuffer.append(TEXT_3283);
-    stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_3284);
-    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
-    stringBuffer.append(TEXT_3285);
-    } else {
-    stringBuffer.append(TEXT_3286);
     stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
-    stringBuffer.append(TEXT_3287);
+    stringBuffer.append(TEXT_3284);
     stringBuffer.append(delegateFeature.getAccessorName());
-    stringBuffer.append(TEXT_3288);
+    stringBuffer.append(TEXT_3285);
     stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_3286);
+    } else {
+    stringBuffer.append(TEXT_3287);
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+    stringBuffer.append(TEXT_3288);
+    stringBuffer.append(delegateFeature.getAccessorName());
     stringBuffer.append(TEXT_3289);
+    stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+    stringBuffer.append(TEXT_3290);
     }
     } else {
     { GenOperation genOperation = UML2GenModelUtil.getImplementedCollidingIsSetGenOperation(genClass, genFeature); 
     if (genOperation != null && UML2GenModelUtil.hasOperationsClass(genClass, genOperation)) {
-    stringBuffer.append(TEXT_3290);
-    stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_3291);
-    stringBuffer.append(genOperation.getName());
+    stringBuffer.append(UML2GenModelUtil.getImportedOperationsClassName(genClass, genOperation));
     stringBuffer.append(TEXT_3292);
-    } else {
+    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_3293);
-    stringBuffer.append(genFeature.getFormattedName());
+    } else {
     stringBuffer.append(TEXT_3294);
-    stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(genFeature.getFormattedName());
     stringBuffer.append(TEXT_3295);
+    stringBuffer.append(genFeature.getFeatureKind());
+    stringBuffer.append(TEXT_3296);
     }
     }
     //isSetGenFeature.todo.override.javajetinc
     }
     }
-    stringBuffer.append(TEXT_3296);
+    stringBuffer.append(TEXT_3297);
     }
     }
     for (GenOperation genOperation : UML2GenModelUtil.getImplementedRedefinedGenOperations(genClass)) { GenOperation redefinitionGenOperation = UML2GenModelUtil.getRedefinitionGenOperations(genClass, genOperation).iterator().next();
-    stringBuffer.append(TEXT_3297);
+    stringBuffer.append(TEXT_3298);
     if (isJDK50) { //genOperation.annotations.insert.javajetinc
     if (genClass.getExtendedGenOperations().contains(genOperation) || (UML2GenModelUtil.isDuplicate(genOperation) && (!UML2GenModelUtil.isRedefinition(genOperation) || genClass.getExtendedGenOperations().contains(UML2GenModelUtil.getRedefinedGenOperations(genOperation).iterator().next())))) {
-    stringBuffer.append(TEXT_3298);
-    }
-    }
     stringBuffer.append(TEXT_3299);
+    }
+    }
+    stringBuffer.append(TEXT_3300);
     stringBuffer.append(genOperation.getTypeParameters(genClass));
     stringBuffer.append(genOperation.getImportedType(genClass));
-    stringBuffer.append(TEXT_3300);
-    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_3301);
-    stringBuffer.append(genOperation.getParameters(genClass));
+    stringBuffer.append(genOperation.getName());
     stringBuffer.append(TEXT_3302);
-    stringBuffer.append(genOperation.getThrows(genClass));
+    stringBuffer.append(genOperation.getParameters(genClass));
     stringBuffer.append(TEXT_3303);
-    if (genOperation.isVoid()) {
+    stringBuffer.append(genOperation.getThrows(genClass));
     stringBuffer.append(TEXT_3304);
-    stringBuffer.append(redefinitionGenOperation.getName());
+    if (genOperation.isVoid()) {
     stringBuffer.append(TEXT_3305);
-    stringBuffer.append(genOperation.getParameterNames(", "));
+    stringBuffer.append(redefinitionGenOperation.getName());
     stringBuffer.append(TEXT_3306);
-    } else {
-    if (redefinitionGenOperation.isVoid()) {
+    stringBuffer.append(genOperation.getParameterNames(", "));
     stringBuffer.append(TEXT_3307);
     } else {
+    if (redefinitionGenOperation.isVoid()) {
     stringBuffer.append(TEXT_3308);
-    stringBuffer.append(redefinitionGenOperation.getName());
+    } else {
     stringBuffer.append(TEXT_3309);
-    stringBuffer.append(genOperation.getParameterNames(", "));
+    stringBuffer.append(redefinitionGenOperation.getName());
     stringBuffer.append(TEXT_3310);
-    }
-    }
+    stringBuffer.append(genOperation.getParameterNames(", "));
     stringBuffer.append(TEXT_3311);
     }
     }
     stringBuffer.append(TEXT_3312);
+    }
+    }
+    stringBuffer.append(TEXT_3313);
     stringBuffer.append(isInterface ? " " + genClass.getInterfaceName() : genClass.getClassName());
     // TODO fix the space above
     genModel.emitSortedImports();
-    stringBuffer.append(TEXT_3313);
+    stringBuffer.append(TEXT_3314);
     return stringBuffer.toString();
   }
 }
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/genOperation.override.javajetinc b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/genOperation.override.javajetinc
index 5eab5dd..5b6e00a 100644
--- a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/genOperation.override.javajetinc
+++ b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/genOperation.override.javajetinc
@@ -103,6 +103,9 @@
 	<%=genOperation.getTypeParameters(genClass)%><%=genOperation.getImportedType(genClass)%> <%=genOperation.getName()%>(<%=genOperation.getParameters(genClass)%>)<%=genOperation.getThrows(genClass)%>;
 
 <%} else {%>
+  <%if (genModel.useGenerics() && !genOperation.hasBody() && !genOperation.isInvariant() && genOperation.hasInvocationDelegate() && genOperation.isUncheckedCast(genClass)) {%>
+	@SuppressWarnings("unchecked")
+  <%}%>
 	public <%=genOperation.getTypeParameters(genClass)%><%=genOperation.getImportedType(genClass)%> <%=genOperation.getName()%>(<%=genOperation.getParameters(genClass)%>)<%=genOperation.getThrows(genClass)%>
 	{
   <%if (genOperation.hasBody()) {%>