# SavedStateConfiguration.Builder

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/serialization/SavedStateConfiguration.kt+class:androidx.savedstate.serialization.SavedStateConfiguration.Builder) Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0)

*** ** * ** ***


```
public final class SavedStateConfiguration.Builder
```

<br />

*** ** * ** ***

Builder of the `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` instance provided by `SavedStateConfig { ... }` factory function.

## Summary

| ### Public methods |
|---|---|
| `final int` | `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration.Builder#getClassDiscriminatorMode()()` Defines which classes and objects should have class discriminator added to the output. |
| `final boolean` | `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration.Builder#getEncodeDefaults()()` Specifies whether default values of Kotlin properties should be encoded. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization.modules/-serializers-module/index.html` | `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration.Builder#getSerializersModule()()` Module with contextual and polymorphic serializers to be used in the resulting `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` instance. |
| `final void` | `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration.Builder#setClassDiscriminatorMode(kotlin.Int)(int value)` Defines which classes and objects should have class discriminator added to the output. |
| `final void` | `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration.Builder#setEncodeDefaults(kotlin.Boolean)(boolean value)` Specifies whether default values of Kotlin properties should be encoded. |
| `final void` | `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration.Builder#setSerializersModule(kotlinx.serialization.modules.SerializersModule)(@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization.modules/-serializers-module/index.html value)` Module with contextual and polymorphic serializers to be used in the resulting `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` instance. |

## Public methods

### getClassDiscriminatorMode

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0)

```
public final int getClassDiscriminatorMode()
```

Defines which classes and objects should have class discriminator added to the output. `https://developer.android.com/reference/androidx/savedstate/serialization/ClassDiscriminatorMode#POLYMORPHIC()` by default.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/savedstate/serialization/ClassDiscriminatorMode` |   |

### getEncodeDefaults

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0)

```
public final boolean getEncodeDefaults()
```

Specifies whether default values of Kotlin properties should be encoded. `false` by default. This option does not affect decoding.

### getSerializersModule

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0)

```
public final @NonNull SerializersModule getSerializersModule()
```

Module with contextual and polymorphic serializers to be used in the resulting `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` instance.

Note that this `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization.modules/-serializers-module/index.html` will be combined with an internal `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization.modules/-serializers-module/index.html` in the resulting `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` to support built-in types.

| See also |
|---|---|
| `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization.modules/-serializers-module/index.html` |   |
| `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-contextual/index.html` |   |
| `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-polymorphic/index.html` |   |

### setClassDiscriminatorMode

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0)

```
public final void setClassDiscriminatorMode(int value)
```

Defines which classes and objects should have class discriminator added to the output. `https://developer.android.com/reference/androidx/savedstate/serialization/ClassDiscriminatorMode#POLYMORPHIC()` by default.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/savedstate/serialization/ClassDiscriminatorMode` |   |

### setEncodeDefaults

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0)

```
public final void setEncodeDefaults(boolean value)
```

Specifies whether default values of Kotlin properties should be encoded. `false` by default. This option does not affect decoding.

### setSerializersModule

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0)

```
public final void setSerializersModule(@NonNull SerializersModule value)
```

Module with contextual and polymorphic serializers to be used in the resulting `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` instance.

Note that this `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization.modules/-serializers-module/index.html` will be combined with an internal `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization.modules/-serializers-module/index.html` in the resulting `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` to support built-in types.

| See also |
|---|---|
| `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization.modules/-serializers-module/index.html` |   |
| `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-contextual/index.html` |   |
| `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-polymorphic/index.html` |   |