Sha256: 3ce27c608ddbeb1af5f83d389f3ade2791ad46b1b41edcaf3cdb394c642e5cba
Contents?: true
Size: 1.7 KB
Versions: 6
Compression:
Stored size: 1.7 KB
Contents
package org.embulk.standards; import java.io.InputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import com.fasterxml.jackson.annotation.JacksonInject; import org.embulk.config.Task; import org.embulk.config.TaskSource; import org.embulk.config.ConfigSource; import org.embulk.spi.DecoderPlugin; import org.embulk.spi.BufferAllocator; import org.embulk.spi.FileInput; import org.embulk.spi.util.FileInputInputStream; import org.embulk.spi.util.InputStreamFileInput; public class GzipFileDecoderPlugin implements DecoderPlugin { public interface PluginTask extends Task { @JacksonInject public BufferAllocator getBufferAllocator(); } @Override public void transaction(ConfigSource config, DecoderPlugin.Control control) { PluginTask task = config.loadConfig(PluginTask.class); control.run(task.dump()); } @Override public FileInput open(TaskSource taskSource, FileInput input) { PluginTask task = taskSource.loadTask(PluginTask.class); final FileInputInputStream files = new FileInputInputStream(input); return new InputStreamFileInput( task.getBufferAllocator(), new InputStreamFileInput.Provider() { public InputStream openNext() throws IOException { if (!files.nextFile()) { return null; } return new GZIPInputStream(files); } public void close() throws IOException { files.close(); } }); } }
Version data entries
6 entries across 6 versions & 1 rubygems