void (K key, @NotNull Iterable<? extends V> values) { try { C collection = get(key); if (!collection.isEmpty()) { boolean changes = false; for (V value : values) { changes |= collection.remove(value); } if (changes) { if (collection.isEmpty()) { myMap.remove(key); } else { myMap.put(key, collection); } } } } catch (IOException e) { throw new BuildDataCorruptedException(e); } }