# ContentMetadataMutations

Artifact: [androidx.media3:media3-datasource](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/datasource/cache/ContentMetadataMutations.java+class:androidx.media3.datasource.cache.ContentMetadataMutations)

*** ** * ** ***


```
@UnstableApi
public class ContentMetadataMutations
```

<br />

*** ** * ** ***

Defines multiple mutations on metadata value which are applied atomically. This class isn't thread safe.

## Summary

| ### Public fields |
|---|---|
| `final https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/Object.html>` | `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#editedValues()` |
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#removedValues()` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#ContentMetadataMutations()()` Constructs a DefaultMetadataMutations. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/Object.html>` | `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#getEditedValues()()` Returns a map of metadata name, value pairs to be set. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#getRemovedValues()()` Returns a list of names of metadata values to be removed. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#remove(java.lang.String)(https://developer.android.com/reference/java/lang/String.html name)` Adds a mutation to remove a metadata value. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#set(java.lang.String,byte[])(https://developer.android.com/reference/java/lang/String.html name, byte[] value)` Adds a mutation to set a metadata value. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#set(java.lang.String,long)(https://developer.android.com/reference/java/lang/String.html name, long value)` Adds a mutation to set a metadata value. |
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#set(java.lang.String,java.lang.String)(https://developer.android.com/reference/java/lang/String.html name, https://developer.android.com/reference/java/lang/String.html value)` Adds a mutation to set a metadata value. |
| `static https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#setContentLength(androidx.media3.datasource.cache.ContentMetadataMutations,long)(https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations mutations, long length)` Adds a mutation to set the `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadata#KEY_CONTENT_LENGTH()` value, or to remove any existing value if `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` is passed. |
| `static https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations#setRedirectedUri(androidx.media3.datasource.cache.ContentMetadataMutations,android.net.Uri)(https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations mutations, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/net/Uri.html uri)` Adds a mutation to set the `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadata#KEY_REDIRECTED_URI()` value, or to remove any existing entry if `null` is passed. |

## Public fields

### editedValues

```
public final Map<String, Object> editedValues
```

### removedValues

```
public final List<String> removedValues
```

## Public constructors

### ContentMetadataMutations

```
public ContentMetadataMutations()
```

Constructs a DefaultMetadataMutations.

## Public methods

### getEditedValues

```
public Map<String, Object> getEditedValues()
```

Returns a map of metadata name, value pairs to be set. Values are copied.

### getRemovedValues

```
public List<String> getRemovedValues()
```

Returns a list of names of metadata values to be removed.

### remove

```
@CanIgnoreReturnValue
public ContentMetadataMutations remove(String name)
```

Adds a mutation to remove a metadata value.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html name` | The name of the metadata value. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | This instance, for convenience. |

### set

```
@CanIgnoreReturnValue
public ContentMetadataMutations set(String name, byte[] value)
```

Adds a mutation to set a metadata value.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html name` | The name of the metadata value. |
| `byte[] value` | The value to be set. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | This instance, for convenience. |

### set

```
@CanIgnoreReturnValue
public ContentMetadataMutations set(String name, long value)
```

Adds a mutation to set a metadata value.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html name` | The name of the metadata value. |
| `long value` | The value to be set. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | This instance, for convenience. |

### set

```
@CanIgnoreReturnValue
public ContentMetadataMutations set(String name, String value)
```

Adds a mutation to set a metadata value.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html name` | The name of the metadata value. |
| `https://developer.android.com/reference/java/lang/String.html value` | The value to be set. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | This instance, for convenience. |

### setContentLength

```
public static ContentMetadataMutations setContentLength(ContentMetadataMutations mutations, long length)
```

Adds a mutation to set the `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadata#KEY_CONTENT_LENGTH()` value, or to remove any existing value if `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` is passed.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations mutations` | The mutations to modify. |
| `long length` | The length value, or `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` to remove any existing entry. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | The mutations instance, for convenience. |

### setRedirectedUri

```
public static ContentMetadataMutations setRedirectedUri(ContentMetadataMutations mutations, @Nullable Uri uri)
```

Adds a mutation to set the `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadata#KEY_REDIRECTED_URI()` value, or to remove any existing entry if `null` is passed.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations mutations` | The mutations to modify. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/net/Uri.html uri` | The `https://developer.android.com/reference/android/net/Uri.html` value, or `null` to remove any existing entry. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/datasource/cache/ContentMetadataMutations` | The mutations instance, for convenience. |