class ZippedContentCache implements ContentCache {

    @Override
    @VolumeMetered
    public OutputStream put(ContentCacheKey key, TimeToLive timeToLive) {
        return ofNullable(delegate.put(key, timeToLive)) //
                .map(entry -> {
                    try {
                        return new GZIPOutputStream(entry);
                    } catch (IOException e) {
                        throw new TDPException(CommonErrorCodes.UNEXPECTED_EXCEPTION, e);
                    }
                }) //
                .orElse(null);
    }

    public  ZippedContentCache(ContentCache delegate);

}