import com.thoughtworks.xstream.XStream;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashMap;
public abstract class Config {
private HashMap<String, Object> configMap;
private boolean isDefConfig = true;
public boolean isDefaultConfig() {
return isDefConfig;
}
public Config(String filename) {
File configFile = new File(filename);
FileReader configFileReader;
try {
configFileReader = new FileReader(configFile);
XStream xstream = new XStream();
configMap = (HashMap<String, Object>) xstream.fromXML(configFileReader);
configFileReader.close();
System.out.println("Loaded config from "+filename);
isDefConfig = false;
} catch (Exception e) {
System.err.println(e.toString());
e.printStackTrace();
}
}
public Object getValue(String key) {
return configMap.get(key);
}
public Config() {
configMap = new HashMap<String, Object>();
addDefaultValues(configMap);
}
protected abstract void addDefaultValues(HashMap<String, Object> hash);
public void saveConfig(String fileName) {
try {
File saveFile = new File(fileName);
FileWriter saveWriter = new FileWriter(saveFile);
XStream xstream = new XStream();
xstream.toXML(configMap, saveWriter);
System.out.println("Saved config to "+fileName);
saveWriter.close();
} catch(Exception e) {
System.err.println(e.toString());
e.printStackTrace();
}
}
}