public static @Nls String generateClassInfo(PsiClass aClass) {
    @Nls StringBuilder buffer = new StringBuilder();

    if (aClass instanceof PsiAnonymousClass) return JavaElementKind.ANONYMOUS_CLASS.subject();

    JavaDocInfoGenerator docInfoGenerator = getDocInfoGenerator(aClass.getProject(), false);

    generateOrderEntryAndPackageInfo(buffer, aClass);
    docInfoGenerator.generateTooltipAnnotations(aClass, buffer);
    generateModifiers(buffer, aClass);

    JavaDocHighlightingManagerImpl highlightingManager = JavaDocHighlightingManagerImpl.getInstance();

    final String classString = aClass.isAnnotationType() ? '@' + PsiKeyword.INTERFACE :
                               aClass.isInterface() ? PsiKeyword.INTERFACE :
                               aClass instanceof PsiTypeParameter ? JavaBundle.message("java.terms.type.parameter") :
                               aClass.isEnum() ? PsiKeyword.ENUM :
                               aClass.isRecord() ? PsiKeyword.RECORD :
                               PsiKeyword.CLASS;
    appendStyledSignatureFragment(buffer, classString, highlightingManager.getKeywordAttributes()).append(" ");

    appendStyledSignatureFragment(
      buffer,
      JavaDocUtil.getShortestClassName(aClass, aClass), highlightingManager.getClassDeclarationAttributes(aClass)
    );

    generateTypeParameters(aClass, buffer, highlightingManager);

    if (!aClass.isEnum() && !aClass.isAnnotationType()) {
      PsiReferenceList extendsList = aClass.getExtendsList();
      writeExtends(aClass, buffer, extendsList == null ? PsiClassType.EMPTY_ARRAY : extendsList.getReferencedTypes(), highlightingManager);
    }

    writeImplements(aClass, buffer, aClass.getImplementsListTypes(), highlightingManager);

    return buffer.toString();
  }
public static @Nls String generateClassInfo(PsiClass aClass)