presto-orc/src/main/java/io/prestosql/orc/OrcOutputBuffer.java/OrcOutputBuffer/OrcOutputBuffer
class OrcOutputBuffer:    public OrcOutputBuffer(CompressionKind compression, int maxBufferSize)
    {
        requireNonNull(compression, "compression is null");
        checkArgument(maxBufferSize > 0, "maximum buffer size should be greater than 0");

        this.maxBufferSize = maxBufferSize;

        this.buffer = new byte[INITIAL_BUFFER_SIZE];
        this.slice = wrappedBuffer(buffer);

        compressedOutputStream = new ChunkedSliceOutput(MINIMUM_OUTPUT_BUFFER_CHUNK_SIZE, MAXIMUM_OUTPUT_BUFFER_CHUNK_SIZE);

        if (compression == CompressionKind.NONE) {
            this.compressor = null;
        }
        else if (compression == CompressionKind.SNAPPY) {
            this.compressor = new SnappyCompressor();
        }
        else if (compression == CompressionKind.ZLIB) {
            this.compressor = new DeflateCompressor();
        }
        else if (compression == CompressionKind.LZ4) {
            this.compressor = new Lz4Compressor();
        }
        else if (compression == CompressionKind.ZSTD) {
            this.compressor = new ZstdCompressor();
        }
        else {
            throw new IllegalArgumentException("Unsupported compression " + compression);
        }
    }