@Override public void clear() { delegate.clear(); }
@Override public S get(K key) { return delegate.get(key); }
@Override public Iterator<Map.Entry<K, S>> iterator() { return new WrappedIterator<Map.Entry<K, S>>(delegate.iterator()) { @Override public void remove() { super.remove(); dirty.set(true); } }; } }
@Override public S removeSet(K key) { S value = delegate.removeSet(key); if (value != null) { dirty.set(true); } return value; }
@Override public boolean add(K key, V item) { if (delegate.add(key, item)) { dirty.set(true); return true; } return false; }
@Override public boolean remove(K key, V item) { if (delegate.remove(key, item)) { dirty.set(true); return true; } return false; }