package tap.compression;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.mapred.JobConf;
import tap.Pipe;
public abstract class FileCompression {
protected Class<? extends CompressionCodec> codec = null;
protected FileCompression(Class<? extends CompressionCodec> codec) {
this.codec = codec;
}
public abstract void setupOutput(JobConf conf);
public abstract void setupInput(JobConf conf);
// file extension
public abstract String fileExtension();
/*
* Does path name indicate a matching file name
*/
public boolean matches(String path) {
return path.endsWith(fileExtension());
}
public boolean signature(byte[] header) {
//TODO: May need to handle auto inspection
return false;
}
public abstract void setPipeCompression(Pipe pipe) ;
public abstract Class<? extends CompressionCodec> getCodec();
}