# ObserverSpec.Builder

Artifact: [androidx.appsearch:appsearch](https://developer.android.com/jetpack/androidx/releases/appsearch) [View Source](https://cs.android.com/search?q=file:androidx/appsearch/observer/ObserverSpec.java+class:androidx.appsearch.observer.ObserverSpec.Builder) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

*** ** * ** ***

<br />

```
public final class ObserverSpec.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder#Builder()()` |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder` | `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder#addFilterDocumentClasses(java.lang.Class<?>...)(@https://developer.android.com/reference/androidx/annotation/NonNull Class[] documentClasses)` Restricts an observer using this spec to triggering only for documents of one of the provided document classes. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder` | `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder#addFilterDocumentClasses(java.util.Collection<? extends java.lang.Class<?>>)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Collection.html<https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> documentClasses )` Restricts an observer using this spec to triggering only for documents of one of the provided document classes. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder` | `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder#addFilterSchemas(java.lang.String...)(@https://developer.android.com/reference/androidx/annotation/NonNull String[] schemas)` Restricts an observer using this spec to triggering only for documents of one of the provided schema types. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder` | `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder#addFilterSchemas(java.util.Collection<java.lang.String>)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Collection.html<https://developer.android.com/reference/java/lang/String.html> schemas)` Restricts an observer using this spec to triggering only for documents of one of the provided schema types. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec` | `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec.Builder#build()()` Constructs a new `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec` from the contents of this builder. |

## Public constructors

### Builder

Added in 1.1.0

```
public Builder()
```

## Public methods

### addFilterDocumentClasses

```
public @NonNull ObserverSpec.Builder addFilterDocumentClasses(@NonNull Class[] documentClasses)
```

Restricts an observer using this spec to triggering only for documents of one of the provided document classes.

If unset, the observer will match documents of all types.

Merged list available from `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec#getFilterSchemas()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull Class[] documentClasses` | classes annotated with `https://developer.android.com/reference/androidx/appsearch/annotation/Document`. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/appsearch/exceptions/AppSearchException` |   |

### addFilterDocumentClasses

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

```
public @NonNull ObserverSpec.Builder addFilterDocumentClasses(
    @NonNull Collection<Class<@NonNull ?>> documentClasses
)
```

Restricts an observer using this spec to triggering only for documents of one of the provided document classes.

If unset, the observer will match documents of all types.

Merged list available from `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec#getFilterSchemas()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Collection.html<https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> documentClasses` | classes annotated with `https://developer.android.com/reference/androidx/appsearch/annotation/Document`. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/appsearch/exceptions/AppSearchException` |   |

### addFilterSchemas

```
public @NonNull ObserverSpec.Builder addFilterSchemas(@NonNull String[] schemas)
```

Restricts an observer using this spec to triggering only for documents of one of the provided schema types.

If unset, the observer will match documents of all types.

### addFilterSchemas

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

```
public @NonNull ObserverSpec.Builder addFilterSchemas(@NonNull Collection<String> schemas)
```

Restricts an observer using this spec to triggering only for documents of one of the provided schema types.

If unset, the observer will match documents of all types.

### build

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

```
public @NonNull ObserverSpec build()
```

Constructs a new `https://developer.android.com/reference/androidx/appsearch/observer/ObserverSpec` from the contents of this builder.