| // Copyright 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| package androidx.test.espresso.flutter.model; |
| |
| import static com.google.common.base.Preconditions.checkNotNull; |
| |
| import javax.annotation.Nonnull; |
| import javax.annotation.Nullable; |
| |
| /** |
| * Builder for {@link WidgetInfo}. |
| * |
| * <p>Internal only. Users of Espresso framework should rarely have the needs to build their own |
| * {@link WidgetInfo} instance. |
| */ |
| public class WidgetInfoBuilder { |
| |
| @Nullable private String valueKey; |
| private String runtimeType; |
| @Nullable private String text; |
| @Nullable private String tooltip; |
| |
| /** Empty constructor. */ |
| public WidgetInfoBuilder() {} |
| |
| /** |
| * Constructs the builder with the given {@code runtimeType}. |
| * |
| * @param runtimeType the runtime type of the widget. Cannot be null. |
| */ |
| public WidgetInfoBuilder(@Nonnull String runtimeType) { |
| this.runtimeType = checkNotNull(runtimeType, "RuntimeType cannot be null."); |
| } |
| |
| /** |
| * Sets the value key of the widget. |
| * |
| * @param valueKey the value key of the widget that shall be set. Could be null. |
| */ |
| public WidgetInfoBuilder setValueKey(@Nullable String valueKey) { |
| this.valueKey = valueKey; |
| return this; |
| } |
| |
| /** |
| * Sets the runtime type of the widget. |
| * |
| * @param runtimeType the runtime type of the widget that shall be set. Cannot be null. |
| */ |
| public WidgetInfoBuilder setRuntimeType(@Nonnull String runtimeType) { |
| this.runtimeType = checkNotNull(runtimeType, "RuntimeType cannot be null."); |
| return this; |
| } |
| |
| /** |
| * Sets the text of the widget. |
| * |
| * @param text the text of the widget that shall be set. Can be null. |
| */ |
| public WidgetInfoBuilder setText(@Nullable String text) { |
| this.text = text; |
| return this; |
| } |
| |
| /** |
| * Sets the tooltip of the widget. |
| * |
| * @param tooltip the tooltip of the widget that shall be set. Can be null. |
| */ |
| public WidgetInfoBuilder setTooltip(@Nullable String tooltip) { |
| this.tooltip = tooltip; |
| return this; |
| } |
| |
| /** Builds and returns the {@code WidgetInfo} instance. */ |
| public WidgetInfo build() { |
| return new WidgetInfo(valueKey, runtimeType, text, tooltip); |
| } |
| } |