# FLASHConfiguration (ARX Developer Documentation)

org.deidentifier.arx.algorithm

## Class FLASHConfiguration

- java.lang.Object
- - org.deidentifier.arx.algorithm.FLASHConfiguration

-     public class FLASHConfiguration
      extends java.lang.Object

  This class parameterizes a phase the interwoven two-phase Flash algorithm.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static FLASHConfiguration` | `createBinaryPhaseConfiguration(FLASHPhaseConfiguration config, History.StorageStrategy storageStrategy, boolean pruneWithLowerBounds, boolean anonymityPropertyPredictable)` Creates a binary-phase only configuration.
    `static FLASHConfiguration` | `createLinearPhaseConfiguration(FLASHPhaseConfiguration config, History.StorageStrategy storageStrategy, boolean pruneWithLowerBounds, boolean anonymityPropertyPredictable)` Creates a linear-phase only configuration.
    `static FLASHConfiguration` | `createTwoPhaseConfiguration(FLASHPhaseConfiguration binaryPhaseConfiguration, FLASHPhaseConfiguration linearPhaseConfiguration, History.StorageStrategy storageStrategy, boolean pruneWithLowerBounds, boolean anonymityPropertyPredictable)` Creates a two-phase configuration.
    `FLASHPhaseConfiguration` | `getBinaryPhaseConfiguration()` Getter.
    `FLASHPhaseConfiguration` | `getLinearPhaseConfiguration()` Getter.
    `History.StorageStrategy` | `getSnapshotStorageStrategy()` Getter: A trigger controlling which transformations are snapshotted.
    `boolean` | `isAnonymityPropertyPredicable()` Returns whether or not the anonymity property is predictable
    `boolean` | `isBinaryPhaseRequired()` Is a binary phase required.
    `boolean` | `isLinearPhaseRequired()` Is a linear phase required.
    `boolean` | `isPruneInsufficientUtility()` Prune based on lower bounds from monotonic shares of metrics for information loss?.

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

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

- - ### Method Detail

    - #### createBinaryPhaseConfiguration

          public static FLASHConfiguration createBinaryPhaseConfiguration(FLASHPhaseConfiguration config,
                                                          History.StorageStrategy storageStrategy,
                                                          boolean pruneWithLowerBounds,
                                                          boolean anonymityPropertyPredictable)

      Creates a binary-phase only configuration.
      Parameters:
        `config` -
        `storageStrategy` -
        `pruneWithLowerBounds` -
        `anonymityPropertyPredictable` -
      Returns:

    - #### createLinearPhaseConfiguration

          public static FLASHConfiguration createLinearPhaseConfiguration(FLASHPhaseConfiguration config,
                                                          History.StorageStrategy storageStrategy,
                                                          boolean pruneWithLowerBounds,
                                                          boolean anonymityPropertyPredictable)

      Creates a linear-phase only configuration.
      Parameters:
        `config` -
        `storageStrategy` -
        `pruneWithLowerBounds` -
        `anonymityPropertyPredictable` -
      Returns:

    - #### createTwoPhaseConfiguration

          public static FLASHConfiguration createTwoPhaseConfiguration(FLASHPhaseConfiguration binaryPhaseConfiguration,
                                                       FLASHPhaseConfiguration linearPhaseConfiguration,
                                                       History.StorageStrategy storageStrategy,
                                                       boolean pruneWithLowerBounds,
                                                       boolean anonymityPropertyPredictable)

      Creates a two-phase configuration.
      Parameters:
        `binaryPhaseConfiguration` -
        `linearPhaseConfiguration` -
        `storageStrategy` -
        `pruneWithLowerBounds` -
        `anonymityPropertyPredictable` -
      Returns:

    - #### getBinaryPhaseConfiguration

          public FLASHPhaseConfiguration getBinaryPhaseConfiguration()

      Getter.
      Returns:

    - #### getLinearPhaseConfiguration

          public FLASHPhaseConfiguration getLinearPhaseConfiguration()

      Getter.
      Returns:

    - #### getSnapshotStorageStrategy

          public History.StorageStrategy getSnapshotStorageStrategy()

      Getter: A trigger controlling which transformations are snapshotted.
      Returns:

    - #### isAnonymityPropertyPredicable

          public boolean isAnonymityPropertyPredicable()

      Returns whether or not the anonymity property is predictable
      Returns:

    - #### isBinaryPhaseRequired

          public boolean isBinaryPhaseRequired()

      Is a binary phase required.
      Returns:

    - #### isLinearPhaseRequired

          public boolean isLinearPhaseRequired()

      Is a linear phase required.
      Returns:

    - #### isPruneInsufficientUtility

          public boolean isPruneInsufficientUtility()

      Prune based on lower bounds from monotonic shares of metrics for information loss?.
      Returns: