package androidx.work; import android.annotation.SuppressLint; import androidx.annotation.NonNull; import androidx.work.WorkInfo; import java.util.ArrayList; import java.util.List; public final class WorkQuery { private final List mStates; private final List mTags; private final List mUniqueWorkNames; public static final class Builder { public List mStates = new ArrayList(); public List mTags = new ArrayList(); public List mUniqueWorkNames = new ArrayList(); private Builder() { } @NonNull @SuppressLint({"BuilderSetStyle"}) public static Builder fromStates(@NonNull List list) { Builder builder = new Builder(); builder.addStates(list); return builder; } @NonNull @SuppressLint({"BuilderSetStyle"}) public static Builder fromTags(@NonNull List list) { Builder builder = new Builder(); builder.addTags(list); return builder; } @NonNull @SuppressLint({"BuilderSetStyle"}) public static Builder fromUniqueWorkNames(@NonNull List list) { Builder builder = new Builder(); builder.addUniqueWorkNames(list); return builder; } @NonNull public Builder addStates(@NonNull List list) { this.mStates.addAll(list); return this; } @NonNull public Builder addTags(@NonNull List list) { this.mTags.addAll(list); return this; } @NonNull public Builder addUniqueWorkNames(@NonNull List list) { this.mUniqueWorkNames.addAll(list); return this; } @NonNull public WorkQuery build() { if (!this.mUniqueWorkNames.isEmpty() || !this.mTags.isEmpty() || !this.mStates.isEmpty()) { return new WorkQuery(this); } throw new IllegalArgumentException("Must specify uniqueNames, tags or states when building a WorkQuery"); } } public WorkQuery(@NonNull Builder builder) { this.mUniqueWorkNames = builder.mUniqueWorkNames; this.mTags = builder.mTags; this.mStates = builder.mStates; } @NonNull public List getStates() { return this.mStates; } @NonNull public List getTags() { return this.mTags; } @NonNull public List getUniqueWorkNames() { return this.mUniqueWorkNames; } }