[519572] Generate code with StringBuilder instead of StringBuffer
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/Class.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/Class.java
index 950a2d5..3694ed6 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/Class.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/Class.java
@@ -1886,100 +1886,102 @@
   protected final String TEXT_1867 = NL + "\t}" + NL;
   protected final String TEXT_1868 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
   protected final String TEXT_1869 = NL + "\t@Override";
-  protected final String TEXT_1870 = 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_1871 = NL + "\t\tresult.append(\" (";
-  protected final String TEXT_1872 = ": \");";
-  protected final String TEXT_1873 = NL + "\t\tresult.append(\", ";
+  protected final String TEXT_1870 = NL + "\tpublic String toString()" + NL + "\t{" + NL + "\t\tif (eIsProxy()) return super.toString();" + NL + "" + NL + "\t\t";
+  protected final String TEXT_1871 = " result = new ";
+  protected final String TEXT_1872 = "(super.toString());";
+  protected final String TEXT_1873 = NL + "\t\tresult.append(\" (";
   protected final String TEXT_1874 = ": \");";
-  protected final String TEXT_1875 = NL + "\t\tif (eVirtualIsSet(";
-  protected final String TEXT_1876 = ")) result.append(eVirtualGet(";
-  protected final String TEXT_1877 = ")); else result.append(\"<unset>\");";
-  protected final String TEXT_1878 = NL + "\t\tif (";
-  protected final String TEXT_1879 = "(";
-  protected final String TEXT_1880 = " & ";
-  protected final String TEXT_1881 = "_ESETFLAG) != 0";
-  protected final String TEXT_1882 = "ESet";
-  protected final String TEXT_1883 = ") result.append((";
-  protected final String TEXT_1884 = " & ";
-  protected final String TEXT_1885 = "_EFLAG) != 0); else result.append(\"<unset>\");";
-  protected final String TEXT_1886 = NL + "\t\tif (";
-  protected final String TEXT_1887 = "(";
-  protected final String TEXT_1888 = " & ";
-  protected final String TEXT_1889 = "_ESETFLAG) != 0";
-  protected final String TEXT_1890 = "ESet";
-  protected final String TEXT_1891 = ") result.append(";
-  protected final String TEXT_1892 = "_EFLAG_VALUES[(";
-  protected final String TEXT_1893 = " & ";
-  protected final String TEXT_1894 = "_EFLAG) >>> ";
-  protected final String TEXT_1895 = "_EFLAG_OFFSET]); else result.append(\"<unset>\");";
-  protected final String TEXT_1896 = NL + "\t\tif (";
-  protected final String TEXT_1897 = "(";
-  protected final String TEXT_1898 = " & ";
-  protected final String TEXT_1899 = "_ESETFLAG) != 0";
-  protected final String TEXT_1900 = "ESet";
-  protected final String TEXT_1901 = ") result.append(";
-  protected final String TEXT_1902 = "); else result.append(\"<unset>\");";
-  protected final String TEXT_1903 = NL + "\t\tresult.append(eVirtualGet(";
-  protected final String TEXT_1904 = ", ";
-  protected final String TEXT_1905 = "));";
-  protected final String TEXT_1906 = NL + "\t\tresult.append((";
-  protected final String TEXT_1907 = " & ";
-  protected final String TEXT_1908 = "_EFLAG) != 0);";
-  protected final String TEXT_1909 = NL + "\t\tresult.append(";
-  protected final String TEXT_1910 = "_EFLAG_VALUES[(";
-  protected final String TEXT_1911 = " & ";
-  protected final String TEXT_1912 = "_EFLAG) >>> ";
-  protected final String TEXT_1913 = "_EFLAG_OFFSET]);";
-  protected final String TEXT_1914 = NL + "\t\tresult.append(";
-  protected final String TEXT_1915 = ");";
-  protected final String TEXT_1916 = NL + "\t\tresult.append(')');" + NL + "\t\treturn result.toString();" + NL + "\t}" + NL;
-  protected final String TEXT_1917 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
-  protected final String TEXT_1918 = NL + "\t@";
-  protected final String TEXT_1919 = 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_1920 = " 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_1921 = " getKey()" + NL + "\t{";
-  protected final String TEXT_1922 = NL + "\t\treturn new ";
-  protected final String TEXT_1923 = "(getTypedKey());";
-  protected final String TEXT_1924 = NL + "\t\treturn getTypedKey();";
-  protected final String TEXT_1925 = 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_1926 = " key)" + NL + "\t{";
-  protected final String TEXT_1927 = NL + "\t\tgetTypedKey().addAll(";
-  protected final String TEXT_1928 = "(";
-  protected final String TEXT_1929 = ")";
-  protected final String TEXT_1930 = "key);";
-  protected final String TEXT_1931 = NL + "\t\tsetTypedKey(key);";
-  protected final String TEXT_1932 = NL + "\t\tsetTypedKey(((";
-  protected final String TEXT_1933 = ")key).";
-  protected final String TEXT_1934 = "());";
-  protected final String TEXT_1935 = NL + "\t\tsetTypedKey((";
-  protected final String TEXT_1936 = ")key);";
-  protected final String TEXT_1937 = 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_1938 = " getValue()" + NL + "\t{";
-  protected final String TEXT_1939 = NL + "\t\treturn new ";
-  protected final String TEXT_1940 = "(getTypedValue());";
-  protected final String TEXT_1941 = NL + "\t\treturn getTypedValue();";
-  protected final String TEXT_1942 = 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_1943 = " setValue(";
-  protected final String TEXT_1944 = " value)" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_1945 = " oldValue = getValue();";
-  protected final String TEXT_1946 = NL + "\t\tgetTypedValue().clear();" + NL + "\t\tgetTypedValue().addAll(";
-  protected final String TEXT_1947 = "(";
-  protected final String TEXT_1948 = ")";
-  protected final String TEXT_1949 = "value);";
-  protected final String TEXT_1950 = NL + "\t\tsetTypedValue(value);";
-  protected final String TEXT_1951 = NL + "\t\tsetTypedValue(((";
-  protected final String TEXT_1952 = ")value).";
-  protected final String TEXT_1953 = "());";
-  protected final String TEXT_1954 = NL + "\t\tsetTypedValue((";
-  protected final String TEXT_1955 = ")value);";
-  protected final String TEXT_1956 = 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_1957 = NL + "\t@SuppressWarnings(\"unchecked\")";
-  protected final String TEXT_1958 = NL + "\tpublic ";
-  protected final String TEXT_1959 = " getEMap()" + NL + "\t{" + NL + "\t\t";
-  protected final String TEXT_1960 = " container = eContainer();" + NL + "\t\treturn container == null ? null : (";
-  protected final String TEXT_1961 = ")container.eGet(eContainmentFeature());" + NL + "\t}" + NL;
-  protected final String TEXT_1962 = NL + "} //";
-  protected final String TEXT_1963 = NL;
+  protected final String TEXT_1875 = NL + "\t\tresult.append(\", ";
+  protected final String TEXT_1876 = ": \");";
+  protected final String TEXT_1877 = NL + "\t\tif (eVirtualIsSet(";
+  protected final String TEXT_1878 = ")) result.append(eVirtualGet(";
+  protected final String TEXT_1879 = ")); else result.append(\"<unset>\");";
+  protected final String TEXT_1880 = NL + "\t\tif (";
+  protected final String TEXT_1881 = "(";
+  protected final String TEXT_1882 = " & ";
+  protected final String TEXT_1883 = "_ESETFLAG) != 0";
+  protected final String TEXT_1884 = "ESet";
+  protected final String TEXT_1885 = ") result.append((";
+  protected final String TEXT_1886 = " & ";
+  protected final String TEXT_1887 = "_EFLAG) != 0); else result.append(\"<unset>\");";
+  protected final String TEXT_1888 = NL + "\t\tif (";
+  protected final String TEXT_1889 = "(";
+  protected final String TEXT_1890 = " & ";
+  protected final String TEXT_1891 = "_ESETFLAG) != 0";
+  protected final String TEXT_1892 = "ESet";
+  protected final String TEXT_1893 = ") result.append(";
+  protected final String TEXT_1894 = "_EFLAG_VALUES[(";
+  protected final String TEXT_1895 = " & ";
+  protected final String TEXT_1896 = "_EFLAG) >>> ";
+  protected final String TEXT_1897 = "_EFLAG_OFFSET]); else result.append(\"<unset>\");";
+  protected final String TEXT_1898 = NL + "\t\tif (";
+  protected final String TEXT_1899 = "(";
+  protected final String TEXT_1900 = " & ";
+  protected final String TEXT_1901 = "_ESETFLAG) != 0";
+  protected final String TEXT_1902 = "ESet";
+  protected final String TEXT_1903 = ") result.append(";
+  protected final String TEXT_1904 = "); else result.append(\"<unset>\");";
+  protected final String TEXT_1905 = NL + "\t\tresult.append(eVirtualGet(";
+  protected final String TEXT_1906 = ", ";
+  protected final String TEXT_1907 = "));";
+  protected final String TEXT_1908 = NL + "\t\tresult.append((";
+  protected final String TEXT_1909 = " & ";
+  protected final String TEXT_1910 = "_EFLAG) != 0);";
+  protected final String TEXT_1911 = NL + "\t\tresult.append(";
+  protected final String TEXT_1912 = "_EFLAG_VALUES[(";
+  protected final String TEXT_1913 = " & ";
+  protected final String TEXT_1914 = "_EFLAG) >>> ";
+  protected final String TEXT_1915 = "_EFLAG_OFFSET]);";
+  protected final String TEXT_1916 = NL + "\t\tresult.append(";
+  protected final String TEXT_1917 = ");";
+  protected final String TEXT_1918 = NL + "\t\tresult.append(')');" + NL + "\t\treturn result.toString();" + NL + "\t}" + NL;
+  protected final String TEXT_1919 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+  protected final String TEXT_1920 = NL + "\t@";
+  protected final String TEXT_1921 = 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_1922 = " 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_1923 = " getKey()" + NL + "\t{";
+  protected final String TEXT_1924 = NL + "\t\treturn new ";
+  protected final String TEXT_1925 = "(getTypedKey());";
+  protected final String TEXT_1926 = NL + "\t\treturn getTypedKey();";
+  protected final String TEXT_1927 = 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_1928 = " key)" + NL + "\t{";
+  protected final String TEXT_1929 = NL + "\t\tgetTypedKey().addAll(";
+  protected final String TEXT_1930 = "(";
+  protected final String TEXT_1931 = ")";
+  protected final String TEXT_1932 = "key);";
+  protected final String TEXT_1933 = NL + "\t\tsetTypedKey(key);";
+  protected final String TEXT_1934 = NL + "\t\tsetTypedKey(((";
+  protected final String TEXT_1935 = ")key).";
+  protected final String TEXT_1936 = "());";
+  protected final String TEXT_1937 = NL + "\t\tsetTypedKey((";
+  protected final String TEXT_1938 = ")key);";
+  protected final String TEXT_1939 = 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_1940 = " getValue()" + NL + "\t{";
+  protected final String TEXT_1941 = NL + "\t\treturn new ";
+  protected final String TEXT_1942 = "(getTypedValue());";
+  protected final String TEXT_1943 = NL + "\t\treturn getTypedValue();";
+  protected final String TEXT_1944 = 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_1945 = " setValue(";
+  protected final String TEXT_1946 = " value)" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_1947 = " oldValue = getValue();";
+  protected final String TEXT_1948 = NL + "\t\tgetTypedValue().clear();" + NL + "\t\tgetTypedValue().addAll(";
+  protected final String TEXT_1949 = "(";
+  protected final String TEXT_1950 = ")";
+  protected final String TEXT_1951 = "value);";
+  protected final String TEXT_1952 = NL + "\t\tsetTypedValue(value);";
+  protected final String TEXT_1953 = NL + "\t\tsetTypedValue(((";
+  protected final String TEXT_1954 = ")value).";
+  protected final String TEXT_1955 = "());";
+  protected final String TEXT_1956 = NL + "\t\tsetTypedValue((";
+  protected final String TEXT_1957 = ")value);";
+  protected final String TEXT_1958 = 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_1959 = NL + "\t@SuppressWarnings(\"unchecked\")";
+  protected final String TEXT_1960 = NL + "\tpublic ";
+  protected final String TEXT_1961 = " getEMap()" + NL + "\t{" + NL + "\t\t";
+  protected final String TEXT_1962 = " container = eContainer();" + NL + "\t\treturn container == null ? null : (";
+  protected final String TEXT_1963 = ")container.eGet(eContainmentFeature());" + NL + "\t}" + NL;
+  protected final String TEXT_1964 = NL + "} //";
+  protected final String TEXT_1965 = NL;
 
   public String generate(Object argument)
   {
@@ -6395,231 +6397,235 @@
     stringBuffer.append(TEXT_1869);
     }
     stringBuffer.append(TEXT_1870);
+    stringBuffer.append(genModel.useGenerics() ? "StringBuilder" : "StringBuffer");
+    stringBuffer.append(TEXT_1871);
+    stringBuffer.append(genModel.useGenerics() ? "StringBuilder" : "StringBuffer");
+    stringBuffer.append(TEXT_1872);
     { boolean first = true;
     for (GenFeature genFeature : genClass.getToStringGenFeatures()) {
     if (first) { first = false;
-    stringBuffer.append(TEXT_1871);
-    stringBuffer.append(genFeature.getName());
-    stringBuffer.append(TEXT_1872);
-    stringBuffer.append(genModel.getNonNLS());
-    } else {
     stringBuffer.append(TEXT_1873);
     stringBuffer.append(genFeature.getName());
     stringBuffer.append(TEXT_1874);
     stringBuffer.append(genModel.getNonNLS());
+    } else {
+    stringBuffer.append(TEXT_1875);
+    stringBuffer.append(genFeature.getName());
+    stringBuffer.append(TEXT_1876);
+    stringBuffer.append(genModel.getNonNLS());
     }
     if (genFeature.isUnsettable() && !genFeature.isListType()) {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_1875);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(positiveOffsetCorrection);
-    stringBuffer.append(TEXT_1876);
-    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
-    stringBuffer.append(positiveOffsetCorrection);
     stringBuffer.append(TEXT_1877);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(positiveOffsetCorrection);
+    stringBuffer.append(TEXT_1878);
+    stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
+    stringBuffer.append(positiveOffsetCorrection);
+    stringBuffer.append(TEXT_1879);
     stringBuffer.append(genModel.getNonNLS());
     } else {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_1878);
-    if (genClass.isESetFlag(genFeature)) {
-    stringBuffer.append(TEXT_1879);
-    stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_1880);
-    stringBuffer.append(genFeature.getUpperName());
+    if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_1881);
+    stringBuffer.append(genClass.getESetFlagsField(genFeature));
+    stringBuffer.append(TEXT_1882);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_1883);
     } else {
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_1882);
-    }
-    stringBuffer.append(TEXT_1883);
-    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_1884);
-    stringBuffer.append(genFeature.getUpperName());
+    }
     stringBuffer.append(TEXT_1885);
