package edu.mayo.cts2.framework.core.config.option;
public abstract class AbstractOption<T> implements Option {
private String optionName;
private String optionValue;
private OptionType optionType;
protected AbstractOption(String optionName, T optionValue, OptionType optionType){
this.optionName = optionName;
this.optionValue = this.optionValueToString(optionValue);
this.optionType = optionType;
}
@Override
public String getOptionValueAsString() {
return this.optionValue;
}
protected abstract String optionValueToString(T optionValue);
protected abstract T stringToOptionValue(String optionValue);
public String getOptionName() {
return optionName;
}
public T getOptionValue() {
return this.stringToOptionValue(optionValue);
}
public OptionType getOptionType() {
return optionType;
}
}