uk.ac.starlink.util
Class Compression

java.lang.Object
  extended by uk.ac.starlink.util.Compression

public abstract class Compression
extends Object

Characterises the compression status of a stream, and provides methods for decompressing it.


Field Summary
static Compression BZIP2
          A Compression object representing BZip2 compression.
static Compression COMPRESS
          A Compression object representing Unix compress-type compression.
static Compression GZIP
          A Compression object representing GZip compression.
static int MAGIC_SIZE
          Number of bytes needed to determine compression type (magic number).
static Compression NONE
          A Compression object representing no compression (or perhaps an unknown one).
 
Method Summary
abstract  InputStream decompress(InputStream raw)
          Returns a stream which is a decompressed version of the input stream, according to this objects compression type.
static InputStream decompressStatic(InputStream raw)
          Returns a decompressed version of the given input stream.
static Compression getCompression(byte[] magic)
          Returns a Compression object characterising the compression (if any) represented by a given magic number.
 String toString()
          Returns the name of this compression type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAGIC_SIZE

public static final int MAGIC_SIZE
Number of bytes needed to determine compression type (magic number).

See Also:
Constant Field Values

NONE

public static final Compression NONE
A Compression object representing no compression (or perhaps an unknown one). The decompress method will return the raw input stream unchanged.


GZIP

public static final Compression GZIP
A Compression object representing GZip compression.


BZIP2

public static final Compression BZIP2
A Compression object representing BZip2 compression.


COMPRESS

public static final Compression COMPRESS
A Compression object representing Unix compress-type compression.

Method Detail

decompress

public abstract InputStream decompress(InputStream raw)
                                throws IOException
Returns a stream which is a decompressed version of the input stream, according to this objects compression type.

Parameters:
raw - the raw input stream
Returns:
a stream giving the decompressed version of raw
Throws:
IOException

getCompression

public static Compression getCompression(byte[] magic)
Returns a Compression object characterising the compression (if any) represented by a given magic number.

Parameters:
magic - a buffer containing the first MAGIC_SIZE bytes of input of the stream to be characterised
Returns:
a Compression object of the type represented by magic
Throws:
IllegalArgumentException - if magic.length<MAGIC_SIZE

decompressStatic

public static InputStream decompressStatic(InputStream raw)
                                    throws IOException
Returns a decompressed version of the given input stream.

Parameters:
raw - the raw input stream
Returns:
the decompressed version of raw
Throws:
IOException

toString

public String toString()
Returns the name of this compression type.

Overrides:
toString in class Object
Returns:
string representation

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.