package com.droidworks.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
* Handy little utility for serializing/deserializing serializable objects
* for db insertion.
*
* @author Jason Hudgins <jason@droidworks.com>
*/
public class Freezer<T> {
@SuppressWarnings("unchecked")
public T thaw(byte[] data) throws IOException,
ClassNotFoundException {
ByteArrayInputStream bytes =
new ByteArrayInputStream(data);
ObjectInputStream ois = new ObjectInputStream(bytes);
return (T) ois.readObject();
}
public byte[] freeze(Serializable obj) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
oos.flush();
oos.close();
return baos.toByteArray();
}
}