1.1 --- a/src/share/classes/com/sun/tools/javadoc/TypeMaker.java Fri Mar 04 11:33:37 2011 -0800 1.2 +++ b/src/share/classes/com/sun/tools/javadoc/TypeMaker.java Fri Mar 04 19:53:03 2011 -0800 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -27,15 +27,12 @@ 1.11 1.12 import com.sun.javadoc.*; 1.13 1.14 -import static com.sun.javadoc.LanguageVersion.*; 1.15 - 1.16 import com.sun.tools.javac.code.Symbol; 1.17 import com.sun.tools.javac.code.Symbol.ClassSymbol; 1.18 import com.sun.tools.javac.code.Type; 1.19 import com.sun.tools.javac.code.Type.ClassType; 1.20 import com.sun.tools.javac.code.Type.TypeVar; 1.21 import com.sun.tools.javac.code.Type.ArrayType; 1.22 -import com.sun.tools.javac.code.Types; 1.23 import com.sun.tools.javac.util.List; 1.24 1.25 import static com.sun.tools.javac.code.TypeTags.*; 1.26 @@ -109,12 +106,13 @@ 1.27 public static String getTypeName(Type t, boolean full) { 1.28 switch (t.tag) { 1.29 case ARRAY: 1.30 - StringBuffer dimension = new StringBuffer(); 1.31 + StringBuilder s = new StringBuilder(); 1.32 while (t.tag == ARRAY) { 1.33 - dimension = dimension.append("[]"); 1.34 + s.append("[]"); 1.35 t = ((ArrayType)t).elemtype; 1.36 } 1.37 - return getTypeName(t, full) + dimension; 1.38 + s.insert(0, getTypeName(t, full)); 1.39 + return s.toString(); 1.40 case CLASS: 1.41 return ClassDocImpl.getClassName((ClassSymbol)t.tsym, full); 1.42 default: 1.43 @@ -130,12 +128,13 @@ 1.44 static String getTypeString(DocEnv env, Type t, boolean full) { 1.45 switch (t.tag) { 1.46 case ARRAY: 1.47 - StringBuffer dimension = new StringBuffer(); 1.48 + StringBuilder s = new StringBuilder(); 1.49 while (t.tag == ARRAY) { 1.50 - dimension = dimension.append("[]"); 1.51 + s.append("[]"); 1.52 t = env.types.elemtype(t); 1.53 } 1.54 - return getTypeString(env, t, full) + dimension; 1.55 + s.insert(0, getTypeString(env, t, full)); 1.56 + return s.toString(); 1.57 case CLASS: 1.58 return ParameterizedTypeImpl. 1.59 parameterizedTypeToString(env, (ClassType)t, full); 1.60 @@ -157,7 +156,7 @@ 1.61 if (env.legacyDoclet || sym.type.getTypeArguments().isEmpty()) { 1.62 return ""; 1.63 } 1.64 - StringBuffer s = new StringBuffer(); 1.65 + StringBuilder s = new StringBuilder(); 1.66 for (Type t : sym.type.getTypeArguments()) { 1.67 s.append(s.length() == 0 ? "<" : ", "); 1.68 s.append(TypeVariableImpl.typeVarToString(env, (TypeVar)t, full)); 1.69 @@ -175,7 +174,7 @@ 1.70 if (env.legacyDoclet || cl.getTypeArguments().isEmpty()) { 1.71 return ""; 1.72 } 1.73 - StringBuffer s = new StringBuffer(); 1.74 + StringBuilder s = new StringBuilder(); 1.75 for (Type t : cl.getTypeArguments()) { 1.76 s.append(s.length() == 0 ? "<" : ", "); 1.77 s.append(getTypeString(env, t, full)); 1.78 @@ -213,9 +212,9 @@ 1.79 * For example, a two dimensional array of String returns '[][]'. 1.80 */ 1.81 public String dimension() { 1.82 - StringBuffer dimension = new StringBuffer(); 1.83 + StringBuilder dimension = new StringBuilder(); 1.84 for (Type t = arrayType; t.tag == ARRAY; t = env.types.elemtype(t)) { 1.85 - dimension = dimension.append("[]"); 1.86 + dimension.append("[]"); 1.87 } 1.88 return dimension.toString(); 1.89 } 1.90 @@ -304,6 +303,7 @@ 1.91 * 1.92 * @return name of type including any dimension information. 1.93 */ 1.94 + @Override 1.95 public String toString() { 1.96 return qualifiedTypeName() + dimension(); 1.97 }