package org.richfaces.cdk.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;
/**
* The utility methods for serializatio of {@link Serializable} objects.
*
* @author Lukas Fryc
*
*/
public class SerializationUtils {
public static byte[] serializeToBytes(Serializable object) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(object);
return baos.toByteArray();
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
@SuppressWarnings("unchecked")
public static <T extends Serializable> T deserializeFromBytes(byte[] serializedObject) {
try {
ByteArrayInputStream bais = new ByteArrayInputStream(serializedObject);
ObjectInputStream ois = new ObjectInputStream(bais);
return (T) ois.readObject();
} catch (IOException e) {
throw new IllegalStateException(e);
} catch (ClassNotFoundException e) {
throw new IllegalStateException(e);
}
}
}