+    stringBuffer.append(genClass.getFlagsField(genFeature));
+    stringBuffer.append(TEXT_1886);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_1887);
     stringBuffer.append(genModel.getNonNLS());
     } else {
-    stringBuffer.append(TEXT_1886);
-    if (genClass.isESetFlag(genFeature)) {
-    stringBuffer.append(TEXT_1887);
-    stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_1888);
-    stringBuffer.append(genFeature.getUpperName());
+    if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_1889);
+    stringBuffer.append(genClass.getESetFlagsField(genFeature));
+    stringBuffer.append(TEXT_1890);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_1891);
     } else {
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_1890);
-    }
-    stringBuffer.append(TEXT_1891);
-    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_1892);
-    stringBuffer.append(genClass.getFlagsField(genFeature));
+    }
     stringBuffer.append(TEXT_1893);
     stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_1894);
-    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_1895);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_1896);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_1897);
     stringBuffer.append(genModel.getNonNLS());
     }
     } else {
-    stringBuffer.append(TEXT_1896);
-    if (genClass.isESetFlag(genFeature)) {
-    stringBuffer.append(TEXT_1897);
-    stringBuffer.append(genClass.getESetFlagsField(genFeature));
     stringBuffer.append(TEXT_1898);
-    stringBuffer.append(genFeature.getUpperName());
+    if (genClass.isESetFlag(genFeature)) {
     stringBuffer.append(TEXT_1899);
+    stringBuffer.append(genClass.getESetFlagsField(genFeature));
+    stringBuffer.append(TEXT_1900);
+    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(TEXT_1901);
     } else {
     stringBuffer.append(genFeature.getUncapName());
-    stringBuffer.append(TEXT_1900);
-    }
-    stringBuffer.append(TEXT_1901);
-    stringBuffer.append(genFeature.getSafeName());
     stringBuffer.append(TEXT_1902);
+    }
+    stringBuffer.append(TEXT_1903);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_1904);
     stringBuffer.append(genModel.getNonNLS());
     }
     }
     } else {
     if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_1903);
