class ChangeHandledMultiMap implements MultiMap<V, T, ListType> {

    @Override
    public boolean addAllValues(final V value,
                                final Collection<T> tCollection) {
        addToCounter();

        final boolean allValuesAdded = map.addAllValues(value,
                                                        tCollection);

        for (final T t : tCollection) {
            addToChangeSet(value, t);
        }

        fire();

        return allValuesAdded;
    }

    public  ChangeHandledMultiMap(final MultiMap<V, T, ListType> map);

}