package org.yamcs.ui;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.prefs.Preferences;
public class PrefsObject {
static public void putObject( Preferences prefs, String key, Object o ) {
byte raw[];
try {
raw = object2Bytes( o );
prefs.putByteArray(key, raw);
} catch (IOException e) {
e.printStackTrace();
}
}
static public Object getObject( Preferences prefs, String key ) {
byte raw[] = prefs.getByteArray(key, null);
if(raw==null) return null;
Object o=null;
try {
o = bytes2Object( raw );
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return o;
}
static private byte[] object2Bytes( Object o ) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream( baos );
oos.writeObject( o );
return baos.toByteArray();
}
static private Object bytes2Object( byte raw[] ) throws IOException, ClassNotFoundException {
ByteArrayInputStream bais = new ByteArrayInputStream( raw );
ObjectInputStream ois = new ObjectInputStream( bais );
Object o = ois.readObject();
return o;
}
}