+    stringBuffer.append(TEXT_1905);
     stringBuffer.append(genClass.getQualifiedFeatureID(genFeature));
     stringBuffer.append(positiveOffsetCorrection);
     if (!genFeature.isListType() && !genFeature.isReferenceType()){
-    stringBuffer.append(TEXT_1904);
+    stringBuffer.append(TEXT_1906);
     stringBuffer.append(genFeature.getEDefault());
     }
-    stringBuffer.append(TEXT_1905);
+    stringBuffer.append(TEXT_1907);
     } else {
     if (genClass.isFlag(genFeature)) {
     if (genFeature.isBooleanType()) {
-    stringBuffer.append(TEXT_1906);
-    stringBuffer.append(genClass.getFlagsField(genFeature));
-    stringBuffer.append(TEXT_1907);
-    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_1908);
-    } else {
+    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_1909);
     stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_1910);
-    stringBuffer.append(genClass.getFlagsField(genFeature));
+    } else {
     stringBuffer.append(TEXT_1911);
     stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_1912);
-    stringBuffer.append(genFeature.getUpperName());
+    stringBuffer.append(genClass.getFlagsField(genFeature));
     stringBuffer.append(TEXT_1913);
-    }
-    } else {
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_1914);
-    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(genFeature.getUpperName());
     stringBuffer.append(TEXT_1915);
     }
