From 53177e6ac7f50411c8ffd5f0d04b847225cd73be Mon Sep 17 00:00:00 2001 From: UNV Date: Thu, 9 Apr 2026 12:43:33 +0300 Subject: [PATCH] Making ClassKind.getDescription/getDescriptionAccusative to return LocalizedValue. Deprecating getDescriptionValue/getDescriptionAccusativeValue. --- .../daemon/impl/quickfix/ClassKind.java | 12 +++-- .../quickfix/CreateClassFromUsageFix.java | 45 +++++++++---------- .../daemon/impl/quickfix/CreateClassKind.java | 14 +----- .../impl/quickfix/CreateFromUsageUtils.java | 2 +- .../quickfix/CreateInnerClassFromNewFix.java | 2 +- .../CreateInnerClassFromUsageFix.java | 4 +- .../intention/impl/CreateClassDialog.java | 2 +- 7 files changed, 35 insertions(+), 46 deletions(-) diff --git a/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInsight/daemon/impl/quickfix/ClassKind.java b/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInsight/daemon/impl/quickfix/ClassKind.java index 35d295859..e7ef25e62 100644 --- a/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInsight/daemon/impl/quickfix/ClassKind.java +++ b/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInsight/daemon/impl/quickfix/ClassKind.java @@ -22,15 +22,19 @@ * @since 2014-05-28 */ public interface ClassKind { - LocalizeValue getDescriptionValue(); + @Deprecated(forRemoval = true) + default LocalizeValue getDescriptionValue() { + return getDescription(); + } - String getDescription(); + LocalizeValue getDescription(); + @Deprecated(forRemoval = true) default LocalizeValue getDescriptionAccusativeValue() { - return getDescriptionValue(); + return getDescriptionAccusative(); } - default String getDescriptionAccusative() { + default LocalizeValue getDescriptionAccusative() { return getDescription(); } } diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateClassFromUsageFix.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateClassFromUsageFix.java index 02dbecea7..6a3a30ff4 100644 --- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateClassFromUsageFix.java +++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateClassFromUsageFix.java @@ -17,7 +17,6 @@ import com.intellij.java.language.psi.PsiClass; import com.intellij.java.language.psi.PsiJavaCodeReferenceElement; -import consulo.application.ApplicationManager; import consulo.codeEditor.Editor; import consulo.fileEditor.FileEditorManager; import consulo.fileEditor.history.IdeDocumentHistory; @@ -30,50 +29,48 @@ import consulo.navigation.OpenFileDescriptor; import consulo.navigation.OpenFileDescriptorFactory; import consulo.project.Project; -import consulo.util.lang.StringUtil; +import consulo.ui.annotation.RequiredUIAccess; /** * @author Mike */ public class CreateClassFromUsageFix extends CreateClassFromUsageBaseFix implements SyntheticIntentionAction { - public CreateClassFromUsageFix(PsiJavaCodeReferenceElement refElement, CreateClassKind kind) { super(kind, refElement); } @Override public LocalizeValue getText(String varName) { - return JavaQuickFixLocalize.createClassFromUsageText(StringUtil.capitalize(myKind.getDescription()), varName); + return JavaQuickFixLocalize.createClassFromUsageText(myKind.getDescription().capitalize(), varName); } + @RequiredUIAccess @Override - public void invoke(final Project project, Editor editor, PsiFile file) { - final PsiJavaCodeReferenceElement element = getRefElement(); + public void invoke(Project project, Editor editor, PsiFile file) { + PsiJavaCodeReferenceElement element = getRefElement(); assert element != null; if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return; String superClassName = getSuperClassName(element); - final PsiClass aClass = CreateFromUsageUtils.createClass(element, myKind, superClassName); + PsiClass aClass = CreateFromUsageUtils.createClass(element, myKind, superClassName); if (aClass == null) return; - ApplicationManager.getApplication().runWriteAction( - new Runnable() { - @Override - public void run() { - PsiJavaCodeReferenceElement refElement = element; - try { - refElement = (PsiJavaCodeReferenceElement)refElement.bindToElement(aClass); - } - catch (IncorrectOperationException e) { - LOG.error(e); - } + project.getApplication().runWriteAction(() -> { + PsiJavaCodeReferenceElement refElement = element; + try { + refElement = (PsiJavaCodeReferenceElement)refElement.bindToElement(aClass); + } + catch (IncorrectOperationException e) { + LOG.error(e); + } - IdeDocumentHistory.getInstance(project).includeCurrentPlaceAsChangePlace(); + IdeDocumentHistory.getInstance(project).includeCurrentPlaceAsChangePlace(); - OpenFileDescriptor descriptor = OpenFileDescriptorFactory.getInstance(refElement.getProject()).builder(aClass.getContainingFile().getVirtualFile()).offset(aClass.getTextOffset()).build(); - FileEditorManager.getInstance(aClass.getProject()).openTextEditor(descriptor, true); - } - } - ); + OpenFileDescriptor descriptor = OpenFileDescriptorFactory.getInstance(refElement.getProject()) + .builder(aClass.getContainingFile().getVirtualFile()) + .offset(aClass.getTextOffset()) + .build(); + FileEditorManager.getInstance(aClass.getProject()).openTextEditor(descriptor, true); + }); } @Override diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateClassKind.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateClassKind.java index da70d63c6..2a2c715d4 100644 --- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateClassKind.java +++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateClassKind.java @@ -44,22 +44,12 @@ public Image getKindIcon() { } @Override - public String getDescription() { - return getDescriptionValue().get(); - } - - @Override - public LocalizeValue getDescriptionValue() { + public LocalizeValue getDescription() { return myKind.subject(); } @Override - public LocalizeValue getDescriptionAccusativeValue() { + public LocalizeValue getDescriptionAccusative() { return myKind.object(); } - - @Override - public String getDescriptionAccusative() { - return getDescriptionAccusativeValue().get(); - } } diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java index a23fa1224..01c6c3a98 100644 --- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java +++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java @@ -328,7 +328,7 @@ public PsiClass compute() { PsiDirectory targetDirectory; if (!ApplicationManager.getApplication().isUnitTestMode()) { Project project = manager.getProject(); - LocalizeValue title = JavaQuickFixLocalize.createClassTitle(StringUtil.capitalize(classKind.getDescription())); + LocalizeValue title = JavaQuickFixLocalize.createClassTitle(classKind.getDescription().capitalize()); CreateClassDialog dialog = new CreateClassDialog(project, title, name, aPackage.getQualifiedName(), classKind, false, module){ @Override diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java index 7b4a81204..aff005a42 100644 --- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java +++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java @@ -37,7 +37,7 @@ public CreateInnerClassFromNewFix(PsiNewExpression expr) { @Override public LocalizeValue getText(String varName) { - return JavaQuickFixLocalize.createInnerClassFromUsageText(StringUtil.capitalize(CreateClassKind.CLASS.getDescription()), varName); + return JavaQuickFixLocalize.createInnerClassFromUsageText(CreateClassKind.CLASS.getDescription().capitalize(), varName); } @Override diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java index 8491efa0f..0439123fc 100644 --- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java +++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java @@ -34,7 +34,6 @@ import consulo.ui.ex.awt.JBList; import consulo.ui.ex.popup.JBPopup; import consulo.undoRedo.CommandProcessor; -import consulo.util.lang.StringUtil; import javax.swing.*; import java.util.ArrayList; @@ -47,14 +46,13 @@ * @author ven */ public class CreateInnerClassFromUsageFix extends CreateClassFromUsageBaseFix implements SyntheticIntentionAction { - public CreateInnerClassFromUsageFix(PsiJavaCodeReferenceElement refElement, CreateClassKind kind) { super(kind, refElement); } @Override public LocalizeValue getText(String varName) { - return JavaQuickFixLocalize.createInnerClassFromUsageText(StringUtil.capitalize(myKind.getDescription()), varName); + return JavaQuickFixLocalize.createInnerClassFromUsageText(myKind.getDescription().capitalize(), varName); } @Override diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/intention/impl/CreateClassDialog.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/intention/impl/CreateClassDialog.java index 9743586d1..d70f4a769 100644 --- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/intention/impl/CreateClassDialog.java +++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/intention/impl/CreateClassDialog.java @@ -104,7 +104,7 @@ public CreateClassDialog( init(); if (!myClassNameEditable) { - setTitle(CodeInsightLocalize.dialogCreateClassName(StringUtil.capitalize(kind.getDescription()), targetClassName)); + setTitle(CodeInsightLocalize.dialogCreateClassName(kind.getDescription().capitalize(), targetClassName)); } else { myInformationLabel.setText(CodeInsightLocalize.dialogCreateClassLabel(kind.getDescription()).get());