package net.mms_projects.copy_it;
import java.util.HashMap;
import java.util.Map;
import net.mms_projects.copy_it.listeners.EnabledListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class FunctionalityManager<F extends Activatable> {
private Map<String, F> functionality = new HashMap<String, F>();
private final Logger log = LoggerFactory.getLogger(this.getClass());
public void addFunctionality(String key, F functionality) {
this.functionality.put(key, functionality);
}
public void enable(String key) {
this.functionality.get(key).enable();
log.debug("Enabled " + key);
}
public void disable(String key) {
this.functionality.get(key).disable();
log.debug("Disabled " + key);
}
public void setEnabled(String key, boolean enabled) {
this.functionality.get(key).setEnabled(enabled);
log.debug("Set " + key + " enabled to " + enabled);
}
public boolean isEnabled(String key) {
return this.functionality.get(key).isEnabled();
}
public void addEnabledListener(String key, EnabledListener listener) {
this.functionality.get(key).addEnabledListener(listener);
}
}