# StorageDomain.CustomData

Artifact: [androidx.test.backup:backup-host](https://developer.android.com/jetpack/androidx/releases/test-backup) [View Source](https://cs.android.com/search?q=file:androidx/test/backup/host/StorageDomain.kt+class:androidx.test.backup.host.StorageDomain.CustomData) Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/test-backup#1.0.0-alpha04)

*** ** * ** ***


```
public final class StorageDomain.CustomData extends StorageDomain
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.test.backup.host.StorageDomain](https://developer.android.com/reference/androidx/test/backup/host/StorageDomain) ||
|   | ↳ | [androidx.test.backup.host.StorageDomain.CustomData](https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData) |

*** ** * ** ***

Targets data that device actions of your own seed and verify, such as a restore credential that only the app's code can create and read.

The flow runs `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#populateAction()` with `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#(kotlin.String,kotlin.String,kotlin.collections.Map)` before the backup. After the restore, it runs `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#verifyAction()` with `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#(kotlin.String,kotlin.String,kotlin.collections.Map)` and the data that `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#populateAction()` returned, except its `status` and `error`. That data replaces the values of `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#(kotlin.String,kotlin.String,kotlin.collections.Map)` with the same keys. The flow fails if either action fails, or if `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#populateAction()` returns a key that the runner reserves.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#CustomData(kotlin.String,kotlin.String,kotlin.collections.Map)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html populateAction, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html verifyAction, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html> args )` |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#getArgs()()` arguments for both actions, as `https://developer.android.com/reference/androidx/test/backup/host/BackupRestoreController#runOnDevice(kotlin.String,kotlin.collections.Map,java.time.Duration,kotlin.Boolean)` takes them. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#getPopulateAction()()` class name of the `https://developer.android.com/reference/androidx/test/backup/BackupDeviceAction` that seeds the data |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#getVerifyAction()()` class name of the `https://developer.android.com/reference/androidx/test/backup/BackupDeviceAction` that verifies the data after the restore |
| `int` | `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#hashCode()()` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/test/backup/host/StorageDomain.CustomData#toString()()` |

## Public constructors

### CustomData

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/test-backup#1.0.0-alpha04)

```
public CustomData(
    @NonNull String populateAction,
    @NonNull String verifyAction,
    @NonNull Map<@NonNull String, @NonNull String> args
)
```

## Public methods

### equals

```
public boolean equals(Object other)
```

### getArgs

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/test-backup#1.0.0-alpha04)

```
public final @NonNull Map<@NonNull String, @NonNull String> getArgs()
```

arguments for both actions, as `https://developer.android.com/reference/androidx/test/backup/host/BackupRestoreController#runOnDevice(kotlin.String,kotlin.collections.Map,java.time.Duration,kotlin.Boolean)` takes them. The keys `actionClass`, `argsFile`, `debug` and `redirect_dir` are reserved for the runner; with one of them, construction fails with an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html`. The domain keeps a copy of it.

### getPopulateAction

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/test-backup#1.0.0-alpha04)

```
public final @NonNull String getPopulateAction()
```

class name of the `https://developer.android.com/reference/androidx/test/backup/BackupDeviceAction` that seeds the data

### getVerifyAction

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/test-backup#1.0.0-alpha04)

```
public final @NonNull String getVerifyAction()
```

class name of the `https://developer.android.com/reference/androidx/test/backup/BackupDeviceAction` that verifies the data after the restore

### hashCode

```
public int hashCode()
```

### toString

```
public @NonNull String toString()
```