package org.stagemonitor.configuration;
import java.lang.reflect.Field;
import java.util.LinkedList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public abstract class ConfigurationOptionProvider {
private final Logger logger = LoggerFactory.getLogger(getClass());
public List<ConfigurationOption<?>> getConfigurationOptions() {
List<ConfigurationOption<?>> configurationOptions = new LinkedList<ConfigurationOption<?>>();
for (Field field : getClass().getDeclaredFields()) {
if (field.getType() == ConfigurationOption.class) {
field.setAccessible(true);
try {
configurationOptions.add((ConfigurationOption) field.get(this));
} catch (IllegalAccessException e) {
logger.warn(e.getMessage(), e);
}
}
}
return configurationOptions;
}
}