-    }
-    }
-    }
-    }
+    } else {
     stringBuffer.append(TEXT_1916);
+    stringBuffer.append(genFeature.getSafeName());
+    stringBuffer.append(TEXT_1917);
+    }
+    }
+    }
+    }
+    }
+    stringBuffer.append(TEXT_1918);
     }
     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_1917);
+    stringBuffer.append(TEXT_1919);
     if (isGWT) {
-    stringBuffer.append(TEXT_1918);
+    stringBuffer.append(TEXT_1920);
     stringBuffer.append(genModel.getImportedName("com.google.gwt.user.client.rpc.GwtTransient"));
     }
-    stringBuffer.append(TEXT_1919);
-    stringBuffer.append(objectType);
-    stringBuffer.append(TEXT_1920);
-    stringBuffer.append(keyType);
     stringBuffer.append(TEXT_1921);
-    if (!isJDK50 && keyFeature.isPrimitiveType()) {
+    stringBuffer.append(objectType);
     stringBuffer.append(TEXT_1922);
-    stringBuffer.append(keyFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_1923);
-    } else {
-    stringBuffer.append(TEXT_1924);
-    }
-    stringBuffer.append(TEXT_1925);
     stringBuffer.append(keyType);
-    stringBuffer.append(TEXT_1926);
-    if (keyFeature.isListType()) {
-    stringBuffer.append(TEXT_1927);
-    if (!genModel.useGenerics()) {
-    stringBuffer.append(TEXT_1928);
-    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
-    stringBuffer.append(TEXT_1929);
-    }
-    stringBuffer.append(TEXT_1930);
-    } else if (isJDK50) {
-    stringBuffer.append(TEXT_1931);
-    } else if (keyFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_1932);
+    stringBuffer.append(TEXT_1923);
+    if (!isJDK50 && keyFeature.isPrimitiveType()) {
+    stringBuffer.append(TEXT_1924);
     stringBuffer.append(keyFeature.getObjectType(genClass));
+    stringBuffer.append(TEXT_1925);
+    } else {
+    stringBuffer.append(TEXT_1926);
+    }
+    stringBuffer.append(TEXT_1927);
+    stringBuffer.append(keyType);
+    stringBuffer.append(TEXT_1928);
+    if (keyFeature.isListType()) {
+    stringBuffer.append(TEXT_1929);
+    if (!genModel.useGenerics()) {
+    stringBuffer.append(TEXT_1930);
+    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
+    stringBuffer.append(TEXT_1931);
+    }
+    stringBuffer.append(TEXT_1932);
+    } else if (isJDK50) {
     stringBuffer.append(TEXT_1933);
-    stringBuffer.append(keyFeature.getPrimitiveValueFunction());
+    } else if (keyFeature.isPrimitiveType()) {
     stringBuffer.append(TEXT_1934);
-    } else {
+    stringBuffer.append(keyFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_1935);
-    stringBuffer.append(keyFeature.getImportedType(genClass));
+    stringBuffer.append(keyFeature.getPrimitiveValueFunction());
     stringBuffer.append(TEXT_1936);
-    }
-    stringBuffer.append(TEXT_1937);
-    stringBuffer.append(valueType);
-    stringBuffer.append(TEXT_1938);
-    if (!isJDK50 && valueFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_1939);
-    stringBuffer.append(valueFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_1940);
     } else {
-    stringBuffer.append(TEXT_1941);
+    stringBuffer.append(TEXT_1937);
+    stringBuffer.append(keyFeature.getImportedType(genClass));
+    stringBuffer.append(TEXT_1938);
     }
