package org.jboss.capedwarf.common.serialization;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
/**
* GZIP based serializator.
*
* @author <a href="mailto:ales.justin@jboss.org">Ales Justin</a>
*/
public class GzipSerializator extends DelegateSerializator {
public GzipSerializator(Serializator delegate) {
super(delegate);
}
public void serialize(Object instance, OutputStream out) throws IOException {
GZIPOutputStream gzip = new GZIPOutputStream(out);
delegate.serialize(instance, gzip);
gzip.finish();
}
public <T> T deserialize(InputStream stream, Class<T> clazz) throws IOException {
InputStream gzip = new GZIPInputStream(stream);
return delegate.deserialize(gzip, clazz);
}
}