## org.h2.tools
Class CompressTool

    java.lang.Object
      org.h2.tools.CompressTool

    public class CompressTool

extends java.lang.Object

A tool to losslessly compress data, and expand the compressed data again.

Method Summary
`int` `compress(byte[] in, int len, Compressor compress, byte[] out)` INTERNAL
`byte[]` `compress(byte[] in, java.lang.String algorithm)` Compressed the data using the specified algorithm.
`byte[]` `expand(byte[] in)` Expands the compressed data.
`void` `expand(byte[] in, byte[] out, int outPos)` INTERNAL
`int` `getCompressAlgorithm(java.lang.String algorithm)` INTERNAL
`static CompressTool` `getInstance()` Get the singleton.
`static java.io.InputStream` `wrapInputStream(java.io.InputStream in, java.lang.String compressionAlgorithm, java.lang.String entryName)` INTERNAL
`static java.io.OutputStream` `wrapOutputStream(java.io.OutputStream out, java.lang.String compressionAlgorithm, java.lang.String entryName)` INTERNAL

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### getInstance

    public static CompressTool getInstance()

  Get the singleton.

  Returns:
    the singleton

### compress

    public byte[] compress(byte[] in,
                           java.lang.String algorithm)
                    throws java.sql.SQLException

  Compressed the data using the specified algorithm. If no algorithm is supplied, LZF is used

  Parameters:
    `in` - the byte array with the original data
    `algorithm` - the algorithm (LZF, DEFLATE)
  Returns:
    the compressed data
  Throws:
    `java.sql.SQLException` - if a error occurs

### compress

    public int compress(byte[] in,
                        int len,
                        Compressor compress,
                        byte[] out)

  INTERNAL

### expand

    public byte[] expand(byte[] in)
                  throws java.sql.SQLException

  Expands the compressed data.

  Parameters:
    `in` - the byte array with the compressed data
  Returns:
    the uncompressed data
  Throws:
    `java.sql.SQLException` - if a error occurs

### expand

    public void expand(byte[] in,
                       byte[] out,
                       int outPos)
                throws java.sql.SQLException

  INTERNAL

  Throws:
    `java.sql.SQLException`

### getCompressAlgorithm

    public int getCompressAlgorithm(java.lang.String algorithm)
                             throws java.sql.SQLException

  INTERNAL

  Throws:
    `java.sql.SQLException`

### wrapOutputStream

    public static java.io.OutputStream wrapOutputStream(java.io.OutputStream out,
                                                        java.lang.String compressionAlgorithm,
                                                        java.lang.String entryName)
                                                 throws java.sql.SQLException

  INTERNAL

  Throws:
    `java.sql.SQLException`

### wrapInputStream

    public static java.io.InputStream wrapInputStream(java.io.InputStream in,
                                                      java.lang.String compressionAlgorithm,
                                                      java.lang.String entryName)
                                               throws java.sql.SQLException

  INTERNAL

  Throws:
    `java.sql.SQLException`