+    stringBuffer.append(TEXT_1939);
+    stringBuffer.append(valueType);
+    stringBuffer.append(TEXT_1940);
+    if (!isJDK50 && valueFeature.isPrimitiveType()) {
+    stringBuffer.append(TEXT_1941);
+    stringBuffer.append(valueFeature.getObjectType(genClass));
     stringBuffer.append(TEXT_1942);
-    stringBuffer.append(valueType);
+    } else {
     stringBuffer.append(TEXT_1943);
-    stringBuffer.append(valueType);
+    }
     stringBuffer.append(TEXT_1944);
     stringBuffer.append(valueType);
     stringBuffer.append(TEXT_1945);
-    if (valueFeature.isListType()) {
+    stringBuffer.append(valueType);
     stringBuffer.append(TEXT_1946);
-    if (!genModel.useGenerics()) {
+    stringBuffer.append(valueType);
     stringBuffer.append(TEXT_1947);
-    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
+    if (valueFeature.isListType()) {
     stringBuffer.append(TEXT_1948);
-    }
+    if (!genModel.useGenerics()) {
     stringBuffer.append(TEXT_1949);
-    } else if (isJDK50) {
+    stringBuffer.append(genModel.getImportedName("java.util.Collection"));
     stringBuffer.append(TEXT_1950);
-    } else if (valueFeature.isPrimitiveType()) {
-    stringBuffer.append(TEXT_1951);
-    stringBuffer.append(valueFeature.getObjectType(genClass));
-    stringBuffer.append(TEXT_1952);
-    stringBuffer.append(valueFeature.getPrimitiveValueFunction());
-    stringBuffer.append(TEXT_1953);
-    } else {
-    stringBuffer.append(TEXT_1954);
-    stringBuffer.append(valueFeature.getImportedType(genClass));
-    stringBuffer.append(TEXT_1955);
     }
+    stringBuffer.append(TEXT_1951);
+    } else if (isJDK50) {
+    stringBuffer.append(TEXT_1952);
+    } else if (valueFeature.isPrimitiveType()) {
+    stringBuffer.append(TEXT_1953);
+    stringBuffer.append(valueFeature.getObjectType(genClass));
+    stringBuffer.append(TEXT_1954);
+    stringBuffer.append(valueFeature.getPrimitiveValueFunction());
+    stringBuffer.append(TEXT_1955);
+    } else {
     stringBuffer.append(TEXT_1956);
-    if (genModel.useGenerics()) {
+    stringBuffer.append(valueFeature.getImportedType(genClass));
     stringBuffer.append(TEXT_1957);
     }
     stringBuffer.append(TEXT_1958);
-    stringBuffer.append(eMapType);
+    if (genModel.useGenerics()) {
     stringBuffer.append(TEXT_1959);
-    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+    }
     stringBuffer.append(TEXT_1960);
     stringBuffer.append(eMapType);
     stringBuffer.append(TEXT_1961);
-    }
+    stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
     stringBuffer.append(TEXT_1962);
+    stringBuffer.append(eMapType);
+    stringBuffer.append(TEXT_1963);
+    }
+    stringBuffer.append(TEXT_1964);
     stringBuffer.append(isInterface ? " " + genClass.getInterfaceName() : genClass.getClassName());
     // TODO fix the space above
     genModel.emitSortedImports();
