package org.apache.hadoop.io.simpleseekableformat;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionInputStream;
import org.apache.hadoop.io.compress.CompressionOutputStream;
import org.apache.hadoop.io.compress.Compressor;
import org.apache.hadoop.io.compress.Decompressor;
/**
* Codec class for the SimpleSeekableFormat.
*
* Note that SimpleSeekableFormat is really a file format. We are pretending it's a
* codec to utilize Hadoop's file extension to codec mapping.
*
* As a result, we don't support Compressor, Decompressor, etc.
* {@link org.apache.hadoop.io.simpleseekableformat.TestSimpleSeekableFormatCodec#testTextInputFormat()}
* shows that it's not a problem for file extension to codec mapping.
*
* See {@link SimpleSeekableFormat}
*/
public class SimpleSeekableFormatCodec extends Configured implements CompressionCodec {
@Override
public Compressor createCompressor() {
return null;
}
@Override
public Decompressor createDecompressor() {
return null;
}
@Override
public CompressionInputStream createInputStream(InputStream in)
throws IOException {
return new SimpleSeekableFormatInputStream(in);
}
@Override
public CompressionInputStream createInputStream(InputStream in,
Decompressor decompressor) throws IOException {
return createInputStream(in);
}
@Override
public CompressionOutputStream createOutputStream(OutputStream out)
throws IOException {
SimpleSeekableFormatOutputStream s = new SimpleSeekableFormatOutputStream(out);
s.setConf(getConf());
return s;
}
@Override
public CompressionOutputStream createOutputStream(OutputStream out,
Compressor compressor) throws IOException {
return createOutputStream(out);
}
@Override
public Class<? extends Compressor> getCompressorType() {
return null;
}
@Override
public Class<? extends Decompressor> getDecompressorType() {
return null;
}
@Override
public String getDefaultExtension() {
return ".ssf";
}
}