package gltronic.voozik.model;

import java.util.HashMap;

public class BiMap<K, V> {
  HashMap<K,V> map = new HashMap<K, V>();
  HashMap<V,K> inversedMap = new HashMap<V, K>();

  public void put(K k, V v) {
      map.put(k, v);
      inversedMap.put(v, k);
  }

  public V get(K k) {
      return map.get(k);
  }

  public K getKey(V v) {
      return inversedMap.get(v);
  }

  public boolean containsKey(K k) {
    return map.containsKey(k);
  }

  public boolean containsValue(V v) {
    return map.containsValue(v);
  }

  public int size() {
    return map.size();
  }

  public void removeKey(K k) {
    V v = map.get(k);
    map.remove(k);
    inversedMap.remove(v);
  }

  public void removeValue(V v) {
    K k = inversedMap.get(v);
    inversedMap.remove(v);
    map.remove(k);
  }

}