Class Compression

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

public abstract class Compression extends Object
Characterises the compression status of a stream, and provides methods for decompressing it.
Author:
Mark Taylor (Starlink)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Compression
    A Compression object representing BZip2 compression.
    static final Compression
    A Compression object representing Unix compress-type compression.
    static final Compression
    A Compression object representing GZip compression.
    static final int
    Number of bytes needed to determine compression type (magic number).
    static final Compression
    A Compression object representing no compression (or perhaps an unknown one).
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract InputStream
    Returns a stream which is a decompressed version of the input stream, according to this objects compression type.
    Returns a decompressed version of the given input stream.
    getCompression(byte[] magic)
    Returns a Compression object characterising the compression (if any) represented by a given magic number.
    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 Details

    • MAGIC_SIZE

      public static final int MAGIC_SIZE
      Number of bytes needed to determine compression type (magic number).
      See Also:
    • 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 Details

    • 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