/** Checks if the {@link File} with the given content-type could be compressed. */ private boolean canBeCompressed(final File cacheFile, final String contentType) { switch (compressionConfig.getCompressionMode()) { case FORCE: return true; case OFF: return false; case ON: { if (cacheFile.length() < compressionConfig.getCompressionMinSize()) { return false; } return compressionConfig.checkMimeType(contentType); } default: throw new IllegalStateException("Unknown mode"); } }
protected Set<ContentEncoding> configureCompressionEncodings(final NetworkListener listener) { final CompressionConfig compressionConfig = listener.getCompressionConfig(); if (compressionConfig.getCompressionMode() != CompressionMode.OFF) { final ContentEncoding gzipContentEncoding = new GZipContentEncoding( GZipContentEncoding.DEFAULT_IN_BUFFER_SIZE, GZipContentEncoding.DEFAULT_OUT_BUFFER_SIZE, new CompressionEncodingFilter( compressionConfig, GZipContentEncoding.getGzipAliases())); final ContentEncoding lzmaEncoding = new LZMAContentEncoding( new CompressionEncodingFilter( compressionConfig, LZMAContentEncoding.getLzmaAliases())); final Set<ContentEncoding> set = new HashSet<ContentEncoding>(2); set.add(gzipContentEncoding); set.add(lzmaEncoding); return set; } else { return Collections.emptySet(); } }