001package org.anarres.lzo.commons;
002
003import java.io.IOException;
004import java.io.OutputStream;
005import javax.annotation.Nonnull;
006import org.anarres.lzo.LzoAlgorithm;
007import org.anarres.lzo.LzoCompressor;
008import org.anarres.lzo.LzoLibrary;
009import org.anarres.lzo.LzoOutputStream;
010import org.apache.commons.compress.compressors.CompressorOutputStream;
011
012/**
013 *
014 * @author shevek
015 */
016public class LzoCompressorOutputStream extends CompressorOutputStream {
017
018    private final LzoOutputStream out;
019
020    public LzoCompressorOutputStream(@Nonnull OutputStream out) {
021        this.out = new LzoOutputStream(out);
022    }
023
024    public LzoCompressorOutputStream(@Nonnull OutputStream out, @Nonnull LzoCompressor compressor) {
025        this.out = new LzoOutputStream(out, compressor);
026    }
027
028    public LzoCompressorOutputStream(@Nonnull OutputStream out, @Nonnull LzoAlgorithm algorithm) {
029        this.out = new LzoOutputStream(out, LzoLibrary.getInstance().newCompressor(algorithm, null));
030    }
031
032    @Override
033    public void write(int b) throws IOException {
034        out.write(b);
035    }
036
037    @Override
038    public void write(byte[] b, int off, int len) throws IOException {
039        out.write(b, off, len);
040    }
041}