- java.lang.Object
-
- com.pervasive.datarush.io.compression.SnappyCompression
-
- All Implemented Interfaces:
CompressionFormat
,Serializable
public class SnappyCompression extends Object implements CompressionFormat
Defines support for the Snappy compression algorithm.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface com.pervasive.datarush.io.compression.CompressionFormat
NONE
-
-
Constructor Summary
Constructors Constructor Description SnappyCompression()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description OutputStream
compressStream(OutputStream out)
Wraps the specified stream in a compressor for the format.SplitInputStream
decompressSplitStream(DataSplit split, InputStream in, int bufferSize)
Wraps the specified stream for a split in a decompressor for the format.InputStream
decompressStream(InputStream in)
Wraps the specified stream in a decompressor for the format.String
getCompressedFilename(String fileName)
Adds the common file suffix associated with this format to the given file name.String
getName()
Gets the name of the compression algorithm.SplitIterator
getSplitIterator(FileClient client, Path filePath, SplitOptions options)
Create aSplitIterator
for the given file path and options.String
getUncompressedFilename(String fileName)
Strips any file suffix associated with this format from the given file name.boolean
isCompressedFilename(String fileName)
Indicates whether the specified file name is compressed in this format.boolean
isSplittable()
Indicates whether compressed data files may be split.
-
-
-
Method Detail
-
getName
public String getName()
Description copied from interface:CompressionFormat
Gets the name of the compression algorithm.- Specified by:
getName
in interfaceCompressionFormat
- Returns:
- the well-known name of the compression format
-
isSplittable
public boolean isSplittable()
Description copied from interface:CompressionFormat
Indicates whether compressed data files may be split. Generally, compressed data cannot be split.- Specified by:
isSplittable
in interfaceCompressionFormat
- Returns:
true
if the compression format allow file splits,false
otherwise.
-
isCompressedFilename
public boolean isCompressedFilename(String fileName)
Description copied from interface:CompressionFormat
Indicates whether the specified file name is compressed in this format. Generally, this is done by looking at the file suffix.- Specified by:
isCompressedFilename
in interfaceCompressionFormat
- Parameters:
fileName
- the file name to check- Returns:
true
if the file is believed to be compressed in this format,false
otherwise.
-
getUncompressedFilename
public String getUncompressedFilename(String fileName)
Description copied from interface:CompressionFormat
Strips any file suffix associated with this format from the given file name.- Specified by:
getUncompressedFilename
in interfaceCompressionFormat
- Parameters:
fileName
- the file name to process- Returns:
- the expected name of the uncompressed file
-
getCompressedFilename
public String getCompressedFilename(String fileName)
Description copied from interface:CompressionFormat
Adds the common file suffix associated with this format to the given file name.- Specified by:
getCompressedFilename
in interfaceCompressionFormat
- Parameters:
fileName
- the file name to process- Returns:
- the expected name of the compressed file
-
decompressStream
public InputStream decompressStream(InputStream in) throws IOException
Description copied from interface:CompressionFormat
Wraps the specified stream in a decompressor for the format.- Specified by:
decompressStream
in interfaceCompressionFormat
- Parameters:
in
- the compressed byte stream to decompress- Returns:
- the uncompressed data stream
- Throws:
IOException
- if an I/O error occurs
-
compressStream
public OutputStream compressStream(OutputStream out) throws IOException
Description copied from interface:CompressionFormat
Wraps the specified stream in a compressor for the format.- Specified by:
compressStream
in interfaceCompressionFormat
- Parameters:
out
- the uncompressed byte stream to compress- Returns:
- the compressed data stream
- Throws:
IOException
- if an I/O error occurs
-
getSplitIterator
public SplitIterator getSplitIterator(FileClient client, Path filePath, SplitOptions options) throws IOException
Description copied from interface:CompressionFormat
Create aSplitIterator
for the given file path and options. Iterators may vary based on the compression format of an input data stream or if the input is not compressed. For instance, compression formats that do not support splitting will create an iterator with a single split: the whole file.- Specified by:
getSplitIterator
in interfaceCompressionFormat
- Parameters:
client
- the file client in usefilePath
- path to the input fileoptions
- splitting options- Returns:
- an iterator of the split(s) for the input file
- Throws:
IOException
- if an I/O error occurs
-
decompressSplitStream
public SplitInputStream decompressSplitStream(DataSplit split, InputStream in, int bufferSize) throws IOException
Description copied from interface:CompressionFormat
Wraps the specified stream for a split in a decompressor for the format. The format must be splittable or anUnsupportedOperationException
will be thrown.- Specified by:
decompressSplitStream
in interfaceCompressionFormat
- Parameters:
split
- split being read and decompressedin
- the compressed byte stream for a split to decompress- Returns:
- the uncompressed data stream
- Throws:
IOException
- if an I/O error occurs
-
-