package org.plista.kornakapi.core.training.preferencechanges;
import java.util.List;
import java.util.Map;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
public class DelegatingPreferenceChangeListenerForLabel implements PreferenceChangeListenerForLabel {
private final Map<String,List<PreferenceChangeListener>> delegates = Maps.newLinkedHashMap();
public void addDelegate(PreferenceChangeListener listener, String label) {
if(delegates.containsKey(label)){
delegates.get(label).add(listener);
}else{
List<PreferenceChangeListener> delegatesPerLabel = Lists.newArrayList();
delegatesPerLabel.add(listener);
delegates.put(label, delegatesPerLabel);
}
}
@Override
public void notifyOfPreferenceChange(String label) {
for (PreferenceChangeListener listener : delegates.get(label)) {
listener.notifyOfPreferenceChange();
}
}
}