# Uses of Class org.deidentifier.arx.DataHandle (ARX Developer Documentation)

## Uses of Class
org.deidentifier.arx.DataHandle

- Packages that use DataHandle
  Package | Description
  --- | ---
  org.deidentifier.arx | This package provides the public API for the ARX anonymization framework.
  org.deidentifier.arx.certificate |
  org.deidentifier.arx.common | A package containing commonly used classes in ARX

- - ### Uses of DataHandle in org.deidentifier.arx

    Subclasses of DataHandle in org.deidentifier.arx
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DataHandleInput` An implementation of the DataHandle interface for input data.
    `class` | `DataHandleOutput` An implementation of the class DataHandle for output data.
    `class` | `DataHandleSubset` This implementation of a data handle projects a given data handle onto a given research subset.

    Fields in org.deidentifier.arx declared as DataHandle
    Modifier and Type | Field and Description
    --- | ---
    `protected DataHandle` | DataHandle.`subset` The current research subset.

    Methods in org.deidentifier.arx that return DataHandle
    Modifier and Type | Method and Description
    --- | ---
    `DataHandle` | ARXResult.`getHandle()` Deprecated.
    `DataHandle` | Data.`getHandle()` Returns a data handle.
    `DataHandle` | ARXResult.`getHandle(ARXLattice.ARXNode node)` Deprecated.
    `DataHandle` | ARXResult.`getOutput()` Returns a handle to the data obtained by applying the optimal transformation.
    `DataHandle` | ARXResult.`getOutput(ARXLattice.ARXNode node)` Returns a handle to data obtained by applying the given transformation.
    `DataHandle` | ARXResult.`getOutput(ARXLattice.ARXNode node, boolean fork)` Returns a handle to data obtained by applying the given transformation.
    `DataHandle` | ARXResult.`getOutput(boolean fork)` Returns a handle to the data obtained by applying the optimal transformation.
    `protected DataHandle` | DataHandleSubset.`getSource()` Returns the underlying source data handle.
    `DataHandle` | DataHandle.`getView()` Returns a new data handle that represents a context specific view on the dataset.
    `DataHandle` | DataHandleSubset.`getView()`

    Methods in org.deidentifier.arx with parameters of type DataHandle
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | ARXResult.`isOptimizable(DataHandle handle)` Returns whether local recoding can be applied to the given handle
    `protected void` | DataDefinition.`materializeHierarchies(DataHandle handle)` Materializes all functional hierarchies.
    `int` | ARXResult.`optimize(DataHandle handle)` This method optimizes the given data output with local recoding to improve its utility
    `int` | ARXResult.`optimize(DataHandle handle, double gsFactor)` This method optimizes the given data output with local recoding to improve its utility
    `int` | ARXResult.`optimize(DataHandle handle, double gsFactor, ARXListener listener)` This method optimizes the given data output with local recoding to improve its utility
    `void` | ARXResult.`optimizeIterative(DataHandle handle, double gsFactor, int maxIterations, double adaptionFactor)` This method optimizes the given data output with local recoding to improve its utility
    `void` | ARXResult.`optimizeIterative(DataHandle handle, double gsFactor, int maxIterations, double adaptionFactor, ARXListener listener)` This method optimizes the given data output with local recoding to improve its utility
    `protected void` | DataHandle.`setView(DataHandle handle)` Sets the subset.
    `void` | DataHandleOutput.`updateData(DataHandle data, java.util.Map<java.lang.String,DataType<?>> types, int[] outliers)` Used to update data when loading projects after local recoding.

    Constructors in org.deidentifier.arx with parameters of type DataHandle
    Constructor and Description
    `ARXResult(DataHandle handle, DataDefinition definition, ARXLattice lattice, int historySize, double snapshotSizeSnapshot, double snapshotSizeDataset, Metric<?> metric, ARXConfiguration config, ARXLattice.ARXNode optimum, long time, SolutionSpace solutionSpace)` Internal constructor for deserialization.
    `DataHandleInternal(DataHandle handle)` Constructor
    `DataHandleSubset(DataHandle source, DataSubset subset)` Creates a new handle that represents the research subset.

  - ### Uses of DataHandle in org.deidentifier.arx.certificate

    Methods in org.deidentifier.arx.certificate with parameters of type DataHandle
    Modifier and Type | Method and Description
    --- | ---
    `static ARXCertificate` | ARXCertificate.`create(DataHandle input, DataDefinition definition, ARXConfiguration config, ARXResult result, ARXLattice.ARXNode transformation, DataHandle output)` Creates a new instance
    `static ARXCertificate` | ARXCertificate.`create(DataHandle input, DataDefinition definition, ARXConfiguration config, ARXResult result, ARXLattice.ARXNode transformation, DataHandle output, CSVSyntax syntax)` Renders the document into the given output stream.
    `static ARXCertificate` | ARXCertificate.`create(DataHandle input, DataDefinition definition, ARXConfiguration config, ARXResult result, ARXLattice.ARXNode transformation, DataHandle output, CSVSyntax syntax, ElementData metadata)` Renders the document into the given output stream.

  - ### Uses of DataHandle in org.deidentifier.arx.common

    Constructors in org.deidentifier.arx.common with parameters of type DataHandle
    Constructor and Description
    `TupleWrapper(DataHandle handle, int[] indices, int row)` Constructor