summaryrefslogtreecommitdiff
path: root/platform/util/src/com/intellij/util/containers/FactoryMap.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/util/src/com/intellij/util/containers/FactoryMap.java')
-rw-r--r--platform/util/src/com/intellij/util/containers/FactoryMap.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/platform/util/src/com/intellij/util/containers/FactoryMap.java b/platform/util/src/com/intellij/util/containers/FactoryMap.java
index 30684d0e6dfa..3eea4d3dd984 100644
--- a/platform/util/src/com/intellij/util/containers/FactoryMap.java
+++ b/platform/util/src/com/intellij/util/containers/FactoryMap.java
@@ -15,6 +15,7 @@
*/
package com.intellij.util.containers;
+import com.intellij.util.ObjectUtils;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -92,7 +93,7 @@ public abstract class FactoryMap<K,V> implements Map<K, V> {
public Collection<V> notNullValues() {
if (myMap == null) return Collections.emptyList();
- final Collection<V> values = new ArrayList<V>(myMap.values());
+ final Collection<V> values = ContainerUtil.newArrayList(myMap.values());
for (Iterator<V> iterator = values.iterator(); iterator.hasNext();) {
if (iterator.next() == NULL) {
iterator.remove();
@@ -101,6 +102,13 @@ public abstract class FactoryMap<K,V> implements Map<K, V> {
return values;
}
+ public boolean removeValue(Object value) {
+ if (myMap == null) return false;
+ Object t = ObjectUtils.notNull(value, NULL);
+ return myMap.values().remove(t);
+ }
+
+
@Override
public void clear() {
if (myMap != null) {