public Collection<V> values() { Collection<V> copied = new ArrayList<>(); for (V v : map.values()) { copied.add(Checker.copyIfRequired(v)); } return copied; }
public Set<K> keySet() { Set<K> copied = new HashSet<>(); for (K k : map.keySet()) { copied.add(Checker.copyIfRequired(k)); } return copied; }
public V remove(Object o) { return Checker.copyIfRequired(map.remove(o)); }
public V get(Object o) { return Checker.copyIfRequired(map.get(o)); }
public V replace(K k, V v) { Checker.checkType(v); V ret = map.replace(k, v); return Checker.copyIfRequired(ret); }
public V getValue() { return Checker.copyIfRequired(internalEntry.getValue()); }
public K getKey() { return Checker.copyIfRequired(internalEntry.getKey()); }