mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
use BiPredicate from JDK instead of own PairProcessor
This commit is contained in:
@@ -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<Path, String>()
|
||||
|
||||
ServiceManagerImpl.processAllImplementationClasses(ApplicationManager.getApplication() as ApplicationImpl, PairProcessor<Class<*>, 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("""<component name="${stateAnnotation.name}">""")) {
|
||||
return@PairProcessor true
|
||||
return@processAllImplementationClasses true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -107,6 +107,34 @@ internal class DefaultProjectStoreTest {
|
||||
val element = loadElement("""
|
||||
<state>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="false" />
|
||||
<component name="masterDetails">
|
||||
<states>
|
||||
<state key="Copyright.UI">
|
||||
<settings>
|
||||
<last-edited>Foo</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="ProjectJDKs.UI">
|
||||
<settings>
|
||||
<last-edited>1.4</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
</states>
|
||||
</component>
|
||||
</state>""")
|
||||
removeWorkspaceComponentConfiguration(ProjectManager.getInstance().defaultProject, element)
|
||||
assertThat(element.isEmpty()).isTrue()
|
||||
|
||||
@@ -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<Class<*>, PluginDescriptor> { aClass, pluginDescriptor ->
|
||||
val processor = BiPredicate<Class<*>, 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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -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<Class<?>, PluginDescriptor> processor) {
|
||||
public static void processAllImplementationClasses(@NotNull ComponentManagerImpl componentManager, @NotNull BiPredicate<Class<?>, 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user