package org.nightlabs.jfire.asterisk.ui.config;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.jdo.FetchPlan;
import org.nightlabs.jfire.asterisk.AsteriskServer;
import org.nightlabs.jfire.asterisk.config.AsteriskConfigModule;
import org.nightlabs.jfire.base.ui.config.AbstractConfigModuleController;
import org.nightlabs.jfire.base.ui.config.AbstractConfigModulePreferencePage;
import org.nightlabs.jfire.config.ConfigModule;
import org.nightlabs.util.CollectionUtil;
/**
* @author Chairat Kongarayawetchakun <!-- chairat [AT] nightlabs [DOT] de -->
*/
public class AsteriskServerConfigModuleController extends AbstractConfigModuleController {
public static final String[] FETCH_GROUPS_ASTERISK_SERVER = {
FetchPlan.DEFAULT,
AsteriskServer.FETCH_GROUP_CALL_FILE_PROPERTIES,
};
private static Set<String> fetchGroups;
static {
fetchGroups = new HashSet<String>(AbstractConfigModuleController.getCommonConfigModuleFetchGroups());
fetchGroups.add(AsteriskConfigModule.FETCH_GROUP_CALL_FILE_PROPERTIES);
fetchGroups.add(AsteriskConfigModule.FETCH_GROUP_CALL_FILE_OVERRIDE_KEYS);
fetchGroups.addAll(CollectionUtil.array2ArrayList(FETCH_GROUPS_ASTERISK_SERVER));
fetchGroups = Collections.unmodifiableSet(fetchGroups);
}
/**
* @param preferencePage
*/
public AsteriskServerConfigModuleController(AbstractConfigModulePreferencePage preferencePage) {
super(preferencePage);
}
/**
* {@inheritDoc}
* @see org.nightlabs.jfire.base.ui.config.IConfigModuleController#getConfigModuleClass()
*/
public Class<? extends ConfigModule> getConfigModuleClass() {
return AsteriskConfigModule.class;
}
@Override
public Set<String> getConfigModuleFetchGroups() {
return fetchGroups;
}
}