# Dumper

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

*** ** * ** ***


```
@UnstableApi
public final class Dumper
```

<br />

*** ** * ** ***

Helper utility to dump field values.

## Summary

| ### Nested types |
|---|
| `public interface https://developer.android.com/reference/androidx/media3/test/utils/Dumper.Dumpable` Provides custom dump method. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper#Dumper()()` |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/Dumper#add(androidx.media3.test.utils.Dumper.Dumpable)(https://developer.android.com/reference/androidx/media3/test/utils/Dumper.Dumpable object)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/Dumper#add(java.lang.String,java.lang.Object)(https://developer.android.com/reference/java/lang/String.html field, https://developer.android.com/reference/java/lang/Object.html value)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/Dumper#add(java.lang.String,byte[])(https://developer.android.com/reference/java/lang/String.html field, byte[] value)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/Dumper#addIfNonDefault(java.lang.String,java.lang.Object,java.lang.Object)( https://developer.android.com/reference/java/lang/String.html field, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html value, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html defaultValue )` Calls `https://developer.android.com/reference/androidx/media3/test/utils/Dumper#add(java.lang.String,java.lang.Object)` if `value` is not equal to `defaultValue`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html <T> https://developer.android.com/reference/androidx/media3/test/utils/Dumper#addIfNonDefault(java.lang.String,T,T,com.google.common.base.Function<T,java.lang.Object>)( https://developer.android.com/reference/java/lang/String.html field, T value, T defaultValue, https://guava.dev/releases/snapshot-android/api/docs/com/google/common/base/Function.html<T, https://developer.android.com/reference/java/lang/Object.html> valueTransformFunction )` Applies `valueTransformFunction` to `value` and `defaultValue` and passes the results to `https://developer.android.com/reference/androidx/media3/test/utils/Dumper#addIfNonDefault(java.lang.String,java.lang.Object,java.lang.Object)`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/Dumper#addTime(java.lang.String,long)(https://developer.android.com/reference/java/lang/String.html field, long time)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/Dumper#endBlock()()` |
| `https://developer.android.com/reference/androidx/media3/test/utils/Dumper` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/Dumper#startBlock(java.lang.String)(https://developer.android.com/reference/java/lang/String.html name)` |
| `https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/test/utils/Dumper#toString()()` |

## Public constructors

### Dumper

```
public Dumper()
```

## Public methods

### add

```
@CanIgnoreReturnValue
public Dumper add(Dumper.Dumpable object)
```

### add

```
@CanIgnoreReturnValue
public Dumper add(String field, Object value)
```

### add

```
@CanIgnoreReturnValue
public Dumper add(String field, byte[] value)
```

### addIfNonDefault

```
@CanIgnoreReturnValue
public Dumper addIfNonDefault(
    String field,
    @Nullable Object value,
    @Nullable Object defaultValue
)
```

Calls `https://developer.android.com/reference/androidx/media3/test/utils/Dumper#add(java.lang.String,java.lang.Object)` if `value` is not equal to `defaultValue`.

It is not permitted to pass a null value to `https://developer.android.com/reference/androidx/media3/test/utils/Dumper#add(java.lang.String,java.lang.Object)`, so null is only permitted here as a default value. Passing `value == null && defaultValue != null` will result in a `https://developer.android.com/reference/java/lang/NullPointerException.html`.

### addIfNonDefault

```
@CanIgnoreReturnValue
public Dumper <T> addIfNonDefault(
    String field,
    T value,
    T defaultValue,
    Function<T, Object> valueTransformFunction
)
```

Applies `valueTransformFunction` to `value` and `defaultValue` and passes the results to `https://developer.android.com/reference/androidx/media3/test/utils/Dumper#addIfNonDefault(java.lang.String,java.lang.Object,java.lang.Object)`.

See `https://developer.android.com/reference/androidx/media3/test/utils/Dumper#addIfNonDefault(java.lang.String,java.lang.Object,java.lang.Object)` for limitations around when null results from `valueTransformFunction` are permitted.

### addTime

```
@CanIgnoreReturnValue
public Dumper addTime(String field, long time)
```

### endBlock

```
@CanIgnoreReturnValue
public Dumper endBlock()
```

### startBlock

```
@CanIgnoreReturnValue
public Dumper startBlock(String name)
```

### toString

```
public String toString()
```