# RemoteDescriptorRegistry

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/RemoteDescriptorRegistry.java+class:androidx.test.espresso.remote.RemoteDescriptorRegistry)

*** ** * ** ***

<br />

```
public final class RemoteDescriptorRegistry
```

<br />

*** ** * ** ***

A registry for registering remote descriptors. Remote descriptors are registered in the form of a `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` object.

## Summary

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` | `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry#argForInstanceType(java.lang.Class<?>)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> targetType)` |
| `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` | `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry#argForMsgType(java.lang.Class<?>)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> protoMsgType)` |
| `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` | `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry#argForRemoteTypeUrl(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html typeUrl)` Returns an `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` by its any type url. |
| `static https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry` | `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry#getInstance()()` Returns a `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry` object |
| `boolean` | `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry#hasArgForInstanceType(java.lang.Class<?>)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> instanceType)` Checks if an instance type is registered with this registry. |
| `boolean` | `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry#registerRemoteTypeArgs(java.util.List<androidx.test.espresso.remote.RemoteDescriptor>)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor> remoteDescriptors )` |
| `void` | `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry#unregisterRemoteTypeArgs(java.util.List<androidx.test.espresso.remote.RemoteDescriptor>)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor> remoteDescriptors )` |

## Public methods

### argForInstanceType

```
public RemoteDescriptor argForInstanceType(@NonNull Class<@NonNull ?> targetType)
```

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` | an `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` object by its target type. |

### argForMsgType

```
public RemoteDescriptor argForMsgType(@NonNull Class<@NonNull ?> protoMsgType)
```

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` | an `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` object by its proto message type. |

### argForRemoteTypeUrl

```
public RemoteDescriptor argForRemoteTypeUrl(@NonNull String typeUrl)
```

Returns an `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` by its any type url. The any type url in this case must match the remote type class, which knows how to convert a class to and from its target type!

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` | an `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` object by its remote type url. |

### getInstance

```
public static RemoteDescriptorRegistry getInstance()
```

Returns a `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry` object

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry` | an instance of `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptorRegistry` object. |

### hasArgForInstanceType

```
public boolean hasArgForInstanceType(@NonNull Class<@NonNull ?> instanceType)
```

Checks if an instance type is registered with this registry.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> instanceType` | the instance to check |

| Returns |
|---|---|
| `boolean` | true if a `https://developer.android.com/reference/androidx/test/espresso/remote/RemoteDescriptor` is registered for instance type |

### registerRemoteTypeArgs

```
public boolean registerRemoteTypeArgs(
    @NonNull List<RemoteDescriptor> remoteDescriptors
)
```

### unregisterRemoteTypeArgs

```
public void unregisterRemoteTypeArgs(
    @NonNull List<RemoteDescriptor> remoteDescriptors
)
```