private static void appendTypeParameters( TextBuffer buffer, List<String> parameters, List<List<GenericType>> bounds) { buffer.append('<'); for (int i = 0; i < parameters.size(); i++) { if (i > 0) { buffer.append(", "); } buffer.append(parameters.get(i)); List<GenericType> parameterBounds = bounds.get(i); if (parameterBounds.size() > 1 || !"java/lang/Object".equals(parameterBounds.get(0).value)) { buffer.append(" extends "); buffer.append(GenericMain.getGenericCastTypeName(parameterBounds.get(0))); for (int j = 1; j < parameterBounds.size(); j++) { buffer.append(" & "); buffer.append(GenericMain.getGenericCastTypeName(parameterBounds.get(j))); } } } buffer.append('>'); }