package sk.stuba.fiit.perconik.utilities.configuration;
import javax.annotation.Nullable;
import com.google.common.reflect.TypeToken;
import static sk.stuba.fiit.perconik.utilities.configuration.Configurables.newReader;
import static sk.stuba.fiit.perconik.utilities.configuration.Configurables.newWriter;
final class RegularOptionAccessor<T> extends AbstractOptionAccessor<T> {
private final OptionParser<? extends T> parser;
RegularOptionAccessor(final TypeToken<T> type, final OptionParser<? extends T> parser, final String key, @Nullable final T defaultValue) {
super(type, key, defaultValue);
this.parser = parser;
}
@Override
protected OptionsReader reader(final Options options) {
return newReader(options);
}
@Override
protected OptionsWriter writer(final Options options) {
return newWriter(options);
}
@Override
protected OptionParser<? extends T> parser() {
return this.parser;
}
}