[java] IDEA-364759 JavaMainMethodProvider and PsiMethodUtil: create getMainClassQualifiedName()

This also deprecates PsiMethodUtil#getMainJVMClassName and JavaMainMethodProvider#getMainClassName because they are badly named and have no usages that make sense.

GitOrigin-RevId: fab10314a594d94b8f1b7eb76b451f77f284a6eb
This commit is contained in:
Bartek Pacia
2025-09-15 22:53:18 +00:00
committed by intellij-monorepo-bot
parent 50342e76d7
commit 4979c6d877
2 changed files with 25 additions and 1 deletions
@@ -52,13 +52,24 @@ public interface JavaMainMethodProvider extends PossiblyDumbAware {
/**
* @param clazz class to check
* @return a pretty class name. e.x. for Kotlin it allows to return `MyClass` instead of `MyClass.Companion`
* @return a pretty class name. e.x. for Kotlin it allows returning `MyClass` instead of `MyClass.Companion`
* @deprecated Use {@link #getMainClassQualifiedName(PsiClass)} instead.
*/
@Deprecated
@Contract(pure = true)
default @Nullable String getMainClassName(@NotNull PsiClass clazz) {
return ClassUtil.getJVMClassName(clazz);
}
/**
* @param clazz class to check
* @return a "prettified" qualified class name. E.g., for Kotlin it allows returning `MyClass` instead of `MyClass.Companion`
*/
@Contract(pure = true)
default @Nullable String getMainClassQualifiedName(@NotNull PsiClass clazz) {
return clazz.getQualifiedName();
}
/**
* @param psiElement element to check
* @return true if the given element or its parent is the main method, false otherwise
@@ -275,6 +275,10 @@ public final class PsiMethodUtil {
}
}
/**
* @deprecated Use {@link #getMainClassQualifiedName(PsiClass)} instead.
*/
@Deprecated
public static @Nullable String getMainJVMClassName(@NotNull PsiClass psiClass) {
JavaMainMethodProvider mainMethodProvider = getApplicableMainMethodProvider(psiClass);
if (mainMethodProvider != null) {
@@ -284,6 +288,15 @@ public final class PsiMethodUtil {
return ClassUtil.getJVMClassName(psiClass);
}
public static @Nullable String getMainClassQualifiedName(@NotNull PsiClass psiClass) {
JavaMainMethodProvider mainMethodProvider = getApplicableMainMethodProvider(psiClass);
if (mainMethodProvider != null) {
return mainMethodProvider.getMainClassQualifiedName(psiClass);
}
return psiClass.getQualifiedName();
}
public static @Nullable PsiMethod findMainInClass(final @NotNull PsiClass aClass) {
if (!MAIN_CLASS.value(aClass)) return null;
return findMainMethod(aClass);