package com.swingsane.preferences.model;
import java.util.ArrayList;
import java.util.HashMap;
public abstract class ScannerOptions {
private HashMap<String, BooleanOption> booleanOptions = new HashMap<String, BooleanOption>();
private HashMap<String, IntegerOption> integerOptions = new HashMap<String, IntegerOption>();
private HashMap<String, FixedOption> fixedOptions = new HashMap<String, FixedOption>();
private HashMap<String, StringOption> stringOptions = new HashMap<String, StringOption>();
private HashMap<String, ButtonOption> buttonOptions = new HashMap<String, ButtonOption>();
private HashMap<String, GroupOption> groupOptions = new HashMap<String, GroupOption>();
/**
* OptionsOrderValuePair also exists in the Option interface. Circular referencing helps to speed
* the name lookup.
*/
private ArrayList<OptionsOrderValuePair> optionOrdering = new ArrayList<OptionsOrderValuePair>();
public final void addOption(Option option) {
if (option == null) {
return;
}
OptionsOrderValuePair vp = option.getOptionsOrderValuePair();
if (option instanceof BooleanOption) {
booleanOptions.put(option.getName(), (BooleanOption) option);
} else if (option instanceof IntegerOption) {
integerOptions.put(option.getName(), (IntegerOption) option);
} else if (option instanceof FixedOption) {
fixedOptions.put(option.getName(), (FixedOption) option);
} else if (option instanceof StringOption) {
stringOptions.put(option.getName(), (StringOption) option);
} else if (option instanceof ButtonOption) {
buttonOptions.put(option.getName(), (ButtonOption) option);
} else if (option instanceof GroupOption) {
groupOptions.put(option.getName(), (GroupOption) option);
}
optionOrdering.add(vp);
}
public final HashMap<String, BooleanOption> getBooleanOptions() {
return booleanOptions;
}
public final HashMap<String, ButtonOption> getButtonOptions() {
return buttonOptions;
}
public final HashMap<String, FixedOption> getFixedOptions() {
return fixedOptions;
}
public final HashMap<String, GroupOption> getGroupOptions() {
return groupOptions;
}
public final HashMap<String, IntegerOption> getIntegerOptions() {
return integerOptions;
}
public final ArrayList<OptionsOrderValuePair> getOptionOrdering() {
return optionOrdering;
}
public final HashMap<String, StringOption> getStringOptions() {
return stringOptions;
}
public final void setBooleanOptions(HashMap<String, BooleanOption> booleanOptions) {
this.booleanOptions = booleanOptions;
}
public final void setButtonOptions(HashMap<String, ButtonOption> buttonOptions) {
this.buttonOptions = buttonOptions;
}
public final void setFixedOptions(HashMap<String, FixedOption> fixedOptions) {
this.fixedOptions = fixedOptions;
}
public final void setGroupOptions(HashMap<String, GroupOption> groupOptions) {
this.groupOptions = groupOptions;
}
public final void setIntegerOptions(HashMap<String, IntegerOption> integerOptions) {
this.integerOptions = integerOptions;
}
public final void setOptionOrdering(ArrayList<OptionsOrderValuePair> optionOrdering) {
this.optionOrdering = optionOrdering;
}
public final void setStringOptions(HashMap<String, StringOption> stringOptions) {
this.stringOptions = stringOptions;
}
}