From 688a3afe2b423f224da3d9936781c076b339b249 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 24 Apr 2017 15:04:38 +0200 Subject: [PATCH] use BiPredicate from JDK instead of own PairProcessor --- .../src/ExportSettingsAction.kt | 11 ++++---- .../testSrc/DefaultProjectStoreTest.kt | 28 +++++++++++++++++++ .../testSrc/DoNotStorePasswordTest.kt | 12 ++++---- .../components/impl/ServiceManagerImpl.java | 8 +++--- 4 files changed, 43 insertions(+), 16 deletions(-) diff --git a/platform/configuration-store-impl/src/ExportSettingsAction.kt b/platform/configuration-store-impl/src/ExportSettingsAction.kt index ba6055909d7c..a6b7cc64d03a 100644 --- a/platform/configuration-store-impl/src/ExportSettingsAction.kt +++ b/platform/configuration-store-impl/src/ExportSettingsAction.kt @@ -38,7 +38,6 @@ import com.intellij.openapi.project.DumbAware import com.intellij.openapi.ui.Messages import com.intellij.openapi.util.io.FileUtilRt import com.intellij.openapi.vfs.CharsetToolkit -import com.intellij.util.PairProcessor import com.intellij.util.PlatformUtils import com.intellij.util.ReflectionUtil import com.intellij.util.containers.putValue @@ -187,16 +186,16 @@ fun getExportableComponentsMap(onlyExisting: Boolean, val fileToContent = THashMap() - ServiceManagerImpl.processAllImplementationClasses(ApplicationManager.getApplication() as ApplicationImpl, PairProcessor, PluginDescriptor> { aClass, pluginDescriptor -> + ServiceManagerImpl.processAllImplementationClasses(ApplicationManager.getApplication() as ApplicationImpl, { aClass, pluginDescriptor -> val stateAnnotation = StoreUtil.getStateSpec(aClass) @Suppress("DEPRECATION") if (stateAnnotation == null || stateAnnotation.name.isNullOrEmpty() || ExportableComponent::class.java.isAssignableFrom(aClass)) { - return@PairProcessor true + return@processAllImplementationClasses true } - val storage = stateAnnotation.storages.sortByDeprecated().firstOrNull() ?: return@PairProcessor true + val storage = stateAnnotation.storages.sortByDeprecated().firstOrNull() ?: return@processAllImplementationClasses true if (!(storage.roamingType != RoamingType.DISABLED && storage.storageClass == StateStorage::class && !storage.path.isNullOrEmpty())) { - return@PairProcessor true + return@processAllImplementationClasses true } var additionalExportFile: Path? = null @@ -220,7 +219,7 @@ fun getExportableComponentsMap(onlyExisting: Boolean, if (computePresentableNames && onlyExisting && additionalExportFile == null && file.fileName.toString().endsWith(".xml")) { val content = fileToContent.getOrPut(file) { file.readText() } if (!content.contains("""""")) { - return@PairProcessor true + return@processAllImplementationClasses true } } diff --git a/platform/configuration-store-impl/testSrc/DefaultProjectStoreTest.kt b/platform/configuration-store-impl/testSrc/DefaultProjectStoreTest.kt index 93481e444908..2ac00383297c 100644 --- a/platform/configuration-store-impl/testSrc/DefaultProjectStoreTest.kt +++ b/platform/configuration-store-impl/testSrc/DefaultProjectStoreTest.kt @@ -107,6 +107,34 @@ internal class DefaultProjectStoreTest { val element = loadElement(""" + + + + + Foo + + + + + + + + 1.4 + + + + + + + """) removeWorkspaceComponentConfiguration(ProjectManager.getInstance().defaultProject, element) assertThat(element.isEmpty()).isTrue() diff --git a/platform/configuration-store-impl/testSrc/DoNotStorePasswordTest.kt b/platform/configuration-store-impl/testSrc/DoNotStorePasswordTest.kt index 8b20d737efe7..9c05da42b64c 100644 --- a/platform/configuration-store-impl/testSrc/DoNotStorePasswordTest.kt +++ b/platform/configuration-store-impl/testSrc/DoNotStorePasswordTest.kt @@ -7,7 +7,6 @@ import com.intellij.openapi.components.impl.ServiceManagerImpl import com.intellij.openapi.components.impl.stores.StoreUtil import com.intellij.openapi.extensions.PluginDescriptor import com.intellij.testFramework.ProjectRule -import com.intellij.util.PairProcessor import com.intellij.util.xmlb.XmlSerializerUtil import org.jdom.Attribute import org.jdom.Element @@ -15,6 +14,7 @@ import org.junit.ClassRule import org.junit.Test import java.lang.reflect.ParameterizedType import java.lang.reflect.Type +import java.util.function.BiPredicate class DoNotStorePasswordTest { companion object { @@ -25,15 +25,15 @@ class DoNotStorePasswordTest { @Test fun printPasswordComponents() { - val processor = PairProcessor, PluginDescriptor> { aClass, pluginDescriptor -> + val processor = BiPredicate, PluginDescriptor?> { aClass, pluginDescriptor -> val stateAnnotation = StoreUtil.getStateSpec(aClass) if (stateAnnotation == null || stateAnnotation.name.isNullOrEmpty()) { - return@PairProcessor true + return@BiPredicate true } for (i in aClass.genericInterfaces) { if (checkType(i)) { - return@PairProcessor true + return@BiPredicate true } } @@ -52,11 +52,11 @@ class DoNotStorePasswordTest { @Suppress("DEPRECATION") for (c in app.getComponentInstancesOfType(PersistentStateComponent::class.java)) { - processor.process(c.javaClass, null) + processor.test(c.javaClass, null) } @Suppress("DEPRECATION") for (c in (projectRule.project as ComponentManagerImpl).getComponentInstancesOfType(PersistentStateComponent::class.java)) { - processor.process(c.javaClass, null) + processor.test(c.javaClass, null) } } diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java index dae629f81254..9bd6a3575638 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java @@ -29,7 +29,6 @@ import com.intellij.openapi.extensions.impl.ExtensionComponentAdapter; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.util.PairProcessor; import com.intellij.util.PlatformUtils; import com.intellij.util.io.storage.HeavyProcessLatch; import com.intellij.util.pico.AssignableToComponentAdapter; @@ -41,6 +40,7 @@ import org.picocontainer.defaults.InstanceComponentAdapter; import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.function.BiPredicate; public class ServiceManagerImpl implements Disposable { private static final Logger LOG = Logger.getInstance(ServiceManagerImpl.class); @@ -106,7 +106,7 @@ public class ServiceManagerImpl implements Disposable { return Arrays.asList(extensions); } - public static void processAllImplementationClasses(@NotNull ComponentManagerImpl componentManager, @NotNull PairProcessor, PluginDescriptor> processor) { + public static void processAllImplementationClasses(@NotNull ComponentManagerImpl componentManager, @NotNull BiPredicate, PluginDescriptor> processor) { Collection adapters = componentManager.getPicoContainer().getComponentAdapters(); if (adapters.isEmpty()) { return; @@ -139,7 +139,7 @@ public class ServiceManagerImpl implements Disposable { continue; } - if (!processor.process(aClass, pluginDescriptor)) { + if (!processor.test(aClass, pluginDescriptor)) { break; } } @@ -155,7 +155,7 @@ public class ServiceManagerImpl implements Disposable { continue; } - processor.process(aClass, pluginId == null ? null : PluginManager.getPlugin(pluginId)); + processor.test(aClass, pluginId == null ? null : PluginManager.getPlugin(pluginId)); } } }