# Stopwatch.BuilderBase

Artifact: [androidx.appsearch:appsearch-builtin-types](https://developer.android.com/jetpack/androidx/releases/appsearch) [View Source](https://cs.android.com/search?q=file:androidx/appsearch/builtintypes/Stopwatch.java+class:androidx.appsearch.builtintypes.Stopwatch.BuilderBase) Added in [1.2.0-alpha02](https://developer.android.com/jetpack/androidx/releases/appsearch#1.2.0-alpha02)

*** ** * ** ***


```
@ExperimentalAppSearchApi
public class Stopwatch.BuilderBase<T extends Stopwatch.BuilderBase<T>> extends Thing.BuilderBase<T>
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.appsearch.builtintypes.Thing.BuilderBase](https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase)\<T\> ||
|   | ↳ | [androidx.appsearch.builtintypes.Stopwatch.BuilderBase](https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase) |

Known direct subclasses [Stopwatch.Builder](https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.Builder)

|---|---|
| `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.Builder` | Builder for `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch`. |

*** ** * ** ***

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#BuilderBase(androidx.appsearch.builtintypes.Stopwatch)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch stopwatch)` Constructor for `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase` with all the existing values. |
| `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#BuilderBase(java.lang.String,java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html namespace, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html id)` Constructor for `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase`. |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` | `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#build()()` Builds the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch`. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` | `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#setAccumulatedDurationMillis(long)(long accumulatedDurationMillis)` Sets the total duration in milliseconds accumulated by the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch`. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` | `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#setBaseTimeMillis(long)(long baseTimeMillis)` Sets the point in time that the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` counts up from. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` | `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#setBaseTimeMillis(long,long,int)( long baseTimeMillis, long baseTimeMillisInElapsedRealtime, int bootCount )` Sets the point in time that the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` counts up from. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` | `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#setBaseTimeMillis(android.content.Context,long,long)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/Context.html context, long baseTimeMillis, long baseTimeMillisInElapsedRealtime )` Sets the point in time that the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` counts up from. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` | `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#setBaseTimeMillisInElapsedRealtime(long)( long baseTimeMillisInElapsedRealtime )` Sets the point in time that the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` counts up from. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` | `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#setBootCount(int)(int bootCount)` Sets the boot count of the device. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` | `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#setLaps(java.util.List<androidx.appsearch.builtintypes.StopwatchLap>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/appsearch/builtintypes/StopwatchLap> laps)` Sets all the `https://developer.android.com/reference/androidx/appsearch/builtintypes/StopwatchLap` instances. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` | `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#setStatus(int)(int status)` Sets the current status. |

### Inherited methods

From [androidx.appsearch.builtintypes.Thing.BuilderBase](https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase) `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#addAlternateName(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html alternateName)`

Adds an alias for the item.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `@https://developer.android.com/reference/androidx/appsearch/app/ExperimentalAppSearchApi
https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#addPotentialAction(androidx.appsearch.builtintypes.PotentialAction)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/builtintypes/PotentialAction newPotentialAction)`

Add a new action to the list of potential actions for this document.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#clearAlternateNames()()`

Clears the aliases, if any, for the item.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `@https://developer.android.com/reference/androidx/appsearch/app/ExperimentalAppSearchApi
https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#clearPotentialActions()()`

Clear all the potential actions for this document.
`void` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#resetIfBuilt()()`

If built, make a copy of previous data for every field so that the builder can be reused.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#setAlternateNames(java.util.List<java.lang.String>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> alternateNames)`

Sets a list of aliases for the item.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#setCreationTimestampMillis(long)(long creationTimestampMillis)`

Sets the creation timestamp for the current AppSearch entity, in milliseconds using the `https://developer.android.com/reference/java/lang/System.html#currentTimeMillis()` time base.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#setDescription(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html description)`

Sets the description for the item.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#setDocumentScore(int)(int documentScore)`

Sets the user-provided opaque document score of the current AppSearch document, which can be used for ranking using `https://developer.android.com/reference/androidx/appsearch/app/SearchSpec#RANKING_STRATEGY_DOCUMENT_SCORE()`.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#setDocumentTtlMillis(long)(long documentTtlMillis)`

Sets the time-to-live (TTL) for the current AppSearch document as a duration in milliseconds.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `@https://developer.android.com/reference/androidx/appsearch/app/ExperimentalAppSearchApi
https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#setImage(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html image)`

Sets the URL for an image of the item.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#setName(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html name)`

Sets the name of the item.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `@https://developer.android.com/reference/androidx/appsearch/app/ExperimentalAppSearchApi
https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#setPotentialActions(java.util.List<androidx.appsearch.builtintypes.PotentialAction>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/appsearch/builtintypes/PotentialAction> newPotentialActions)`

Sets a list of potential actions for this document.
`@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html T` `https://developer.android.com/reference/androidx/appsearch/builtintypes/Thing.BuilderBase#setUrl(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html url)`

Sets the deeplink URL of the item.

## Public constructors

### BuilderBase

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

```
public BuilderBase(@NonNull Stopwatch stopwatch)
```

Constructor for `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase` with all the existing values.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch stopwatch` | The existing `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` to copy values from. |

### BuilderBase

```
public BuilderBase(@NonNull String namespace, @NonNull String id)
```

Constructor for `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase`.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html namespace` | Namespace for the Document. See `https://developer.android.com/reference/androidx/appsearch/annotation/Document.Namespace`. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html id` | Unique identifier for the Document. See `https://developer.android.com/reference/androidx/appsearch/annotation/Document.Id`. |

## Public methods

### build

```
public @NonNull Stopwatch build()
```

Builds the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch`.

### setAccumulatedDurationMillis

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

```
public @NonNull T setAccumulatedDurationMillis(long accumulatedDurationMillis)
```

Sets the total duration in milliseconds accumulated by the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch`.

### setBaseTimeMillis

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

```
public @NonNull T setBaseTimeMillis(long baseTimeMillis)
```

Sets the point in time that the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` counts up from. In milliseconds using the `https://developer.android.com/reference/java/lang/System.html#currentTimeMillis()` time base.

### setBaseTimeMillis

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

```
public @NonNull T setBaseTimeMillis(
    long baseTimeMillis,
    long baseTimeMillisInElapsedRealtime,
    int bootCount
)
```

Sets the point in time that the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` counts up from.

Base time should be sampled in both the `https://developer.android.com/reference/java/lang/System.html#currentTimeMillis()` and `https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime()` time base. In addition, the boot count of the device is needed to check if the `https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime()` time base is valid.

| Parameters |
|---|---|
| `long baseTimeMillis` | The base time in milliseconds using the `https://developer.android.com/reference/java/lang/System.html#currentTimeMillis()` time base. |
| `long baseTimeMillisInElapsedRealtime` | The base time in milliseconds using the `https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime()` time base. |
| `int bootCount` | The current boot count of the device. See `https://developer.android.com/reference/android/provider/Settings.Global.html#BOOT_COUNT`. |

### setBaseTimeMillis

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

```
public @NonNull T setBaseTimeMillis(
    @NonNull Context context,
    long baseTimeMillis,
    long baseTimeMillisInElapsedRealtime
)
```

Sets the point in time that the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` counts up from.

See `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch.BuilderBase#setBaseTimeMillis(long,long,int)`.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/Context.html context` | The app context used to fetch boot count. |
| `long baseTimeMillis` | The base time in milliseconds using the `https://developer.android.com/reference/java/lang/System.html#currentTimeMillis()` time base. |
| `long baseTimeMillisInElapsedRealtime` | The base time in milliseconds using the `https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime()` time base. |

### setBaseTimeMillisInElapsedRealtime

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

```
public @NonNull T setBaseTimeMillisInElapsedRealtime(
    long baseTimeMillisInElapsedRealtime
)
```

Sets the point in time that the `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch` counts up from. In milliseconds using the `https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime()` time base.

### setBootCount

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

```
public @NonNull T setBootCount(int bootCount)
```

Sets the boot count of the device.

### setLaps

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

```
public @NonNull T setLaps(@NonNull List<StopwatchLap> laps)
```

Sets all the `https://developer.android.com/reference/androidx/appsearch/builtintypes/StopwatchLap` instances.

### setStatus

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

```
public @NonNull T setStatus(int status)
```

Sets the current status.

Status can be `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch#STATUS_UNKNOWN()`, `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch#STATUS_RESET()`, `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch#STATUS_RUNNING()`, or `https://developer.android.com/reference/androidx/appsearch/builtintypes/Stopwatch#STATUS_PAUSED()`.