# RemoteDescriptor.Builder

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

*** ** * ** ***

<br />

```
class RemoteDescriptor.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder#Builder()()` |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor!` | `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder#build()()` Builds a `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor` from the builder properties set. |
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder#setInstanceFieldDescriptors(androidx.test.espresso.remote.FieldDescriptor...)(fieldDescriptors: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/FieldDescriptor!>?)` Sets the `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/FieldDescriptor`s associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`. |
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder#setInstanceType(java.lang.Class<?>)(instanceType: https://developer.android.com/reference/java/lang/Class.html<*>)` Sets the instance type for associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`. |
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder#setProtoBuilderType(java.lang.Class<?>)(protoBuilderType: https://developer.android.com/reference/java/lang/Class.html<*>)` Sets the type of the proto message builder associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`. |
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder#setProtoParser(com.google.protobuf.Parser<?>)(protoParser: https://protobuf.dev/reference/java/api-docs/com/google/protobuf/Parser.html<*>)` Sets the type of the proto message parser associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`. |
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder#setProtoType(java.lang.Class<?>)(protoType: https://developer.android.com/reference/java/lang/Class.html<*>)` Sets the type of the proto message associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`. |
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder#setRemoteConstrTypes(java.lang.Class<?>...)(remoteConstrTypes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/java/lang/Class.html<*>!>?)` Sets the remote constructor types of the `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/EspressoRemoteMessage` associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`. |
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder#setRemoteType(java.lang.Class<?>)(remoteType: https://developer.android.com/reference/java/lang/Class.html<*>)` Sets the type of the `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/EspressoRemoteMessage` associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`. |

## Public constructors

### Builder

```
Builder()
```

## Public functions

### build

```
fun build(): RemoteDescriptor!
```

Builds a `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor` from the builder properties set.

### setInstanceFieldDescriptors

```
fun setInstanceFieldDescriptors(fieldDescriptors: Array<FieldDescriptor!>?): RemoteDescriptor.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/FieldDescriptor`s associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`.

The field descriptor order, must match the `instanceType`s declared constructor parameter order.

Note: Any field descriptors passed to this method will be overwritten by field descriptors annotated with `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/annotation/RemoteMsgField`.

| Parameters |
|---|---|
| `fieldDescriptors: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/FieldDescriptor!>?` |   |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | fluent builder interface |

### setInstanceType

```
fun setInstanceType(instanceType: Class<*>): RemoteDescriptor.Builder!
```

Sets the instance type for associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`.

The instance type represents the class that will be converted to and from a proto.

| Parameters |
|---|---|
| `instanceType: https://developer.android.com/reference/java/lang/Class.html<*>` |   |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | fluent builder interface |

### setProtoBuilderType

```
fun setProtoBuilderType(protoBuilderType: Class<*>): RemoteDescriptor.Builder!
```

Sets the type of the proto message builder associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`.

By default the proto builder will be created by this class. Only call this method if a custom builder is required.

| Parameters |
|---|---|
| `protoBuilderType: https://developer.android.com/reference/java/lang/Class.html<*>` | the proto message builder class |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | fluent builder interface |

### setProtoParser

```
fun setProtoParser(protoParser: Parser<*>): RemoteDescriptor.Builder!
```

Sets the type of the proto message parser associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`.

By default the proto parser is inferred from the `protoType`. Only call this method if a custom parser is required.

| Parameters |
|---|---|
| `protoParser: https://protobuf.dev/reference/java/api-docs/com/google/protobuf/Parser.html<*>` | the proto parser |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | fluent builder interface |

### setProtoType

```
fun setProtoType(protoType: Class<*>): RemoteDescriptor.Builder!
```

Sets the type of the proto message associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`.

| Parameters |
|---|---|
| `protoType: https://developer.android.com/reference/java/lang/Class.html<*>` | the proto message class |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | fluent builder interface |

### setRemoteConstrTypes

```
fun setRemoteConstrTypes(remoteConstrTypes: Array<Class<*>!>?): RemoteDescriptor.Builder!
```

Sets the remote constructor types of the `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/EspressoRemoteMessage` associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`.

The types passed to this method will be used to reflectively infer the remote message constructor.

By default the `instanceType` is used as remote message constructor. Only set custom remote constructor types, when the remote message constructor takes a superclass or interface, implemented by the instance type. Don't call this method when using `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/GenericRemoteMessage`.

| Parameters |
|---|---|
| `remoteConstrTypes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/java/lang/Class.html<*>!>?` |   |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | fluent builder interface |

### setRemoteType

```
fun setRemoteType(remoteType: Class<*>): RemoteDescriptor.Builder!
```

Sets the type of the `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/EspressoRemoteMessage` associated with this `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor`.

| Parameters |
|---|---|
| `remoteType: https://developer.android.com/reference/java/lang/Class.html<*>` | the remote message class |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/espresso/remote/RemoteDescriptor.Builder!` | fluent builder interface |