mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
deprecate ConcurrentWeakFactoryMap in favor of factory method in ConcurrentFactoryMap
This commit is contained in:
@@ -23,7 +23,7 @@ import com.intellij.openapi.components.Storage;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.util.PatternUtil;
|
||||
import com.intellij.util.containers.ConcurrentWeakFactoryMap;
|
||||
import com.intellij.util.containers.ConcurrentFactoryMap;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.xmlb.XmlSerializerUtil;
|
||||
import com.intellij.util.xmlb.annotations.AbstractCollection;
|
||||
@@ -44,9 +44,7 @@ import java.util.regex.Pattern;
|
||||
@State(name = "JavaProjectCodeInsightSettings", storages = @Storage("codeInsightSettings.xml"))
|
||||
public class JavaProjectCodeInsightSettings implements PersistentStateComponent<JavaProjectCodeInsightSettings> {
|
||||
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
|
||||
private static final ConcurrentMap<String, Pattern> ourPatterns = ConcurrentWeakFactoryMap.createWeakMap(key->
|
||||
PatternUtil.fromMask(key)
|
||||
);
|
||||
private static final ConcurrentMap<String, Pattern> ourPatterns = ConcurrentFactoryMap.createWeakMap(PatternUtil::fromMask);
|
||||
|
||||
|
||||
@Tag("excluded-names")
|
||||
|
||||
@@ -17,7 +17,7 @@ package com.intellij;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ConcurrentWeakFactoryMap;
|
||||
import com.intellij.util.containers.ConcurrentFactoryMap;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -70,7 +70,7 @@ public abstract class AbstractBundle {
|
||||
|
||||
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
|
||||
private static final Map<ClassLoader, Map<String, ResourceBundle>> ourCache =
|
||||
ConcurrentWeakFactoryMap.createWeakMap(new Function<ClassLoader, Map<String, ResourceBundle>>() {
|
||||
ConcurrentFactoryMap.createWeakMap(new Function<ClassLoader, Map<String, ResourceBundle>>() {
|
||||
@Override
|
||||
public Map<String, ResourceBundle> fun(ClassLoader k) {return ContainerUtil.createConcurrentSoftValueMap();}
|
||||
});
|
||||
|
||||
@@ -230,4 +230,16 @@ public abstract class ConcurrentFactoryMap<K,V> implements ConcurrentMap<K,V> {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Concurrent factory map with weak keys, strong values
|
||||
*/
|
||||
@NotNull
|
||||
public static <T, V> ConcurrentMap<T, V> createWeakMap(@NotNull Function<T, V> compute) {
|
||||
return createMap(compute, new Producer<ConcurrentMap<T, V>>() {
|
||||
@Override
|
||||
public ConcurrentMap<T, V> produce() {return ContainerUtil.createConcurrentWeakMap();}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,28 +17,11 @@
|
||||
package com.intellij.util.containers;
|
||||
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.Producer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
/**
|
||||
* @author peter
|
||||
* Use {@link ConcurrentFactoryMap#createWeakMap(Function)} instead
|
||||
* TODO to remove in IDEA 2018
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract class ConcurrentWeakFactoryMap extends ConcurrentFactoryMap {
|
||||
/**
|
||||
* Use {@link #createWeakMap(Function)} instead
|
||||
* TODO to remove in IDEA 2018
|
||||
*/
|
||||
@Deprecated
|
||||
public ConcurrentWeakFactoryMap() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static <T, V> ConcurrentMap<T, V> createWeakMap(@NotNull Function<T, V> compute) {
|
||||
return ConcurrentFactoryMap.createMap(compute, new Producer<ConcurrentMap<T, V>>() {
|
||||
@Override
|
||||
public ConcurrentMap<T, V> produce() {return ContainerUtil.createConcurrentWeakMap();}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user