package com.hubspot.baragon.cache; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.zip.GZIPOutputStream; public class CachedBaragonState { private final byte[] uncompressed; private final byte[] gzip; private final int version; @SuppressFBWarnings("EI_EXPOSE_REP2") public CachedBaragonState(byte[] uncompressed, int version) { this.uncompressed = uncompressed; this.gzip = compress(uncompressed); this.version = version; } @SuppressFBWarnings("EI_EXPOSE_REP") public byte[] getUncompressed() { return uncompressed; } @SuppressFBWarnings("EI_EXPOSE_REP") public byte[] getGzip() { return gzip; } public int getVersion() { return version; } private static byte[] compress(byte[] uncompressed) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (OutputStream gzip = new GZIPOutputStream(baos)) { gzip.write(uncompressed); } catch (IOException e) { throw new RuntimeException(e); } return baos.toByteArray(); } }