@Override public String convert(TypeMirror typeMirror) throws TemplateModelException { boolean isArray = typeMirror instanceof ArrayType; String conversion = super.convert(typeMirror); //if we're using converting to a java 5+ client code, take into account the type arguments. if ((isJdk15()) && (typeMirror instanceof DeclaredType)) { DeclaredType declaredType = (DeclaredType) typeMirror; Collection<TypeMirror> actualTypeArguments = declaredType.getActualTypeArguments(); if (actualTypeArguments.size() > 0) { StringBuilder typeArgs = new StringBuilder("<"); Iterator<TypeMirror> it = actualTypeArguments.iterator(); while (it.hasNext()) { TypeMirror mirror = it.next(); typeArgs.append(convert(mirror)); if (it.hasNext()) { typeArgs.append(", "); } } typeArgs.append(">"); conversion += typeArgs; } } if (isArray) { conversion += "[]"; } return conversion; }