public StringBuilder getQualifiedName(StringBuilder b, boolean generic) { if (getEnclosingType() instanceof ClassRef) { getEnclosingType().getQualifiedName(b, generic).append('$'); } else if (getEnclosingType() instanceof NamespaceRef) { getEnclosingType().getQualifiedName(b, generic).append('.'); } b.append(ident.simpleName); if (generic && ident.templateArguments != null) { int args = 0; for (int i = 0, n = ident.templateArguments.length; i < n; i++) { TemplateArg arg = ident.templateArguments[i]; if (!(arg instanceof TypeRef)) { continue; } if (args == 0) { b.append('<'); } else { b.append(", "); } ((TypeRef) arg).getQualifiedName(b, generic); args++; } if (args > 0) { b.append('>'); } } return b; }