XZUtils
Date: 2017-02-08

org.apache.commons.compress.compressors.xz

## Class XZUtils

- java.lang.Object
- - org.apache.commons.compress.compressors.xz.XZUtils

-     public class XZUtils
      extends java.lang.Object

  Utility code for the xz compression format.
  Since:
    1.4

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.lang.String` | `getCompressedFilename(java.lang.String filename)` Maps the given filename to the name that the file should have after compression with xz.
    `static java.lang.String` | `getUncompressedFilename(java.lang.String filename)` Maps the given name of a xz-compressed file to the name that the file should have after uncompression.
    `static boolean` | `isCompressedFilename(java.lang.String filename)` Detects common xz suffixes in the given filename.
    `static boolean` | `isXZCompressionAvailable()` Are the classes required to support XZ compression available?
    `static boolean` | `matches(byte[] signature, int length)` Checks if the signature matches what is expected for a .xz file.
    `static void` | `setCacheXZAvailablity(boolean doCache)` Whether to cache the result of the XZ for Java check.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### matches

          public static boolean matches(byte[] signature,
                        int length)

      Checks if the signature matches what is expected for a .xz file.

      This is more or less a copy of the version found in `XZCompressorInputStream` but doesn't depend on the presence of XZ for Java.

      Parameters:
        `signature` - the bytes to check
        `length` - the number of bytes to check
      Returns:
        true if signature matches the .xz magic bytes, false otherwise
      Since:
        1.9

    - #### isXZCompressionAvailable

          public static boolean isXZCompressionAvailable()

      Are the classes required to support XZ compression available?
      Returns:
        true if the classes required to support XZ compression are available
      Since:
        1.5

    - #### isCompressedFilename

          public static boolean isCompressedFilename(java.lang.String filename)

      Detects common xz suffixes in the given filename.
      Parameters:
        `filename` - name of a file
      Returns:
        `true` if the filename has a common xz suffix, `false` otherwise

    - #### getUncompressedFilename

          public static java.lang.String getUncompressedFilename(java.lang.String filename)

      Maps the given name of a xz-compressed file to the name that the file should have after uncompression. Commonly used file type specific suffixes like ".txz" are automatically detected and correctly mapped. For example the name "package.txz" is mapped to "package.tar". And any filenames with the generic ".xz" suffix (or any other generic xz suffix) is mapped to a name without that suffix. If no xz suffix is detected, then the filename is returned unmapped.
      Parameters:
        `filename` - name of a file
      Returns:
        name of the corresponding uncompressed file

    - #### getCompressedFilename

          public static java.lang.String getCompressedFilename(java.lang.String filename)

      Maps the given filename to the name that the file should have after compression with xz. Common file types with custom suffixes for compressed versions are automatically detected and correctly mapped. For example the name "package.tar" is mapped to "package.txz". If no custom mapping is applicable, then the default ".xz" suffix is appended to the filename.
      Parameters:
        `filename` - name of a file
      Returns:
        name of the corresponding compressed file

    - #### setCacheXZAvailablity

          public static void setCacheXZAvailablity(boolean doCache)

      Whether to cache the result of the XZ for Java check.

      This defaults to `false` in an OSGi environment and `true` otherwise.

      Parameters:
        `doCache` - whether to cache the result
      Since:
        1.9