package openeye.storage;
import com.google.gson.Gson;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class GsonArchiveStorage<T> extends GsonDirStorage<T> {
private final String fileName;
public GsonArchiveStorage(File dir, String prefix, String fileName, Class<? extends T> cls, Gson gson) {
super(dir, prefix, cls, gson, "zip");
this.fileName = fileName;
}
@Override
protected void removeEntry(String id) {
// NO-OP
}
@Override
protected OutputStream createOutputStream(File file) throws IOException {
OutputStream originalOutput = super.createOutputStream(file);
ZipOutputStream zipOutput = new ZipOutputStream(originalOutput);
zipOutput.setLevel(9);
zipOutput.putNextEntry(new ZipEntry(fileName));
return zipOutput;
}
@Override
protected InputStream createInputStream(File file) {
throw new UnsupportedOperationException();
}
}