package sk.stuba.fiit.perconik.utilities.configuration; public abstract class AbstractOptionsReader implements OptionsReader { /** * Constructor for use by subclasses. */ protected AbstractOptionsReader() {} protected abstract Options options(); public <T> T get(final OptionParser<? extends T> parser, final String key) { Object raw = this.getRaw(key); if (raw == null) { return null; } try { return parser.parse(raw); } catch (RuntimeException failure) { // silently ignore and return null so default value // can be easily supplied by an option accessor return null; } } public Object getRaw(final String key) { return this.options().get(key); } }