class ScopedMap implements ScopeSubscriber, Map<K, V> {

    public Set<Map.Entry<K, V>> entrySet() {
        final Set<Map.Entry<K, Stack<ScopedMapItem<V>>>> entries =
            map.entrySet();
        final Set<Map.Entry<K, V>> set =
            new java.util.HashSet<Map.Entry<K, V>>();
        for (Map.Entry<K, Stack<ScopedMapItem<V>>> entry : entries) {
            final K key = entry.getKey();
            final ScopedMapEntry<K, V> current =
                new ScopedMapEntry<K, V>(key, this);
            set.add(current);
        }
        return set;
    }

    public  ScopedMap(final ScopeObserver scopeObserver);

}