From a3b295abac402e87dccb2d7932fa0aab57cbcfac Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 2 Jul 2013 11:35:56 +0400 Subject: [PATCH] added remove methods --- .../containers/MostlySingularMultiMap.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/platform/util/src/com/intellij/util/containers/MostlySingularMultiMap.java b/platform/util/src/com/intellij/util/containers/MostlySingularMultiMap.java index 92c5cb0b28a7..579aa51694da 100644 --- a/platform/util/src/com/intellij/util/containers/MostlySingularMultiMap.java +++ b/platform/util/src/com/intellij/util/containers/MostlySingularMultiMap.java @@ -59,6 +59,30 @@ public class MostlySingularMultiMap implements Serializable { } } + public boolean remove(@NotNull K key, @NotNull V value) { + Object current = myMap.get(key); + if (current == null) { + return false; + } + if (current instanceof Object[]) { + Object[] curArr = (Object[])current; + Object[] newArr = ArrayUtil.remove(curArr, value, ArrayUtil.OBJECT_ARRAY_FACTORY); + myMap.put(key, newArr); + return newArr.length == curArr.length-1; + } + + if (value.equals(current)) { + myMap.remove(key); + return true; + } + + return false; + } + + public boolean removeAllValues(@NotNull K key) { + return myMap.remove(key) != null; + } + @NotNull public Set keySet() { return myMap.keySet(); @@ -192,7 +216,7 @@ public class MostlySingularMultiMap implements Serializable { @NotNull @Override public Iterable get(@NotNull Object name) { - return EmptyIterable.getInstance(); + return ContainerUtil.emptyList(); } } }