// 
// Decompiled by Procyon v0.6.0
// 

package io.netty.handler.codec.compression;

import io.netty.util.internal.ObjectUtil;
import com.aayushatharva.brotli4j.encoder.Encoder;

public final class StandardCompressionOptions
{
    private StandardCompressionOptions() {
    }
    
    public static BrotliOptions brotli() {
        return BrotliOptions.DEFAULT;
    }
    
    @Deprecated
    public static BrotliOptions brotli(final Encoder.Parameters parameters) {
        return new BrotliOptions(parameters);
    }
    
    public static BrotliOptions brotli(final int quality, final int window, final BrotliMode mode) {
        ObjectUtil.checkInRange(quality, 0, 11, "quality");
        ObjectUtil.checkInRange(window, 10, 24, "window");
        ObjectUtil.checkNotNull(mode, "mode");
        final Encoder.Parameters parameters = new Encoder.Parameters().setQuality(quality).setWindow(window).setMode(mode.adapt());
        return new BrotliOptions(parameters);
    }
    
    public static ZstdOptions zstd() {
        return ZstdOptions.DEFAULT;
    }
    
    public static ZstdOptions zstd(final int compressionLevel, final int blockSize, final int maxEncodeSize) {
        return new ZstdOptions(compressionLevel, blockSize, maxEncodeSize);
    }
    
    public static SnappyOptions snappy() {
        return new SnappyOptions();
    }
    
    public static GzipOptions gzip() {
        return GzipOptions.DEFAULT;
    }
    
    public static GzipOptions gzip(final int compressionLevel, final int windowBits, final int memLevel) {
        return new GzipOptions(compressionLevel, windowBits, memLevel);
    }
    
    public static DeflateOptions deflate() {
        return DeflateOptions.DEFAULT;
    }
    
    public static DeflateOptions deflate(final int compressionLevel, final int windowBits, final int memLevel) {
        return new DeflateOptions(compressionLevel, windowBits, memLevel);
    }
}
