Package org.apache.commons.compress.compressors.xz

# Class XZUtils

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

public class XZUtils extends Object
Utility code for the xz compression format.

Since:
  1.4
This class is thread-safe

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `getCompressedFilename(String fileName)`
  Maps the given file name to the name that the file should have after compression with xz.
  `static String`
  `getUncompressedFilename(String fileName)`
  Maps the given name of a xz-compressed file to the name that the file should have after uncompression.
  `static boolean`
  `isCompressedFilename(String fileName)`
  Detects common xz suffixes in the given file name.
  `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 Details

  - ### getCompressedFilename

    public static String getCompressedFilename(String fileName)
    Maps the given file name 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 file name.
    Parameters:
      `fileName` - name of a file
    Returns:
      name of the corresponding compressed file

  - ### getUncompressedFilename

    public static String getUncompressedFilename(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 file names 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 file name is returned unmapped.
    Parameters:
      `fileName` - name of a file
    Returns:
      name of the corresponding uncompressed file

  - ### isCompressedFilename

    public static boolean isCompressedFilename(String fileName)
    Detects common xz suffixes in the given file name.
    Parameters:
      `fileName` - name of a file
    Returns:
      `true` if the file name has a common xz suffix, `false` otherwise

  - ### 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

  - ### 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

  - ### 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