-    stringBuffer.append(TEXT_1963);
+    stringBuffer.append(TEXT_1965);
     return stringBuffer.toString();
   }
 }
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass.java
index cf70042..bc66408 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass.java
@@ -1255,9 +1255,9 @@
     }
     } else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); 
     stringBuffer.append(TEXT_310);
-    stringBuffer.append(genModel.getImportedName("java.lang.StringBuffer"));
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.lang.StringBuilder" : "java.lang.StringBuffer"));
     stringBuffer.append(TEXT_311);
-    stringBuffer.append(genModel.getImportedName("java.lang.StringBuffer"));
+    stringBuffer.append(genModel.getImportedName(genModel.useGenerics() ? "java.lang.StringBuilder" : "java.lang.StringBuffer"));
     stringBuffer.append(TEXT_312);
     String item; if (!genModel.useGenerics()) { item = "i.next()"; 
     stringBuffer.append(TEXT_313);
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/model/Class.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/model/Class.javajet
index 3926230..84d1c36 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/model/Class.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/model/Class.javajet
@@ -2529,7 +2529,7 @@
 	{
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		<%=genModel.useGenerics() ? "StringBuilder" : "StringBuffer"%> result = new <%=genModel.useGenerics() ? "StringBuilder" : "StringBuffer"%>(super.toString());
   <%{ boolean first = true;%>
     <%for (GenFeature genFeature : genClass.getToStringGenFeatures()) {%>
       <%if (first) { first = false;%>
diff --git a/plugins/org.eclipse.emf.codegen.ecore/templates/model/FactoryClass.javajet b/plugins/org.eclipse.emf.codegen.ecore/templates/model/FactoryClass.javajet
index 2fee946..f3d6c35 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/templates/model/FactoryClass.javajet
+++ b/plugins/org.eclipse.emf.codegen.ecore/templates/model/FactoryClass.javajet
@@ -484,7 +484,7 @@
     <%} else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); %>
 		if (instanceValue == null) return null;
 		if (instanceValue.isEmpty()) return "";
-		<%=genModel.getImportedName("java.lang.StringBuffer")%> result = new <%=genModel.getImportedName("java.lang.StringBuffer")%>();
+		<%=genModel.getImportedName(genModel.useGenerics() ? "java.lang.StringBuilder" : "java.lang.StringBuffer")%> result = new <%=genModel.getImportedName(genModel.useGenerics() ? "java.lang.StringBuilder" : "java.lang.StringBuffer")%>();
         <%String item; if (!genModel.useGenerics()) { item = "i.next()"; %>
 		for (<%=genModel.getImportedName("java.util.Iterator")%> i = instanceValue.iterator(); i.hasNext(); )
         <%} else { item = "item";%>
diff --git a/tests/org.eclipse.emf.test.tools/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.test.tools/META-INF/MANIFEST.MF
index b0398ed..013d4a7 100644
--- a/tests/org.eclipse.emf.test.tools/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.test.tools/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.test.tools;singleton:=true
-Bundle-Version: 2.11.0.qualifier
+Bundle-Version: 2.12.0.qualifier
 Bundle-ClassPath: test.tools.jar
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/hr/impl/PersonImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/hr/impl/PersonImpl.java
index eac987d..1d801b4 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/hr/impl/PersonImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/hr/impl/PersonImpl.java
@@ -250,7 +250,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/BookImpl.java
index 56205a4..0b28bf6 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/BookImpl.java
@@ -404,7 +404,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: "); //$NON-NLS-1$
     result.append(title);
     result.append(", pages: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/LibraryImpl.java
index 6976265..3cd39d7 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/LibraryImpl.java
@@ -382,7 +382,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(", site: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/WriterImpl.java
index b1f6da4..3ad8b30 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/impl/WriterImpl.java
@@ -5,11 +5,14 @@
 
 import java.util.Collection;
 import org.eclipse.emf.common.notify.NotificationChain;
+
 import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
 import org.eclipse.emf.ecore.util.InternalEList;
+
 import org.examples.hr.impl.PersonImpl;
 import org.examples.library.Book;
 import org.examples.library.LibraryPackage;
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/util/LibrarySwitch.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/util/LibrarySwitch.java
index cf382e7..8f5d323 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/util/LibrarySwitch.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.ecore/src/org/examples/library/util/LibrarySwitch.java
@@ -4,6 +4,7 @@
 package org.examples.library.util;
 
 import org.eclipse.emf.ecore.EObject;
+
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
 import org.examples.hr.Person;
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/hr/impl/PersonImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/hr/impl/PersonImpl.java
index eac987d..1d801b4 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/hr/impl/PersonImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/hr/impl/PersonImpl.java
@@ -250,7 +250,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/BookImpl.java
index 56205a4..0b28bf6 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/BookImpl.java
@@ -404,7 +404,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: "); //$NON-NLS-1$
     result.append(title);
     result.append(", pages: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/LibraryImpl.java
index 6976265..3cd39d7 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/LibraryImpl.java
@@ -382,7 +382,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(", site: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/WriterImpl.java
index b1f6da4..3ad8b30 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/impl/WriterImpl.java
@@ -5,11 +5,14 @@
 
 import java.util.Collection;
 import org.eclipse.emf.common.notify.NotificationChain;
+
 import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
 import org.eclipse.emf.ecore.util.InternalEList;
+
 import org.examples.hr.impl.PersonImpl;
 import org.examples.library.Book;
 import org.examples.library.LibraryPackage;
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/util/LibrarySwitch.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/util/LibrarySwitch.java
index cf382e7..8f5d323 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/util/LibrarySwitch.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.rose/src/org/examples/library/util/LibrarySwitch.java
@@ -4,6 +4,7 @@
 package org.examples.library.util;
 
 import org.eclipse.emf.ecore.EObject;
+
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
 import org.examples.hr.Person;
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/BookImpl.java
index c9a4506..c178316 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/BookImpl.java
@@ -476,7 +476,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: "); //$NON-NLS-1$
     result.append(title);
     result.append(", pages: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/LibraryImpl.java
index 4693c97..c0ef6df 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/LibraryImpl.java
@@ -324,7 +324,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(", site: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/WriterImpl.java
index 32595e2..316af62 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/impl/WriterImpl.java
@@ -248,7 +248,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/util/LibrarySwitch.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/util/LibrarySwitch.java
index b222cfe..8ca845c 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/util/LibrarySwitch.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsd/src/org/examples/library/util/LibrarySwitch.java
@@ -4,6 +4,7 @@
 package org.examples.library.util;
 
 import org.eclipse.emf.ecore.EObject;
+
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
 import org.examples.library.*;
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/impl/BookImpl.java
index a85bd3d..3cef6e4 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/impl/BookImpl.java
@@ -7,8 +7,10 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
+
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.EObjectImpl;
+
 import org.examples.library.elements.Book;
 import org.examples.library.elements.BookCategory;
 import org.examples.library.elements.ElementsPackage;
@@ -467,7 +469,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: "); //$NON-NLS-1$
     result.append(title);
     result.append(", pages: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/impl/WriterImpl.java
index 41f4c46..0db3837 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/impl/WriterImpl.java
@@ -5,6 +5,7 @@
 
 import java.util.Collection;
 import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/util/ElementsSwitch.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/util/ElementsSwitch.java
index 27b3d13..8632f2d 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/util/ElementsSwitch.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/elements/util/ElementsSwitch.java
@@ -4,6 +4,7 @@
 package org.examples.library.elements.util;
 
 import org.eclipse.emf.ecore.EObject;
+
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
 import org.examples.library.elements.*;
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/hr/impl/PersonImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/hr/impl/PersonImpl.java
index 0ea32fe..d0ea37f 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/hr/impl/PersonImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/hr/impl/PersonImpl.java
@@ -297,7 +297,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/impl/LibraryImpl.java
index 506b8b1..6f0ad65 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/impl/LibraryImpl.java
@@ -329,7 +329,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/util/LibrarySwitch.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/util/LibrarySwitch.java
index 04d21a1..dcce0ba 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/util/LibrarySwitch.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/1.4_5.0/reload/library.xsds/src/org/examples/library/util/LibrarySwitch.java
@@ -4,6 +4,7 @@
 package org.examples.library.util;
 
 import org.eclipse.emf.ecore.EObject;
+
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
 import org.examples.library.*;
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/BookImpl.java
index c7ff7e7..414ea21 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/BookImpl.java
@@ -404,7 +404,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: ");
     result.append(title);
     result.append(", pages: ");
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/LibraryImpl.java
index be33882..6508d63 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/LibraryImpl.java
@@ -270,7 +270,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/WriterImpl.java
index f4b616e..2c40a08 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.ecore/src/org/examples/library/impl/WriterImpl.java
@@ -248,7 +248,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/BookImpl.java
index cb5d98c..43bbc8a 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/BookImpl.java
@@ -404,7 +404,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: ");
     result.append(title);
     result.append(", pages: ");
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/LibraryImpl.java
index 255526a..50eced3 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/LibraryImpl.java
@@ -566,7 +566,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(", bookByTitleMap: ");
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/MapOfDataTypesImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/MapOfDataTypesImpl.java
index 86c2f7d..2dde47c 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/MapOfDataTypesImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/MapOfDataTypesImpl.java
@@ -225,7 +225,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (key: ");
     result.append(key);
     result.append(", value: ");
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/WriterImpl.java
index e15101c..07c107b 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/WriterImpl.java
@@ -248,7 +248,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/WriterNameMapImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/WriterNameMapImpl.java
index fcf5b5a..3ca7a55 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/WriterNameMapImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.java/src/org/eclipse/example/library/impl/WriterNameMapImpl.java
@@ -238,7 +238,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (key: ");
     result.append(key);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/BookImpl.java
index c7ff7e7..414ea21 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/BookImpl.java
@@ -404,7 +404,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: ");
     result.append(title);
     result.append(", pages: ");
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/LibraryImpl.java
index be33882..6508d63 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/LibraryImpl.java
@@ -270,7 +270,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/WriterImpl.java
index f4b616e..2c40a08 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.rose/src/org/examples/library/impl/WriterImpl.java
@@ -248,7 +248,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/BookImpl.java
index fd24477..8594049 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/BookImpl.java
@@ -476,7 +476,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: ");
     result.append(title);
     result.append(", pages: ");
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/LibraryImpl.java
index be33882..6508d63 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/LibraryImpl.java
@@ -270,7 +270,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/WriterImpl.java
index f4b616e..2c40a08 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsd/src/org/examples/library/impl/WriterImpl.java
@@ -248,7 +248,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/elements/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/elements/impl/BookImpl.java
index f2dcd38..e2d7a69 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/elements/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/elements/impl/BookImpl.java
@@ -476,7 +476,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: ");
     result.append(title);
     result.append(", pages: ");
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/elements/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/elements/impl/WriterImpl.java
index f0c4263..f8b3435 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/elements/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/elements/impl/WriterImpl.java
@@ -248,7 +248,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/impl/LibraryImpl.java
index 4d32182..b24eee7 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/creation/library.xsds/src/org/examples/library/impl/LibraryImpl.java
@@ -271,7 +271,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: ");
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/hr/impl/PersonImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/hr/impl/PersonImpl.java
index eac987d..1d801b4 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/hr/impl/PersonImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/hr/impl/PersonImpl.java
@@ -250,7 +250,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/library/impl/BookImpl.java
index 56205a4..0b28bf6 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/library/impl/BookImpl.java
@@ -404,7 +404,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: "); //$NON-NLS-1$
     result.append(title);
     result.append(", pages: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/library/impl/LibraryImpl.java
index 6976265..3cd39d7 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.ecore/src/org/examples/library/impl/LibraryImpl.java
@@ -382,7 +382,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(", site: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/hr/impl/PersonImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/hr/impl/PersonImpl.java
index eac987d..1d801b4 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/hr/impl/PersonImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/hr/impl/PersonImpl.java
@@ -250,7 +250,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/library/impl/BookImpl.java
index 56205a4..0b28bf6 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/library/impl/BookImpl.java
@@ -404,7 +404,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: "); //$NON-NLS-1$
     result.append(title);
     result.append(", pages: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/library/impl/LibraryImpl.java
index 6976265..3cd39d7 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.rose/src/org/examples/library/impl/LibraryImpl.java
@@ -382,7 +382,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(", site: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/BookImpl.java
index c9a4506..c178316 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/BookImpl.java
@@ -476,7 +476,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: "); //$NON-NLS-1$
     result.append(title);
     result.append(", pages: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/LibraryImpl.java
index 4693c97..c0ef6df 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/LibraryImpl.java
@@ -324,7 +324,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(", site: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/WriterImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/WriterImpl.java
index 32595e2..316af62 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/WriterImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsd/src/org/examples/library/impl/WriterImpl.java
@@ -248,7 +248,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/elements/impl/BookImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/elements/impl/BookImpl.java
index 9cd2a72..0c9f00e 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/elements/impl/BookImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/elements/impl/BookImpl.java
@@ -472,7 +472,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (title: "); //$NON-NLS-1$
     result.append(title);
     result.append(", pages: "); //$NON-NLS-1$
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/hr/impl/PersonImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/hr/impl/PersonImpl.java
index 0ea32fe..d0ea37f 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/hr/impl/PersonImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/hr/impl/PersonImpl.java
@@ -297,7 +297,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');
diff --git a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/impl/LibraryImpl.java b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/impl/LibraryImpl.java
index 506b8b1..6f0ad65 100644
--- a/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/impl/LibraryImpl.java
+++ b/tests/org.eclipse.emf.test.tools/data/ant.expected/models/5.0/reload/library.xsds/src/org/examples/library/impl/LibraryImpl.java
@@ -329,7 +329,7 @@
   {
     if (eIsProxy()) return super.toString();
 
-    StringBuffer result = new StringBuffer(super.toString());
+    StringBuilder result = new StringBuilder(super.toString());
     result.append(" (name: "); //$NON-NLS-1$
     result.append(name);
     result.append(')');