mirror of
https://github.com/moparisthebest/MoparClassic
synced 2024-11-16 22:25:02 -05:00
66 lines
1.7 KiB
Java
66 lines
1.7 KiB
Java
|
package msc.gs.util;
|
||
|
|
||
|
import java.io.File;
|
||
|
import java.io.FileInputStream;
|
||
|
import java.io.FileOutputStream;
|
||
|
import java.io.IOException;
|
||
|
import java.io.InputStream;
|
||
|
import java.io.OutputStream;
|
||
|
import java.util.Enumeration;
|
||
|
import java.util.Properties;
|
||
|
import java.util.zip.GZIPInputStream;
|
||
|
import java.util.zip.GZIPOutputStream;
|
||
|
|
||
|
import msc.config.Config;
|
||
|
|
||
|
import com.thoughtworks.xstream.XStream;
|
||
|
|
||
|
public class PersistenceManager {
|
||
|
private static final XStream xstream = new XStream();
|
||
|
|
||
|
static {
|
||
|
setupAliases();
|
||
|
}
|
||
|
|
||
|
public static Object load(String filename) {
|
||
|
try {
|
||
|
InputStream is = new FileInputStream(new File(Config.CONF_DIR, filename));
|
||
|
if (filename.endsWith(".gz")) {
|
||
|
is = new GZIPInputStream(is);
|
||
|
}
|
||
|
Object rv = xstream.fromXML(is);
|
||
|
return rv;
|
||
|
} catch (IOException ioe) {
|
||
|
Logger.error(ioe);
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public static void setupAliases() {
|
||
|
try {
|
||
|
Properties aliases = new Properties();
|
||
|
FileInputStream fis = new FileInputStream(new File(Config.CONF_DIR, "aliases.xml"));
|
||
|
aliases.loadFromXML(fis);
|
||
|
for (Enumeration e = aliases.propertyNames(); e.hasMoreElements();) {
|
||
|
String alias = (String) e.nextElement();
|
||
|
Class c = Class.forName((String) aliases.get(alias));
|
||
|
xstream.alias(alias, c);
|
||
|
}
|
||
|
} catch (Exception ioe) {
|
||
|
Logger.error(ioe);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static void write(String filename, Object o) {
|
||
|
try {
|
||
|
OutputStream os = new FileOutputStream(new File(Config.CONF_DIR, filename));
|
||
|
if (filename.endsWith(".gz")) {
|
||
|
os = new GZIPOutputStream(os);
|
||
|
}
|
||
|
xstream.toXML(o, os);
|
||
|
} catch (IOException ioe) {
|
||
|
Logger.error(ioe);
|
||
|
}
|
||
|
}
|
||
|
}
|