@Override public K getKey(final Object value) { return decorated().getKey(value); }
@Override public BidiMap<V, K> inverseBidiMap() { return decorated().inverseBidiMap(); }
@Override public MapIterator<K, V> mapIterator() { return decorated().mapIterator(); }
@Override public K removeValue(final Object value) { return decorated().removeValue(value); }
@Override public Set<V> values() { return decorated().values(); }
@Override public MapIterator<K, V> mapIterator() { final MapIterator<K, V> it = decorated().mapIterator(); return UnmodifiableMapIterator.unmodifiableMapIterator(it); }
@Override public synchronized BidiMap<V, K> inverseBidiMap() { if (inverse == null) { inverse = new UnmodifiableBidiMap<V, K>(decorated().inverseBidiMap()); inverse.inverse = this; } return inverse; }