From 7c0ccb35dbf99693201e764d39c7c74d49ead74e Mon Sep 17 00:00:00 2001 From: UNV Date: Sun, 13 Apr 2025 02:49:55 +0300 Subject: [PATCH 1/2] Reformatting of query executors. --- .../gwt/impl/i18n/PropertiesSearcher.java | 79 +++++------- .../GwtToHtmlTagIdReferencesSearcher.java | 120 ++++++++---------- ...wtAllOverridingServiceMethodsSearcher.java | 52 ++++---- .../gwt/impl/rpc/GwtAsyncMethodSearcher.java | 49 ++++--- .../GwtOverridingServiceMethodsSearcher.java | 54 ++++---- .../gwt/impl/rpc/GwtSearcherBase.java | 45 +++---- 6 files changed, 180 insertions(+), 219 deletions(-) diff --git a/plugin/src/main/java/com/intellij/gwt/impl/i18n/PropertiesSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/i18n/PropertiesSearcher.java index f1ac968..9a8dfeb 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/i18n/PropertiesSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/i18n/PropertiesSearcher.java @@ -33,48 +33,39 @@ * @author peter */ @ExtensionImpl -public class PropertiesSearcher implements DefinitionsScopedSearchExecutor -{ - @Override - public boolean execute(@Nonnull DefinitionsScopedSearch.SearchParameters queryParameters, @Nonnull Processor consumer) - { - final PsiElement sourceElement = queryParameters.getElement(); - if(sourceElement instanceof PsiMethod) - { - final IProperty[] properties = ApplicationManager.getApplication().runReadAction(new Computable() - { - @Override - public IProperty[] compute() - { - return GwtI18nManager.getInstance(sourceElement.getProject()).getProperties((PsiMethod) sourceElement); - } - }); - for(IProperty property : properties) - { - if(!consumer.process(property.getPsiElement())) - { - return false; - } - } - } - else if(sourceElement instanceof PsiClass) - { - final PropertiesFile[] files = ApplicationManager.getApplication().runReadAction(new Computable() - { - @Override - public PropertiesFile[] compute() - { - return GwtI18nManager.getInstance(sourceElement.getProject()).getPropertiesFiles((PsiClass) sourceElement); - } - }); - for(PropertiesFile file : files) - { - if(!consumer.process(file.getContainingFile())) - { - return false; - } - } - } - return true; - } +public class PropertiesSearcher implements DefinitionsScopedSearchExecutor { + @Override + public boolean execute( + @Nonnull DefinitionsScopedSearch.SearchParameters queryParameters, + @Nonnull Processor consumer + ) { + final PsiElement sourceElement = queryParameters.getElement(); + if (sourceElement instanceof PsiMethod) { + final IProperty[] properties = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override + public IProperty[] compute() { + return GwtI18nManager.getInstance(sourceElement.getProject()).getProperties((PsiMethod)sourceElement); + } + }); + for (IProperty property : properties) { + if (!consumer.process(property.getPsiElement())) { + return false; + } + } + } + else if (sourceElement instanceof PsiClass) { + final PropertiesFile[] files = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override + public PropertiesFile[] compute() { + return GwtI18nManager.getInstance(sourceElement.getProject()).getPropertiesFiles((PsiClass)sourceElement); + } + }); + for (PropertiesFile file : files) { + if (!consumer.process(file.getContainingFile())) { + return false; + } + } + } + return true; + } } diff --git a/plugin/src/main/java/com/intellij/gwt/impl/references/search/GwtToHtmlTagIdReferencesSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/references/search/GwtToHtmlTagIdReferencesSearcher.java index a7382e2..bc36f90 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/references/search/GwtToHtmlTagIdReferencesSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/references/search/GwtToHtmlTagIdReferencesSearcher.java @@ -38,78 +38,66 @@ * @author nik */ @ExtensionImpl -public class GwtToHtmlTagIdReferencesSearcher implements ReferencesSearchQueryExecutor -{ - @Override - public boolean execute(final ReferencesSearch.SearchParameters queryParameters, final Processor consumer) - { - return ReadAction.compute(() -> doExecute(queryParameters, consumer)); - } +public class GwtToHtmlTagIdReferencesSearcher implements ReferencesSearchQueryExecutor { + @Override + public boolean execute(final ReferencesSearch.SearchParameters queryParameters, final Processor consumer) { + return ReadAction.compute(() -> doExecute(queryParameters, consumer)); + } - private static boolean doExecute(final ReferencesSearch.SearchParameters queryParameters, final Processor consumer) - { - final PsiElement element = queryParameters.getElementToSearch(); - if(!(element instanceof XmlAttributeValue)) - { - return true; - } + private static boolean doExecute( + final ReferencesSearch.SearchParameters queryParameters, + final Processor consumer + ) { + final PsiElement element = queryParameters.getElementToSearch(); + if (!(element instanceof XmlAttributeValue)) { + return true; + } - final PsiElement parent = element.getParent(); - if(!(parent instanceof XmlAttribute) || !"id".equals(((XmlAttribute) parent).getLocalName())) - { - return true; - } - String id = ((XmlAttributeValue) element).getValue(); + final PsiElement parent = element.getParent(); + if (!(parent instanceof XmlAttribute) || !"id".equals(((XmlAttribute)parent).getLocalName())) { + return true; + } + String id = ((XmlAttributeValue)element).getValue(); - final PsiElement tag = parent.getParent(); - if(!(tag instanceof XmlTag)) - { - return true; - } + final PsiElement tag = parent.getParent(); + if (!(tag instanceof XmlTag)) { + return true; + } - final PsiFile file = parent.getContainingFile(); - if(!file.getLanguage().equals(HTMLLanguage.INSTANCE) && !file.getLanguage().equals(XHTMLLanguage.INSTANCE)) - { - return true; - } + final PsiFile file = parent.getContainingFile(); + if (!file.getLanguage().equals(HTMLLanguage.INSTANCE) && !file.getLanguage().equals(XHTMLLanguage.INSTANCE)) { + return true; + } - final GwtModulesManager gwtModulesManager = GwtModulesManager.getInstance(file.getProject()); - final VirtualFile virtualFile = file.getVirtualFile(); - if(virtualFile == null) - { - return true; - } + final GwtModulesManager gwtModulesManager = GwtModulesManager.getInstance(file.getProject()); + final VirtualFile virtualFile = file.getVirtualFile(); + if (virtualFile == null) { + return true; + } - final GwtModule gwtModule = gwtModulesManager.findGwtModuleByClientOrPublicFile(virtualFile); - if(gwtModule == null) - { - return true; - } + final GwtModule gwtModule = gwtModulesManager.findGwtModuleByClientOrPublicFile(virtualFile); + if (gwtModule == null) { + return true; + } - final PsiSearchHelper searchHelper = PsiSearchHelper.SERVICE.getInstance(element.getProject()); - return searchHelper.processElementsWithWord(new TextOccurenceProcessor() - { - @Override - public boolean execute(PsiElement element, int offsetInElement) - { - if(!(element instanceof PsiLiteralExpression)) - { - return true; - } + final PsiSearchHelper searchHelper = PsiSearchHelper.SERVICE.getInstance(element.getProject()); + return searchHelper.processElementsWithWord(new TextOccurenceProcessor() { + @Override + public boolean execute(PsiElement element, int offsetInElement) { + if (!(element instanceof PsiLiteralExpression)) { + return true; + } - final PsiReference[] references = element.getReferences(); - for(PsiReference reference : references) - { - if(reference instanceof GwtToHtmlTagReference && reference.isReferenceTo(tag)) - { - if(!consumer.process(reference)) - { - return false; - } - } - } - return true; - } - }, queryParameters.getScope(), id, UsageSearchContext.IN_STRINGS, true); - } + final PsiReference[] references = element.getReferences(); + for (PsiReference reference : references) { + if (reference instanceof GwtToHtmlTagReference && reference.isReferenceTo(tag)) { + if (!consumer.process(reference)) { + return false; + } + } + } + return true; + } + }, queryParameters.getScope(), id, UsageSearchContext.IN_STRINGS, true); + } } diff --git a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAllOverridingServiceMethodsSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAllOverridingServiceMethodsSearcher.java index f6456d2..084830a 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAllOverridingServiceMethodsSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAllOverridingServiceMethodsSearcher.java @@ -14,33 +14,29 @@ * @author nik */ @ExtensionImpl -public class GwtAllOverridingServiceMethodsSearcher extends GwtSearcherBase, AllOverridingMethodsSearch.SearchParameters> implements AllOverridingMethodsSearchExecutor -{ - @Override - protected PsiFile getContainingFile(final AllOverridingMethodsSearch.SearchParameters parameters) - { - return parameters.getPsiClass().getContainingFile(); - } +public class GwtAllOverridingServiceMethodsSearcher extends GwtSearcherBase, AllOverridingMethodsSearch.SearchParameters> implements AllOverridingMethodsSearchExecutor { + @Override + protected PsiFile getContainingFile(final AllOverridingMethodsSearch.SearchParameters parameters) { + return parameters.getPsiClass().getContainingFile(); + } - @Override - public boolean doExecute(final AllOverridingMethodsSearch.SearchParameters queryParameters, final Processor> consumer) - { - PsiClass async = queryParameters.getPsiClass(); - PsiClass sync = RemoteServiceUtil.findSynchronousInterface(async); - if(sync != null) - { - for(PsiMethod method : async.getMethods()) - { - PsiMethod syncMethod = RemoteServiceUtil.findMethodInSync(method, sync); - if(syncMethod != null) - { - if(!consumer.process(Pair.create(method, syncMethod))) - { - return false; - } - } - } - } - return true; - } + @Override + public boolean doExecute( + final AllOverridingMethodsSearch.SearchParameters queryParameters, + final Processor> consumer + ) { + PsiClass async = queryParameters.getPsiClass(); + PsiClass sync = RemoteServiceUtil.findSynchronousInterface(async); + if (sync != null) { + for (PsiMethod method : async.getMethods()) { + PsiMethod syncMethod = RemoteServiceUtil.findMethodInSync(method, sync); + if (syncMethod != null) { + if (!consumer.process(Pair.create(method, syncMethod))) { + return false; + } + } + } + } + return true; + } } diff --git a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAsyncMethodSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAsyncMethodSearcher.java index d4d4bbf..5548c62 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAsyncMethodSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAsyncMethodSearcher.java @@ -15,31 +15,28 @@ * @author nik */ @ExtensionImpl -public class GwtAsyncMethodSearcher extends GwtSearcherBase implements SuperMethodsSearchExecutor -{ - @Override - protected PsiFile getContainingFile(final SuperMethodsSearch.SearchParameters parameters) - { - return parameters.getMethod().getContainingFile(); - } +public class GwtAsyncMethodSearcher extends GwtSearcherBase implements SuperMethodsSearchExecutor { + @Override + protected PsiFile getContainingFile(final SuperMethodsSearch.SearchParameters parameters) { + return parameters.getMethod().getContainingFile(); + } - @Override - public boolean doExecute(final SuperMethodsSearch.SearchParameters queryParameters, final Processor consumer) - { - PsiMethod method = queryParameters.getMethod(); - PsiClass sync = method.getContainingClass(); - PsiClass async = RemoteServiceUtil.findAsynchronousInterface(sync); - if(async != null) - { - PsiMethod asyncMethod = RemoteServiceUtil.findMethodInAsync(method, async); - if(asyncMethod != null) - { - if(!consumer.process(MethodSignatureBackedByPsiMethod.create(asyncMethod, PsiSubstitutor.EMPTY))) - { - return false; - } - } - } - return true; - } + @Override + public boolean doExecute( + final SuperMethodsSearch.SearchParameters queryParameters, + final Processor consumer + ) { + PsiMethod method = queryParameters.getMethod(); + PsiClass sync = method.getContainingClass(); + PsiClass async = RemoteServiceUtil.findAsynchronousInterface(sync); + if (async != null) { + PsiMethod asyncMethod = RemoteServiceUtil.findMethodInAsync(method, async); + if (asyncMethod != null) { + if (!consumer.process(MethodSignatureBackedByPsiMethod.create(asyncMethod, PsiSubstitutor.EMPTY))) { + return false; + } + } + } + return true; + } } diff --git a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtOverridingServiceMethodsSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtOverridingServiceMethodsSearcher.java index b96b6ef..12cab79 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtOverridingServiceMethodsSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtOverridingServiceMethodsSearcher.java @@ -13,35 +13,29 @@ * @author nik */ @ExtensionImpl -public class GwtOverridingServiceMethodsSearcher extends GwtSearcherBase implements OverridingMethodsSearchExecutor -{ - @Override - protected PsiFile getContainingFile(final OverridingMethodsSearch.SearchParameters parameters) - { - return parameters.getMethod().getContainingFile(); - } +public class GwtOverridingServiceMethodsSearcher extends GwtSearcherBase implements OverridingMethodsSearchExecutor { + @Override + protected PsiFile getContainingFile(final OverridingMethodsSearch.SearchParameters parameters) { + return parameters.getMethod().getContainingFile(); + } - @Override - public boolean doExecute(final OverridingMethodsSearch.SearchParameters queryParameters, final Processor consumer) - { - PsiMethod method = queryParameters.getMethod(); - PsiClass async = method.getContainingClass(); - PsiClass sync = RemoteServiceUtil.findSynchronousInterface(async); - if(sync != null) - { - PsiMethod syncMethod = RemoteServiceUtil.findMethodInSync(method, sync); - if(syncMethod != null) - { - if(!consumer.process(syncMethod)) - { - return false; - } - if(!OverridingMethodsSearch.search(syncMethod, queryParameters.getScope(), queryParameters.isCheckDeep()).forEach(consumer)) - { - return false; - } - } - } - return true; - } + @Override + public boolean doExecute(final OverridingMethodsSearch.SearchParameters queryParameters, final Processor consumer) { + PsiMethod method = queryParameters.getMethod(); + PsiClass async = method.getContainingClass(); + PsiClass sync = RemoteServiceUtil.findSynchronousInterface(async); + if (sync != null) { + PsiMethod syncMethod = RemoteServiceUtil.findMethodInSync(method, sync); + if (syncMethod != null) { + if (!consumer.process(syncMethod)) { + return false; + } + if (!OverridingMethodsSearch.search(syncMethod, queryParameters.getScope(), queryParameters.isCheckDeep()) + .forEach(consumer)) { + return false; + } + } + } + return true; + } } diff --git a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtSearcherBase.java b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtSearcherBase.java index 78fc2ba..a0bd6e2 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtSearcherBase.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtSearcherBase.java @@ -11,31 +11,26 @@ /** * @author nik */ -public abstract class GwtSearcherBase implements QueryExecutor -{ - @Override - public boolean execute(final Param queryParameters, final Processor consumer) - { - return ApplicationManager.getApplication().runReadAction(new Computable() - { - @Override - public Boolean compute() - { - PsiFile file = getContainingFile(queryParameters); - if(file != null) - { - GoogleGwtModuleExtension gwtFacet = GwtModuleExtensionUtil.findModuleExtension(file.getProject(), file.getVirtualFile()); - if(gwtFacet != null) - { - return doExecute(queryParameters, consumer); - } - } - return true; - } - }); - } +public abstract class GwtSearcherBase implements QueryExecutor { + @Override + public boolean execute(final Param queryParameters, final Processor consumer) { + return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override + public Boolean compute() { + PsiFile file = getContainingFile(queryParameters); + if (file != null) { + GoogleGwtModuleExtension gwtFacet = + GwtModuleExtensionUtil.findModuleExtension(file.getProject(), file.getVirtualFile()); + if (gwtFacet != null) { + return doExecute(queryParameters, consumer); + } + } + return true; + } + }); + } - protected abstract PsiFile getContainingFile(Param parameters); + protected abstract PsiFile getContainingFile(Param parameters); - protected abstract boolean doExecute(final Param queryParameters, final Processor consumer); + protected abstract boolean doExecute(final Param queryParameters, final Processor consumer); } From e40bca32637f2aa9d1ab69ee9229111784e64dae Mon Sep 17 00:00:00 2001 From: UNV Date: Sun, 13 Apr 2025 03:39:31 +0300 Subject: [PATCH 2/2] Refactoring of query executors. --- .../gwt/impl/i18n/PropertiesSearcher.java | 36 ++++------ .../GwtToHtmlTagIdReferencesSearcher.java | 69 +++++++++++-------- ...wtAllOverridingServiceMethodsSearcher.java | 17 ++--- .../gwt/impl/rpc/GwtAsyncMethodSearcher.java | 14 ++-- .../GwtOverridingServiceMethodsSearcher.java | 10 +-- .../gwt/impl/rpc/GwtSearcherBase.java | 31 ++++----- 6 files changed, 91 insertions(+), 86 deletions(-) diff --git a/plugin/src/main/java/com/intellij/gwt/impl/i18n/PropertiesSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/i18n/PropertiesSearcher.java index 9a8dfeb..8ce6e70 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/i18n/PropertiesSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/i18n/PropertiesSearcher.java @@ -20,15 +20,15 @@ import com.intellij.lang.properties.IProperty; import com.intellij.lang.properties.psi.PropertiesFile; import consulo.annotation.component.ExtensionImpl; -import consulo.application.ApplicationManager; -import consulo.application.util.function.Computable; -import consulo.application.util.function.Processor; +import consulo.application.Application; import consulo.language.psi.PsiElement; import consulo.language.psi.search.DefinitionsScopedSearch; import consulo.language.psi.search.DefinitionsScopedSearchExecutor; - import jakarta.annotation.Nonnull; +import java.util.function.Predicate; +import java.util.function.Supplier; + /** * @author peter */ @@ -37,31 +37,25 @@ public class PropertiesSearcher implements DefinitionsScopedSearchExecutor { @Override public boolean execute( @Nonnull DefinitionsScopedSearch.SearchParameters queryParameters, - @Nonnull Processor consumer + @Nonnull Predicate consumer ) { final PsiElement sourceElement = queryParameters.getElement(); - if (sourceElement instanceof PsiMethod) { - final IProperty[] properties = ApplicationManager.getApplication().runReadAction(new Computable() { - @Override - public IProperty[] compute() { - return GwtI18nManager.getInstance(sourceElement.getProject()).getProperties((PsiMethod)sourceElement); - } - }); + if (sourceElement instanceof PsiMethod method) { + IProperty[] properties = Application.get().runReadAction( + (Supplier)() -> GwtI18nManager.getInstance(method.getProject()).getProperties(method) + ); for (IProperty property : properties) { - if (!consumer.process(property.getPsiElement())) { + if (!consumer.test(property.getPsiElement())) { return false; } } } - else if (sourceElement instanceof PsiClass) { - final PropertiesFile[] files = ApplicationManager.getApplication().runReadAction(new Computable() { - @Override - public PropertiesFile[] compute() { - return GwtI18nManager.getInstance(sourceElement.getProject()).getPropertiesFiles((PsiClass)sourceElement); - } - }); + else if (sourceElement instanceof PsiClass psiClass) { + final PropertiesFile[] files = Application.get().runReadAction( + (Supplier)() -> GwtI18nManager.getInstance(psiClass.getProject()).getPropertiesFiles(psiClass) + ); for (PropertiesFile file : files) { - if (!consumer.process(file.getContainingFile())) { + if (!consumer.test(file.getContainingFile())) { return false; } } diff --git a/plugin/src/main/java/com/intellij/gwt/impl/references/search/GwtToHtmlTagIdReferencesSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/references/search/GwtToHtmlTagIdReferencesSearcher.java index bc36f90..4cec8dd 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/references/search/GwtToHtmlTagIdReferencesSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/references/search/GwtToHtmlTagIdReferencesSearcher.java @@ -20,9 +20,10 @@ import com.intellij.gwt.module.model.GwtModule; import com.intellij.gwt.impl.references.GwtToHtmlTagReference; import com.intellij.java.language.psi.PsiLiteralExpression; +import consulo.annotation.access.RequiredReadAction; import consulo.annotation.component.ExtensionImpl; -import consulo.application.ReadAction; -import consulo.application.util.function.Processor; +import consulo.application.AccessRule; +import consulo.language.Language; import consulo.language.psi.PsiElement; import consulo.language.psi.PsiFile; import consulo.language.psi.PsiReference; @@ -33,6 +34,9 @@ import consulo.xml.psi.xml.XmlAttribute; import consulo.xml.psi.xml.XmlAttributeValue; import consulo.xml.psi.xml.XmlTag; +import jakarta.annotation.Nonnull; + +import java.util.function.Predicate; /** * @author nik @@ -40,64 +44,69 @@ @ExtensionImpl public class GwtToHtmlTagIdReferencesSearcher implements ReferencesSearchQueryExecutor { @Override - public boolean execute(final ReferencesSearch.SearchParameters queryParameters, final Processor consumer) { - return ReadAction.compute(() -> doExecute(queryParameters, consumer)); + public boolean execute( + @Nonnull ReferencesSearch.SearchParameters queryParameters, + @Nonnull Predicate consumer + ) { + return AccessRule.read(() -> doExecute(queryParameters, consumer)); } + @RequiredReadAction private static boolean doExecute( - final ReferencesSearch.SearchParameters queryParameters, - final Processor consumer + ReferencesSearch.SearchParameters queryParameters, + Predicate consumer ) { - final PsiElement element = queryParameters.getElementToSearch(); - if (!(element instanceof XmlAttributeValue)) { + PsiElement element = queryParameters.getElementToSearch(); + if (!(element instanceof XmlAttributeValue attrValue)) { return true; } - final PsiElement parent = element.getParent(); - if (!(parent instanceof XmlAttribute) || !"id".equals(((XmlAttribute)parent).getLocalName())) { + PsiElement parent = element.getParent(); + if (!(parent instanceof XmlAttribute attr && "id".equals(attr.getLocalName()))) { return true; } - String id = ((XmlAttributeValue)element).getValue(); + String id = attrValue.getValue(); - final PsiElement tag = parent.getParent(); + PsiElement tag = parent.getParent(); if (!(tag instanceof XmlTag)) { return true; } - final PsiFile file = parent.getContainingFile(); - if (!file.getLanguage().equals(HTMLLanguage.INSTANCE) && !file.getLanguage().equals(XHTMLLanguage.INSTANCE)) { + PsiFile file = parent.getContainingFile(); + Language language = file.getLanguage(); + if (!language.equals(HTMLLanguage.INSTANCE) && !language.equals(XHTMLLanguage.INSTANCE)) { return true; } - final GwtModulesManager gwtModulesManager = GwtModulesManager.getInstance(file.getProject()); - final VirtualFile virtualFile = file.getVirtualFile(); + GwtModulesManager gwtModulesManager = GwtModulesManager.getInstance(file.getProject()); + VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile == null) { return true; } - final GwtModule gwtModule = gwtModulesManager.findGwtModuleByClientOrPublicFile(virtualFile); + GwtModule gwtModule = gwtModulesManager.findGwtModuleByClientOrPublicFile(virtualFile); if (gwtModule == null) { return true; } - final PsiSearchHelper searchHelper = PsiSearchHelper.SERVICE.getInstance(element.getProject()); - return searchHelper.processElementsWithWord(new TextOccurenceProcessor() { - @Override - public boolean execute(PsiElement element, int offsetInElement) { - if (!(element instanceof PsiLiteralExpression)) { + PsiSearchHelper searchHelper = PsiSearchHelper.SERVICE.getInstance(element.getProject()); + return searchHelper.processElementsWithWord( + (element1, offsetInElement) -> { + if (!(element1 instanceof PsiLiteralExpression)) { return true; } - final PsiReference[] references = element.getReferences(); - for (PsiReference reference : references) { - if (reference instanceof GwtToHtmlTagReference && reference.isReferenceTo(tag)) { - if (!consumer.process(reference)) { - return false; - } + for (PsiReference reference : element1.getReferences()) { + if (reference instanceof GwtToHtmlTagReference && reference.isReferenceTo(tag) && !consumer.test(reference)) { + return false; } } return true; - } - }, queryParameters.getScope(), id, UsageSearchContext.IN_STRINGS, true); + }, + queryParameters.getScope(), + id, + UsageSearchContext.IN_STRINGS, + true + ); } } diff --git a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAllOverridingServiceMethodsSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAllOverridingServiceMethodsSearcher.java index 084830a..e9246d5 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAllOverridingServiceMethodsSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAllOverridingServiceMethodsSearcher.java @@ -6,15 +6,18 @@ import com.intellij.java.language.psi.PsiClass; import com.intellij.java.language.psi.PsiMethod; import consulo.annotation.component.ExtensionImpl; -import consulo.application.util.function.Processor; import consulo.language.psi.PsiFile; +import consulo.util.lang.Couple; import consulo.util.lang.Pair; +import java.util.function.Predicate; + /** * @author nik */ @ExtensionImpl -public class GwtAllOverridingServiceMethodsSearcher extends GwtSearcherBase, AllOverridingMethodsSearch.SearchParameters> implements AllOverridingMethodsSearchExecutor { +public class GwtAllOverridingServiceMethodsSearcher extends GwtSearcherBase, AllOverridingMethodsSearch.SearchParameters> + implements AllOverridingMethodsSearchExecutor { @Override protected PsiFile getContainingFile(final AllOverridingMethodsSearch.SearchParameters parameters) { return parameters.getPsiClass().getContainingFile(); @@ -22,18 +25,16 @@ protected PsiFile getContainingFile(final AllOverridingMethodsSearch.SearchParam @Override public boolean doExecute( - final AllOverridingMethodsSearch.SearchParameters queryParameters, - final Processor> consumer + AllOverridingMethodsSearch.SearchParameters queryParameters, + Predicate> consumer ) { PsiClass async = queryParameters.getPsiClass(); PsiClass sync = RemoteServiceUtil.findSynchronousInterface(async); if (sync != null) { for (PsiMethod method : async.getMethods()) { PsiMethod syncMethod = RemoteServiceUtil.findMethodInSync(method, sync); - if (syncMethod != null) { - if (!consumer.process(Pair.create(method, syncMethod))) { - return false; - } + if (syncMethod != null && !consumer.test(Couple.of(method, syncMethod))) { + return false; } } } diff --git a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAsyncMethodSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAsyncMethodSearcher.java index 5548c62..56ccec9 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAsyncMethodSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtAsyncMethodSearcher.java @@ -8,14 +8,16 @@ import com.intellij.java.language.psi.search.searches.SuperMethodsSearchExecutor; import com.intellij.java.language.psi.util.MethodSignatureBackedByPsiMethod; import consulo.annotation.component.ExtensionImpl; -import consulo.application.util.function.Processor; import consulo.language.psi.PsiFile; +import java.util.function.Predicate; + /** * @author nik */ @ExtensionImpl -public class GwtAsyncMethodSearcher extends GwtSearcherBase implements SuperMethodsSearchExecutor { +public class GwtAsyncMethodSearcher extends GwtSearcherBase + implements SuperMethodsSearchExecutor { @Override protected PsiFile getContainingFile(final SuperMethodsSearch.SearchParameters parameters) { return parameters.getMethod().getContainingFile(); @@ -24,17 +26,15 @@ protected PsiFile getContainingFile(final SuperMethodsSearch.SearchParameters pa @Override public boolean doExecute( final SuperMethodsSearch.SearchParameters queryParameters, - final Processor consumer + final Predicate consumer ) { PsiMethod method = queryParameters.getMethod(); PsiClass sync = method.getContainingClass(); PsiClass async = RemoteServiceUtil.findAsynchronousInterface(sync); if (async != null) { PsiMethod asyncMethod = RemoteServiceUtil.findMethodInAsync(method, async); - if (asyncMethod != null) { - if (!consumer.process(MethodSignatureBackedByPsiMethod.create(asyncMethod, PsiSubstitutor.EMPTY))) { - return false; - } + if (asyncMethod != null && !consumer.test(MethodSignatureBackedByPsiMethod.create(asyncMethod, PsiSubstitutor.EMPTY))) { + return false; } } return true; diff --git a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtOverridingServiceMethodsSearcher.java b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtOverridingServiceMethodsSearcher.java index 12cab79..f6a2bb3 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtOverridingServiceMethodsSearcher.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtOverridingServiceMethodsSearcher.java @@ -6,28 +6,30 @@ import com.intellij.java.language.psi.PsiClass; import com.intellij.java.language.psi.PsiMethod; import consulo.annotation.component.ExtensionImpl; -import consulo.application.util.function.Processor; import consulo.language.psi.PsiFile; +import java.util.function.Predicate; + /** * @author nik */ @ExtensionImpl -public class GwtOverridingServiceMethodsSearcher extends GwtSearcherBase implements OverridingMethodsSearchExecutor { +public class GwtOverridingServiceMethodsSearcher extends GwtSearcherBase + implements OverridingMethodsSearchExecutor { @Override protected PsiFile getContainingFile(final OverridingMethodsSearch.SearchParameters parameters) { return parameters.getMethod().getContainingFile(); } @Override - public boolean doExecute(final OverridingMethodsSearch.SearchParameters queryParameters, final Processor consumer) { + public boolean doExecute(OverridingMethodsSearch.SearchParameters queryParameters, Predicate consumer) { PsiMethod method = queryParameters.getMethod(); PsiClass async = method.getContainingClass(); PsiClass sync = RemoteServiceUtil.findSynchronousInterface(async); if (sync != null) { PsiMethod syncMethod = RemoteServiceUtil.findMethodInSync(method, sync); if (syncMethod != null) { - if (!consumer.process(syncMethod)) { + if (!consumer.test(syncMethod)) { return false; } if (!OverridingMethodsSearch.search(syncMethod, queryParameters.getScope(), queryParameters.isCheckDeep()) diff --git a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtSearcherBase.java b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtSearcherBase.java index a0bd6e2..2f36c18 100644 --- a/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtSearcherBase.java +++ b/plugin/src/main/java/com/intellij/gwt/impl/rpc/GwtSearcherBase.java @@ -1,36 +1,35 @@ package com.intellij.gwt.impl.rpc; -import consulo.application.ApplicationManager; -import consulo.application.util.function.Computable; -import consulo.application.util.function.Processor; +import consulo.application.Application; import consulo.application.util.query.QueryExecutor; import consulo.gwt.module.extension.GoogleGwtModuleExtension; import consulo.gwt.base.module.extension.GwtModuleExtensionUtil; import consulo.language.psi.PsiFile; +import jakarta.annotation.Nonnull; + +import java.util.function.Predicate; +import java.util.function.Supplier; /** * @author nik */ public abstract class GwtSearcherBase implements QueryExecutor { @Override - public boolean execute(final Param queryParameters, final Processor consumer) { - return ApplicationManager.getApplication().runReadAction(new Computable() { - @Override - public Boolean compute() { - PsiFile file = getContainingFile(queryParameters); - if (file != null) { - GoogleGwtModuleExtension gwtFacet = - GwtModuleExtensionUtil.findModuleExtension(file.getProject(), file.getVirtualFile()); - if (gwtFacet != null) { - return doExecute(queryParameters, consumer); - } + public boolean execute(@Nonnull Param queryParameters, @Nonnull Predicate consumer) { + return Application.get().runReadAction((Supplier)() -> { + PsiFile file = getContainingFile(queryParameters); + if (file != null) { + GoogleGwtModuleExtension gwtFacet = + GwtModuleExtensionUtil.findModuleExtension(file.getProject(), file.getVirtualFile()); + if (gwtFacet != null) { + return doExecute(queryParameters, consumer); } - return true; } + return true; }); } protected abstract PsiFile getContainingFile(Param parameters); - protected abstract boolean doExecute(final Param queryParameters, final Processor consumer); + protected abstract boolean doExecute(Param queryParameters, Predicate consumer); }