blob: 17a59dd3660b041621a2807980621436df32bdb0 [file] [log] [blame]
// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.utils.collections;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
/** Interface that provides mutable access to the implementation of a many-to-one mapping. */
public interface MutableBidirectionalManyToOneMap<K, V> extends BidirectionalManyToOneMap<K, V> {
void clear();
V put(K key, V value);
void put(Iterable<K> key, V value);
default void putAll(BidirectionalManyToOneMap<K, V> map) {
map.forEach(this::put);
}
default void putAll(Map<K, V> map) {
map.forEach(this::put);
}
V remove(K key);
void removeAll(Iterable<K> keys);
Set<K> removeValue(V value);
default void removeValues(Collection<V> values) {
values.forEach(this::removeValue);
}
}