} }
  public String generate(Object argument)  {    StringBuffer stringBuffer = new StringBuffer();    /** * <copyright> * * Copyright (c) 2002-2004 IBM Corporation and others. * All rights reserved.   This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: *   IBM - Initial API and implementation * * </copyright> */    GenClass genClass = (GenClass)argument; GenPackage genPackage = genClass.getGenPackage(); GenModel genModel=genPackage.getGenModel();    stringBuffer.append(TEXT_1);    stringBuffer.append(TEXT_2);    stringBuffer.append("$");    stringBuffer.append(TEXT_3);    stringBuffer.append("$");    stringBuffer.append(TEXT_4);    stringBuffer.append(genPackage.getClassPackageName());    stringBuffer.append(TEXT_5);    genModel.markImportLocation(stringBuffer);    stringBuffer.append(TEXT_6);    stringBuffer.append(genClass.getFormattedName());    stringBuffer.append(TEXT_7);    if (!genClass.getImplementedGenFeatures().isEmpty()) {    stringBuffer.append(TEXT_8);    for (Iterator i=genClass.getImplementedGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    stringBuffer.append(TEXT_9);    stringBuffer.append(genClass.getQualifiedClassName());    stringBuffer.append(TEXT_10);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_11);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_12);    }    stringBuffer.append(TEXT_13);    }    stringBuffer.append(TEXT_14);    if (genClass.isAbstract()) {    stringBuffer.append(TEXT_15);    }    stringBuffer.append(TEXT_16);    stringBuffer.append(genClass.getClassName());    stringBuffer.append(genClass.getClassExtends());    stringBuffer.append(genClass.getClassImplements());    stringBuffer.append(TEXT_17);    if (genModel.getCopyrightText() != null) {    stringBuffer.append(TEXT_18);    stringBuffer.append(genModel.getImportedName("java.lang.String"));    stringBuffer.append(TEXT_19);    stringBuffer.append(genModel.getCopyrightText());    stringBuffer.append(TEXT_20);    stringBuffer.append(genModel.getNonNLS());    stringBuffer.append(TEXT_21);    }    if (genModel.getDriverNumber() != null) {    stringBuffer.append(TEXT_22);    stringBuffer.append(genModel.getImportedName("java.lang.String"));    stringBuffer.append(TEXT_23);    stringBuffer.append(genModel.getDriverNumber());    stringBuffer.append(TEXT_24);    stringBuffer.append(genModel.getNonNLS());    stringBuffer.append(TEXT_25);    }    if (!genModel.isReflectiveDelegation()) {    for (Iterator i=genClass.getImplementedGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    if (!genFeature.isContainer()) {    if (genFeature.isListType() || genFeature.isReferenceType()) {    if (!genFeature.isVolatile()) {    stringBuffer.append(TEXT_26);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_27);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_28);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_29);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_30);    stringBuffer.append(genFeature.getImportedInternalType());    stringBuffer.append(TEXT_31);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_32);    }    } else {    if (!genFeature.isVolatile() || !genModel.isReflectiveDelegation() && (!genFeature.hasDelegateFeature() || !genFeature.isUnsettable())) {    stringBuffer.append(TEXT_33);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_34);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_35);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_36);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_37);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_38);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_39);    stringBuffer.append(genFeature.getStaticDefaultValue());    stringBuffer.append(TEXT_40);    stringBuffer.append(genModel.getNonNLS(genFeature.getStaticDefaultValue()));    stringBuffer.append(TEXT_41);    }    if (!genFeature.isVolatile()) {    stringBuffer.append(TEXT_42);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_43);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_44);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_45);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_46);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_47);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_48);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_49);    if (!genFeature.isListType() && genFeature.isUnsettable() && genFeature.isChangeable()) {    stringBuffer.append(TEXT_50);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_51);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_52);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_53);    }    }    }    }    }    }    stringBuffer.append(TEXT_54);    stringBuffer.append(genClass.getClassName());    stringBuffer.append(TEXT_55);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EClass"));    stringBuffer.append(TEXT_56);    stringBuffer.append(genPackage.getImportedPackageInterfaceName());    stringBuffer.append(TEXT_57);    stringBuffer.append(genClass.getClassifierAccessorName());    stringBuffer.append(TEXT_58);    for (Iterator i=genClass.getImplementedGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    stringBuffer.append(TEXT_59);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_60);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_61);    if (genModel.isReflectiveDelegation()) {    stringBuffer.append(TEXT_62);    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_63);    }    stringBuffer.append(TEXT_64);    stringBuffer.append(genFeature.getObjectType());    stringBuffer.append(TEXT_65);    stringBuffer.append(genFeature.getGenPackage().getImportedPackageInterfaceName());    stringBuffer.append(TEXT_66);    stringBuffer.append(genFeature.getFeatureAccessorName());    stringBuffer.append(TEXT_67);    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_68);    stringBuffer.append(genFeature.getPrimitiveValueFunction());    stringBuffer.append(TEXT_69);    }    stringBuffer.append(TEXT_70);    } else if (!genFeature.isVolatile()) {    if (genFeature.isListType()) { String unsettable = genFeature.isUnsettable() ? ".Unsettable" : "";     stringBuffer.append(TEXT_71);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_72);    if (genFeature.isMapType()) { GenClass mapGenClass = genFeature.getMapGenClass(); GenPackage mapGenPackage = mapGenClass.getGenPackage();     stringBuffer.append(TEXT_73);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_74);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreEMap"));    stringBuffer.append(TEXT_75);    stringBuffer.append(mapGenPackage.getImportedPackageInterfaceName());    stringBuffer.append(TEXT_76);    stringBuffer.append(mapGenClass.getName());    stringBuffer.append(TEXT_77);    stringBuffer.append(genFeature.getMapItemType());    stringBuffer.append(TEXT_78);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_79);    } else if (genFeature.isContains()) {    if (genFeature.isBidirectional()) { GenFeature reverseFeature = genFeature.getReverse();    stringBuffer.append(TEXT_80);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_81);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_82);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_83);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_84);    stringBuffer.append(reverseFeature.getGenClass().getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_85);    } else {    stringBuffer.append(TEXT_86);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_87);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectContainmentEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_88);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_89);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_90);    }    } else if (genFeature.isReferenceType()) {    if (genFeature.isBidirectional()) { GenFeature reverseFeature = genFeature.getReverse();    if (reverseFeature.isListType()) {    if (genFeature.isResolveProxies()) {    stringBuffer.append(TEXT_91);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_92);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_93);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_94);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_95);    stringBuffer.append(reverseFeature.getGenClass().getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_96);    } else {    stringBuffer.append(TEXT_97);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_98);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectWithInverseEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_99);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_100);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_101);    stringBuffer.append(reverseFeature.getGenClass().getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_102);    }    } else {    if (genFeature.isResolveProxies()) {    stringBuffer.append(TEXT_103);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_104);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_105);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_106);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_107);    stringBuffer.append(reverseFeature.getGenClass().getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_108);    } else {    stringBuffer.append(TEXT_109);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_110);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectWithInverseEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_111);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_112);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_113);    stringBuffer.append(reverseFeature.getGenClass().getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_114);    }    }    } else {    if (genFeature.isResolveProxies()) {    stringBuffer.append(TEXT_115);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_116);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectResolvingEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_117);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_118);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_119);    } else {    stringBuffer.append(TEXT_120);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_121);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_122);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_123);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_124);    }    }    } else if (genFeature.isFeatureMapType()) {    if (genFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_125);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_126);    stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperClass());    stringBuffer.append(TEXT_127);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.BasicFeatureMap"));    stringBuffer.append(TEXT_128);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_129);    } else {    stringBuffer.append(TEXT_130);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_131);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.BasicFeatureMap"));    stringBuffer.append(TEXT_132);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_133);    }    } else {//datatype    if (genFeature.isUnique()) {    stringBuffer.append(TEXT_134);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_135);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EDataTypeUniqueEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_136);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_137);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_138);    } else {    stringBuffer.append(TEXT_139);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_140);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EDataTypeEList"));    stringBuffer.append(unsettable);    stringBuffer.append(TEXT_141);    stringBuffer.append(genFeature.getListItemType());    stringBuffer.append(TEXT_142);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_143);    }    }    stringBuffer.append(TEXT_144);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes() ? ".map()" : "");    stringBuffer.append(TEXT_145);    } else if (genFeature.isContainer()) {    stringBuffer.append(TEXT_146);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_147);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_148);    } else {    if (genFeature.isResolveProxies()) {    stringBuffer.append(TEXT_149);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_150);    stringBuffer.append(genFeature.getSafeNameAsEObject());    stringBuffer.append(TEXT_151);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_152);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_153);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_154);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_155);    stringBuffer.append(genFeature.getImportedInternalType());    stringBuffer.append(TEXT_156);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_157);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_158);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_159);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_160);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_161);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_162);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_163);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_164);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_165);    }    stringBuffer.append(TEXT_166);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_167);    }    } else {//volatile    if (genFeature.isResolveProxies() && !genFeature.isListType()) {    stringBuffer.append(TEXT_168);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_169);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_170);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_171);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_172);    stringBuffer.append(genFeature.getImportedInternalType());    stringBuffer.append(TEXT_173);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_174);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_175);    } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();    if (genFeature.isFeatureMapType()) {    if (delegateFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_176);    stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperClass());    stringBuffer.append(TEXT_177);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap$Internal"));    stringBuffer.append(TEXT_178);    stringBuffer.append(delegateFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_179);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_180);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_181);    } else {    stringBuffer.append(TEXT_182);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_183);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_184);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_185);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_186);    }    } else if (genFeature.isListType()) {    if (delegateFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_187);    stringBuffer.append(delegateFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_188);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_189);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_190);    } else {    stringBuffer.append(TEXT_191);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_192);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_193);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_194);    }    } else {    if (delegateFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_195);    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_196);    }    stringBuffer.append(TEXT_197);    stringBuffer.append(genFeature.getObjectType());    stringBuffer.append(TEXT_198);    stringBuffer.append(delegateFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_199);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_200);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_201);    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_202);    stringBuffer.append(genFeature.getPrimitiveValueFunction());    stringBuffer.append(TEXT_203);    }    stringBuffer.append(TEXT_204);    } else {    stringBuffer.append(TEXT_205);    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_206);    }    stringBuffer.append(TEXT_207);    stringBuffer.append(genFeature.getObjectType());    stringBuffer.append(TEXT_208);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_209);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_210);    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_211);    stringBuffer.append(genFeature.getPrimitiveValueFunction());    stringBuffer.append(TEXT_212);    }    stringBuffer.append(TEXT_213);    }    }    } else {    stringBuffer.append(TEXT_214);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_215);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_216);    }    }    stringBuffer.append(TEXT_217);    if (!genModel.isReflectiveDelegation() && genFeature.isResolveProxies() && !genFeature.isListType()) {    stringBuffer.append(TEXT_218);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_219);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_220);    if (!genFeature.isVolatile()) {    stringBuffer.append(TEXT_221);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_222);    } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();    if (delegateFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_223);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_224);    stringBuffer.append(delegateFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_225);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_226);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_227);    } else {    stringBuffer.append(TEXT_228);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_229);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_230);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_231);    }    } else {    stringBuffer.append(TEXT_232);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_233);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_234);    }    stringBuffer.append(TEXT_235);    }    if (!genFeature.isListType()) {    if (!genModel.isReflectiveDelegation() && (genFeature.isBidirectional() && !genFeature.isContainer() && !genFeature.isVolatile() || genFeature.isContains())) {    stringBuffer.append(TEXT_236);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_237);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_238);    stringBuffer.append(genFeature.getImportedInternalType());    stringBuffer.append(TEXT_239);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_240);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_241);    if (!genFeature.isVolatile()) {    stringBuffer.append(TEXT_242);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_243);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_244);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_245);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_246);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_247);    if (genFeature.isUnsettable()) {    stringBuffer.append(TEXT_248);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_249);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_250);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_251);    }    stringBuffer.append(TEXT_252);    if (genFeature.isUnsettable()) {    stringBuffer.append(TEXT_253);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_254);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_255);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_256);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_257);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_258);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_259);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_260);    } else {    stringBuffer.append(TEXT_261);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_262);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_263);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_264);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_265);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_266);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_267);    }    stringBuffer.append(TEXT_268);    } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();    if (delegateFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_269);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_270);    stringBuffer.append(delegateFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_271);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_272);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_273);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_274);    } else {    stringBuffer.append(TEXT_275);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_276);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_277);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_278);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_279);    }    } else {    stringBuffer.append(TEXT_280);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_281);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_282);    }    stringBuffer.append(TEXT_283);    }    if (genFeature.isChangeable()) {    stringBuffer.append(TEXT_284);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_285);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_286);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_287);    if (genModel.isReflectiveDelegation()) {    stringBuffer.append(TEXT_288);    stringBuffer.append(genFeature.getGenPackage().getImportedPackageInterfaceName());    stringBuffer.append(TEXT_289);    stringBuffer.append(genFeature.getFeatureAccessorName());    stringBuffer.append(TEXT_290);    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_291);    stringBuffer.append(genFeature.getObjectType());    stringBuffer.append(TEXT_292);    }    stringBuffer.append(TEXT_293);    stringBuffer.append(genFeature.getCapName());    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_294);    }    stringBuffer.append(TEXT_295);    } else if (!genFeature.isVolatile()) {    if (genFeature.isContainer()) { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();    stringBuffer.append(TEXT_296);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_297);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_298);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_299);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));    stringBuffer.append(TEXT_300);    stringBuffer.append(genFeature.getEObjectCast());    stringBuffer.append(TEXT_301);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_302);    stringBuffer.append(genModel.getImportedName("java.lang.IllegalArgumentException"));    stringBuffer.append(TEXT_303);    stringBuffer.append(genModel.getNonNLS());    stringBuffer.append(TEXT_304);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_305);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_306);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_307);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_308);    stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_309);    stringBuffer.append(targetClass.getImportedInterfaceName());    stringBuffer.append(TEXT_310);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_311);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_312);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_313);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_314);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_315);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_316);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_317);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_318);    } else if (genFeature.isBidirectional() || genFeature.isContains()) {    stringBuffer.append(TEXT_319);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_320);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_321);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_322);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_323);    if (!genFeature.isBidirectional()) {    stringBuffer.append(TEXT_324);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_325);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_326);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_327);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_328);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_329);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_330);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_331);    } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();    stringBuffer.append(TEXT_332);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_333);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_334);    stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_335);    stringBuffer.append(targetClass.getImportedInterfaceName());    stringBuffer.append(TEXT_336);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_337);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_338);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_339);    stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_340);    stringBuffer.append(targetClass.getImportedInterfaceName());    stringBuffer.append(TEXT_341);    }    stringBuffer.append(TEXT_342);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_343);    stringBuffer.append(genFeature.getInternalTypeCast());    stringBuffer.append(TEXT_344);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_345);    if (genFeature.isUnsettable()) {    stringBuffer.append(TEXT_346);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_347);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_348);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_349);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_350);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_351);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_352);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_353);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_354);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_355);    } else {    stringBuffer.append(TEXT_356);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_357);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_358);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_359);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_360);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_361);    }    } else {    stringBuffer.append(TEXT_362);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_363);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_364);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_365);    if (genFeature.isEnumType()) {    stringBuffer.append(TEXT_366);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_367);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_368);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_369);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_370);    } else {    stringBuffer.append(TEXT_371);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_372);    stringBuffer.append(genFeature.getInternalTypeCast());    stringBuffer.append(TEXT_373);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_374);    }    if (genFeature.isUnsettable()) {    stringBuffer.append(TEXT_375);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_376);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_377);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_378);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_379);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_380);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_381);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_382);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_383);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_384);    } else {    stringBuffer.append(TEXT_385);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_386);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_387);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_388);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_389);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_390);    }    }    } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();    if (delegateFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_391);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_392);    stringBuffer.append(delegateFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_393);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_394);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_395);    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_396);    stringBuffer.append(genFeature.getObjectType());    stringBuffer.append(TEXT_397);    }    stringBuffer.append(TEXT_398);    stringBuffer.append(genFeature.getCapName());    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_399);    }    stringBuffer.append(TEXT_400);    } else {    stringBuffer.append(TEXT_401);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_402);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_403);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_404);    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_405);    stringBuffer.append(genFeature.getObjectType());    stringBuffer.append(TEXT_406);    }    stringBuffer.append(TEXT_407);    stringBuffer.append(genFeature.getCapName());    if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_408);    }    stringBuffer.append(TEXT_409);    }    } else {    stringBuffer.append(TEXT_410);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_411);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_412);    }    stringBuffer.append(TEXT_413);    }//if (genFeature.isChangeable())    }//if (!genFeature.isListType())    if (genFeature.isUnsettable()) {    if (genFeature.isChangeable()) {    if (!genFeature.isListType() && genFeature.isReferenceType() && (genFeature.isBidirectional() || genFeature.isContains())) {    stringBuffer.append(TEXT_414);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_415);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_416);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_417);    if (!genFeature.isVolatile()) {    stringBuffer.append(TEXT_418);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_419);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_420);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_421);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_422);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_423);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_424);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_425);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_426);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_427);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_428);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_429);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_430);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_431);    } else {    stringBuffer.append(TEXT_432);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_433);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_434);    }    stringBuffer.append(TEXT_435);    }    stringBuffer.append(TEXT_436);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_437);    if (genModel.isReflectiveDelegation()) {    stringBuffer.append(TEXT_438);    stringBuffer.append(genFeature.getGenPackage().getImportedPackageInterfaceName());    stringBuffer.append(TEXT_439);    stringBuffer.append(genFeature.getFeatureAccessorName());    stringBuffer.append(TEXT_440);    } else if (!genFeature.isVolatile()) {    if (genFeature.isListType()) {    stringBuffer.append(TEXT_441);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));    stringBuffer.append(TEXT_442);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_443);    } else if (genFeature.isBidirectional() || genFeature.isContains()) {    stringBuffer.append(TEXT_444);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_445);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_446);    if (!genFeature.isBidirectional()) {    stringBuffer.append(TEXT_447);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_448);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_449);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_450);    } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();    stringBuffer.append(TEXT_451);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_452);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_453);    stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_454);    stringBuffer.append(targetClass.getImportedInterfaceName());    stringBuffer.append(TEXT_455);    }    stringBuffer.append(TEXT_456);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_457);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_458);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_459);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_460);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_461);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_462);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_463);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_464);    } else {    stringBuffer.append(TEXT_465);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_466);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_467);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_468);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_469);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_470);    if (genFeature.isReferenceType()) {    stringBuffer.append(TEXT_471);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_472);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_473);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_474);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_475);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_476);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_477);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_478);    } else {    stringBuffer.append(TEXT_479);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_480);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_481);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_482);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));    stringBuffer.append(TEXT_483);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));    stringBuffer.append(TEXT_484);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_485);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_486);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_487);    stringBuffer.append(genFeature.getCapName());    stringBuffer.append(TEXT_488);    }    }    } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();    if (delegateFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_489);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_490);    stringBuffer.append(delegateFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_491);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_492);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_493);    } else {    stringBuffer.append(TEXT_494);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_495);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_496);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_497);    }    } else {    stringBuffer.append(TEXT_498);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_499);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_500);    }    stringBuffer.append(TEXT_501);    }//if (genFeature.isChangeable())    stringBuffer.append(TEXT_502);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_503);    if (genModel.isReflectiveDelegation()) {    stringBuffer.append(TEXT_504);    stringBuffer.append(genFeature.getGenPackage().getImportedPackageInterfaceName());    stringBuffer.append(TEXT_505);    stringBuffer.append(genFeature.getFeatureAccessorName());    stringBuffer.append(TEXT_506);    } else if (!genFeature.isVolatile()) {    if (genFeature.isListType()) {    stringBuffer.append(TEXT_507);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_508);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));    stringBuffer.append(TEXT_509);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_510);    } else {    stringBuffer.append(TEXT_511);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_512);    }    } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();    if (delegateFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_513);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_514);    stringBuffer.append(delegateFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_515);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_516);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_517);    } else {    stringBuffer.append(TEXT_518);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));    stringBuffer.append(TEXT_519);    stringBuffer.append(delegateFeature.getAccessorName());    stringBuffer.append(TEXT_520);    stringBuffer.append(genFeature.getQualifiedFeatureAccessorName());    stringBuffer.append(TEXT_521);    }    } else {    stringBuffer.append(TEXT_522);    stringBuffer.append(genFeature.getFormattedName());    stringBuffer.append(TEXT_523);    stringBuffer.append(genFeature.getFeatureKind());    stringBuffer.append(TEXT_524);    }    stringBuffer.append(TEXT_525);    }    }//for    for (Iterator i=genClass.getImplementedGenOperations().iterator(); i.hasNext();) { GenOperation genOperation = (GenOperation)i.next();    stringBuffer.append(TEXT_526);    stringBuffer.append(genOperation.getImportedReturnType());    stringBuffer.append(TEXT_527);    stringBuffer.append(genOperation.getName());    stringBuffer.append(TEXT_528);    stringBuffer.append(genOperation.getParameters());    stringBuffer.append(TEXT_529);    stringBuffer.append(genOperation.getThrows());    stringBuffer.append(TEXT_530);    if (genOperation.hasBody()) {    stringBuffer.append(TEXT_531);    stringBuffer.append(genOperation.getBody(genModel.getIndentation(stringBuffer)));    } else if (genOperation.isInvariant()) {    stringBuffer.append(TEXT_532);    } else {    stringBuffer.append(TEXT_533);    }    stringBuffer.append(TEXT_534);    }//for    if (!genModel.isReflectiveDelegation() && !genClass.getEInverseAddGenFeatures().isEmpty()) {    stringBuffer.append(TEXT_535);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_536);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_537);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_538);    for (Iterator i=genClass.getEInverseAddGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    stringBuffer.append(TEXT_539);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_540);    if (genFeature.isListType()) {    if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {    stringBuffer.append(TEXT_541);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));    stringBuffer.append(TEXT_542);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap$InternalMapView"));    stringBuffer.append(TEXT_543);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_544);    } else {    stringBuffer.append(TEXT_545);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));    stringBuffer.append(TEXT_546);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_547);    }    } else if (genFeature.isContainer()) {    stringBuffer.append(TEXT_548);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_549);    } else {    stringBuffer.append(TEXT_550);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_551);    if (genFeature.isContains()) {    stringBuffer.append(TEXT_552);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_553);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_554);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_555);    } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();    stringBuffer.append(TEXT_556);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_557);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_558);    stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_559);    stringBuffer.append(targetClass.getImportedInterfaceName());    stringBuffer.append(TEXT_560);    }    stringBuffer.append(TEXT_561);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_562);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_563);    }    }    stringBuffer.append(TEXT_564);    }    if (!genModel.isReflectiveDelegation() && !genClass.getEInverseRemoveGenFeatures().isEmpty()) {    stringBuffer.append(TEXT_565);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_566);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_567);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_568);    for (Iterator i=genClass.getEInverseRemoveGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    stringBuffer.append(TEXT_569);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_570);    if (genFeature.isListType()) {    if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {    stringBuffer.append(TEXT_571);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));    stringBuffer.append(TEXT_572);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap$InternalMapView"));    stringBuffer.append(TEXT_573);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_574);    } else if (genFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_575);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));    stringBuffer.append(TEXT_576);    stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_577);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_578);    } else {    stringBuffer.append(TEXT_579);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));    stringBuffer.append(TEXT_580);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_581);    }    } else if (genFeature.isContainer()) {    stringBuffer.append(TEXT_582);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_583);    } else if (genFeature.isUnsettable()) {    stringBuffer.append(TEXT_584);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_585);    } else {    stringBuffer.append(TEXT_586);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_587);    }    }    stringBuffer.append(TEXT_588);    }    if (!genModel.isReflectiveDelegation() && !genClass.getEBasicRemoveFromContainerGenFeatures().isEmpty()) {    stringBuffer.append(TEXT_589);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_590);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain"));    stringBuffer.append(TEXT_591);    for (Iterator i=genClass.getEBasicRemoveFromContainerGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();    stringBuffer.append(TEXT_592);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_593);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_594);    stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));    stringBuffer.append(TEXT_595);    stringBuffer.append(targetClass.getImportedInterfaceName());    stringBuffer.append(TEXT_596);    }    stringBuffer.append(TEXT_597);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));    stringBuffer.append(TEXT_598);    }    if (!genModel.isReflectiveDelegation() && !genClass.getAllGenFeatures().isEmpty()) {    stringBuffer.append(TEXT_599);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));    stringBuffer.append(TEXT_600);    for (Iterator i=genClass.getAllGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    stringBuffer.append(TEXT_601);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_602);    if (genFeature.isPrimitiveType() && !genFeature.isListType()) {    if (genFeature.isBooleanType()) {    stringBuffer.append(TEXT_603);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_604);    } else {    stringBuffer.append(TEXT_605);    stringBuffer.append(genFeature.getObjectType());    stringBuffer.append(TEXT_606);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_607);    }    } else if (genFeature.isResolveProxies() && !genFeature.isListType()) {    stringBuffer.append(TEXT_608);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_609);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_610);    } else if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {    stringBuffer.append(TEXT_611);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap$InternalMapView"));    stringBuffer.append(TEXT_612);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_613);    } else if (genFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_614);    stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_615);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_616);    } else {    stringBuffer.append(TEXT_617);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_618);    }    }    stringBuffer.append(TEXT_619);    }    if (!genModel.isReflectiveDelegation() && !genClass.getESetGenFeatures().isEmpty()) {    stringBuffer.append(TEXT_620);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));    stringBuffer.append(TEXT_621);    for (Iterator i=genClass.getESetGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    stringBuffer.append(TEXT_622);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_623);    if (genFeature.isListType()) {    if (genFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_624);    stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_625);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_626);    } else {    stringBuffer.append(TEXT_627);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_628);    }    if (genFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_629);    stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_630);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_631);    stringBuffer.append(genModel.getImportedName("java.util.Collection"));    stringBuffer.append(TEXT_632);    } else if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {    stringBuffer.append(TEXT_633);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap$InternalMapView"));    stringBuffer.append(TEXT_634);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_635);    stringBuffer.append(genModel.getImportedName("java.util.Collection"));    stringBuffer.append(TEXT_636);    } else {    stringBuffer.append(TEXT_637);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_638);    stringBuffer.append(genModel.getImportedName("java.util.Collection"));    stringBuffer.append(TEXT_639);    }    } else if (genFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_640);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_641);    stringBuffer.append(genFeature.getObjectType());    stringBuffer.append(TEXT_642);    stringBuffer.append(genFeature.getPrimitiveValueFunction());    stringBuffer.append(TEXT_643);    } else {    stringBuffer.append(TEXT_644);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_645);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_646);    }    stringBuffer.append(TEXT_647);    }    stringBuffer.append(TEXT_648);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));    stringBuffer.append(TEXT_649);    for (Iterator i=genClass.getESetGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    stringBuffer.append(TEXT_650);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_651);    if (genFeature.isListType() && !genFeature.isUnsettable()) {    if (genFeature.isFeatureMapWrapped()) {    stringBuffer.append(TEXT_652);    stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_653);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_654);    } else {    stringBuffer.append(TEXT_655);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_656);    }    } else if (genFeature.isUnsettable()) {    stringBuffer.append(TEXT_657);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_658);    } else if (genFeature.isReferenceType()) {    stringBuffer.append(TEXT_659);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_660);    stringBuffer.append(genFeature.getImportedType());    stringBuffer.append(TEXT_661);    } else {    stringBuffer.append(TEXT_662);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_663);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_664);    }    stringBuffer.append(TEXT_665);    }    stringBuffer.append(TEXT_666);    }    if (!genModel.isReflectiveDelegation() && !genClass.getAllGenFeatures().isEmpty()) {    stringBuffer.append(TEXT_667);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));    stringBuffer.append(TEXT_668);    for (Iterator i=genClass.getAllGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();    stringBuffer.append(TEXT_669);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_670);    if (genFeature.isListType() && !genFeature.isUnsettable()) {    if (genFeature.isFeatureMapWrapped()) {    if (genFeature.isVolatile()) {    stringBuffer.append(TEXT_671);    stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperInternalInterface());    stringBuffer.append(TEXT_672);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_673);    } else {    stringBuffer.append(TEXT_674);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_675);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_676);    }    } else {    if (genFeature.isVolatile()) {    stringBuffer.append(TEXT_677);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_678);    } else {    stringBuffer.append(TEXT_679);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_680);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_681);    }    }    } else if (genFeature.isUnsettable()) {    stringBuffer.append(TEXT_682);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_683);    } else if (genFeature.isResolveProxies()) {    if (genFeature.isVolatile()) {    stringBuffer.append(TEXT_684);    stringBuffer.append(genFeature.getAccessorName());    stringBuffer.append(TEXT_685);    } else {    stringBuffer.append(TEXT_686);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_687);    }    } else if (genFeature.isReferenceType()) {    if (genFeature.isVolatile() || genFeature.isContainer()) {    stringBuffer.append(TEXT_688);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_689);    } else {    stringBuffer.append(TEXT_690);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_691);    }    } else if (genFeature.isPrimitiveType() || genFeature.isEnumType()) {    if (genFeature.isVolatile()) {    stringBuffer.append(TEXT_692);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_693);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_694);    } else {    stringBuffer.append(TEXT_695);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_696);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_697);    }    } else {//datatype    if (genFeature.isVolatile()) {    stringBuffer.append(TEXT_698);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_699);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_700);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_701);    stringBuffer.append(genFeature.getGetAccessor());    stringBuffer.append(TEXT_702);    } else {    stringBuffer.append(TEXT_703);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_704);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_705);    stringBuffer.append(genFeature.getUpperName());    stringBuffer.append(TEXT_706);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_707);    }    }    }    stringBuffer.append(TEXT_708);    }    if (!genClass.getMixinGenFeatures().isEmpty()) {    stringBuffer.append(TEXT_709);    for (Iterator m=genClass.getMixinGenClasses().iterator(); m.hasNext();) { GenClass mixinGenClass = (GenClass)m.next();     stringBuffer.append(TEXT_710);    stringBuffer.append(mixinGenClass.getImportedInterfaceName());    stringBuffer.append(TEXT_711);    for (Iterator f=mixinGenClass.getGenFeatures().iterator(); f.hasNext();) { GenFeature genFeature = (GenFeature)f.next();     stringBuffer.append(TEXT_712);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_713);    stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_714);    }    stringBuffer.append(TEXT_715);    }    stringBuffer.append(TEXT_716);    for (Iterator m=genClass.getMixinGenClasses().iterator(); m.hasNext();) { GenClass mixinGenClass = (GenClass)m.next();     stringBuffer.append(TEXT_717);    stringBuffer.append(mixinGenClass.getImportedInterfaceName());    stringBuffer.append(TEXT_718);    for (Iterator f=mixinGenClass.getGenFeatures().iterator(); f.hasNext();) { GenFeature genFeature = (GenFeature)f.next();     stringBuffer.append(TEXT_719);    stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_720);    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));    stringBuffer.append(TEXT_721);    }    stringBuffer.append(TEXT_722);    }    stringBuffer.append(TEXT_723);    }    if (!genModel.isReflectiveDelegation() && !genClass.getToStringGenFeatures().isEmpty()) {    stringBuffer.append(TEXT_724);    { boolean first = true;    for (Iterator i=genClass.getToStringGenFeatures().iterator(); i.hasNext(); ) { GenFeature genFeature = (GenFeature)i.next();    if (first) { first = false;    stringBuffer.append(TEXT_725);    stringBuffer.append(genFeature.getName());    stringBuffer.append(TEXT_726);    stringBuffer.append(genModel.getNonNLS());    } else {    stringBuffer.append(TEXT_727);    stringBuffer.append(genFeature.getName());    stringBuffer.append(TEXT_728);    stringBuffer.append(genModel.getNonNLS());    }    if (genFeature.isUnsettable() && !genFeature.isListType()) {    stringBuffer.append(TEXT_729);    stringBuffer.append(genFeature.getUncapName());    stringBuffer.append(TEXT_730);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_731);    stringBuffer.append(genModel.getNonNLS());    } else {    stringBuffer.append(TEXT_732);    stringBuffer.append(genFeature.getSafeName());    stringBuffer.append(TEXT_733);    }    }    }    stringBuffer.append(TEXT_734);    }    if (genClass.isMapEntry()) { GenFeature keyFeature = genClass.getMapEntryKeyFeature(); GenFeature valueFeature = genClass.getMapEntryValueFeature();    stringBuffer.append(TEXT_735);    if (keyFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_736);    stringBuffer.append(keyFeature.getObjectType());    stringBuffer.append(TEXT_737);    } else {    stringBuffer.append(TEXT_738);    }    stringBuffer.append(TEXT_739);    if (keyFeature.isListType()) {    stringBuffer.append(TEXT_740);    stringBuffer.append(genModel.getImportedName("java.util.Collection"));    stringBuffer.append(TEXT_741);    } else if (keyFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_742);    stringBuffer.append(keyFeature.getObjectType());    stringBuffer.append(TEXT_743);    stringBuffer.append(keyFeature.getPrimitiveValueFunction());    stringBuffer.append(TEXT_744);    } else {    stringBuffer.append(TEXT_745);    stringBuffer.append(keyFeature.getImportedType());    stringBuffer.append(TEXT_746);    }    stringBuffer.append(TEXT_747);    if (valueFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_748);    stringBuffer.append(valueFeature.getObjectType());    stringBuffer.append(TEXT_749);    } else {    stringBuffer.append(TEXT_750);    }    stringBuffer.append(TEXT_751);    if (valueFeature.isListType()) {    stringBuffer.append(TEXT_752);    stringBuffer.append(genModel.getImportedName("java.util.Collection"));    stringBuffer.append(TEXT_753);    } else if (valueFeature.isPrimitiveType()) {    stringBuffer.append(TEXT_754);    stringBuffer.append(valueFeature.getObjectType());    stringBuffer.append(TEXT_755);    stringBuffer.append(valueFeature.getPrimitiveValueFunction());    stringBuffer.append(TEXT_756);    } else {    stringBuffer.append(TEXT_757);    stringBuffer.append(valueFeature.getImportedType());    stringBuffer.append(TEXT_758);    }    stringBuffer.append(TEXT_759);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));    stringBuffer.append(TEXT_760);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));    stringBuffer.append(TEXT_761);    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));    stringBuffer.append(TEXT_762);    }    stringBuffer.append(TEXT_763);    stringBuffer.append(genClass.getClassName());    genModel.emitSortedImports();    stringBuffer.append(TEXT_764);    return stringBuffer.toString();  }