DeltaOptions
Date: 2017-02-08

org.tukaani.xz

## Class DeltaOptions

- java.lang.Object
- - org.tukaani.xz.FilterOptions
  - - org.tukaani.xz.DeltaOptions

- All Implemented Interfaces:
    java.lang.Cloneable

      public class DeltaOptions
      extends FilterOptions

  Delta filter options. The Delta filter can be used only as a non-last filter in the chain, for example Delta + LZMA2.

  Currently only simple byte-wise delta is supported. The only option is the delta distance, which you should set to match your data. It's not possible to provide a generic default value for it.

  For example, with distance = 2 and eight-byte input A1 B1 A2 B3 A3 B5 A4 B7, the output will be A1 B1 01 02 01 02 01 02.

  The Delta filter can be good with uncompressed bitmap images. It can also help with PCM audio, although special-purpose compressors like FLAC will give much smaller result at much better compression speed.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DISTANCE_MAX` Largest supported delta calculation distance.
    `static int` | `DISTANCE_MIN` Smallest supported delta calculation distance.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DeltaOptions()` Creates new Delta options and sets the delta distance to 1 byte.
    `DeltaOptions(int distance)` Creates new Delta options and sets the distance to the given value.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()`
    `int` | `getDecoderMemoryUsage()` Gets how much memory the decoder will need to decompress the data that was encoded with these options.
    `int` | `getDistance()` Gets the delta distance.
    `int` | `getEncoderMemoryUsage()` Gets how much memory the encoder will need with these options.
    `java.io.InputStream` | `getInputStream(java.io.InputStream in)` Gets a raw (no XZ headers) decoder input stream using these options.
    `FinishableOutputStream` | `getOutputStream(FinishableOutputStream out)` Gets a raw (no XZ headers) encoder output stream using these options.
    `void` | `setDistance(int distance)` Sets the delta distance in bytes.

    - ### Methods inherited from class org.tukaani.xz.FilterOptions

      `getDecoderMemoryUsage, getEncoderMemoryUsage`

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

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

- - ### Field Detail

    - #### DISTANCE_MIN

          public static final int DISTANCE_MIN

      Smallest supported delta calculation distance.
      See Also:
        Constant Field Values

    - #### DISTANCE_MAX

          public static final int DISTANCE_MAX

      Largest supported delta calculation distance.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### DeltaOptions

          public DeltaOptions()

      Creates new Delta options and sets the delta distance to 1 byte.

    - #### DeltaOptions

          public DeltaOptions(int distance)
                       throws UnsupportedOptionsException

      Creates new Delta options and sets the distance to the given value.
      Throws:
        `UnsupportedOptionsException`

  - ### Method Detail

    - #### setDistance

          public void setDistance(int distance)
                           throws UnsupportedOptionsException

      Sets the delta distance in bytes. The new distance must be in the range [DISTANCE_MIN, DISTANCE_MAX].
      Throws:
        `UnsupportedOptionsException`

    - #### getDistance

          public int getDistance()

      Gets the delta distance.

    - #### getEncoderMemoryUsage

          public int getEncoderMemoryUsage()

      Description copied from class: `FilterOptions`
      Gets how much memory the encoder will need with these options.
      Specified by:
        `getEncoderMemoryUsage` in class `FilterOptions`

    - #### getOutputStream

          public FinishableOutputStream getOutputStream(FinishableOutputStream out)

      Description copied from class: `FilterOptions`
      Gets a raw (no XZ headers) encoder output stream using these options. Raw streams are an advanced feature. In most cases you want to store the compressed data in the .xz container format instead of using a raw stream. To use this filter in a .xz file, pass this object to XZOutputStream.
      Specified by:
        `getOutputStream` in class `FilterOptions`

    - #### getDecoderMemoryUsage

          public int getDecoderMemoryUsage()

      Description copied from class: `FilterOptions`
      Gets how much memory the decoder will need to decompress the data that was encoded with these options.
      Specified by:
        `getDecoderMemoryUsage` in class `FilterOptions`

    - #### getInputStream

          public java.io.InputStream getInputStream(java.io.InputStream in)

      Description copied from class: `FilterOptions`
      Gets a raw (no XZ headers) decoder input stream using these options.
      Specified by:
        `getInputStream` in class `FilterOptions`

    - #### clone

          public java.lang.Object clone()

      Overrides:
        `clone` in class `java.lang.Object`