93 lines
2.6 KiB
Java
93 lines
2.6 KiB
Java
|
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<WorkInfo.State> mStates;
|
||
|
private final List<String> mTags;
|
||
|
private final List<String> mUniqueWorkNames;
|
||
|
|
||
|
public static final class Builder {
|
||
|
public List<WorkInfo.State> mStates = new ArrayList();
|
||
|
public List<String> mTags = new ArrayList();
|
||
|
public List<String> mUniqueWorkNames = new ArrayList();
|
||
|
|
||
|
private Builder() {
|
||
|
}
|
||
|
|
||
|
@NonNull
|
||
|
@SuppressLint({"BuilderSetStyle"})
|
||
|
public static Builder fromStates(@NonNull List<WorkInfo.State> list) {
|
||
|
Builder builder = new Builder();
|
||
|
builder.addStates(list);
|
||
|
return builder;
|
||
|
}
|
||
|
|
||
|
@NonNull
|
||
|
@SuppressLint({"BuilderSetStyle"})
|
||
|
public static Builder fromTags(@NonNull List<String> list) {
|
||
|
Builder builder = new Builder();
|
||
|
builder.addTags(list);
|
||
|
return builder;
|
||
|
}
|
||
|
|
||
|
@NonNull
|
||
|
@SuppressLint({"BuilderSetStyle"})
|
||
|
public static Builder fromUniqueWorkNames(@NonNull List<String> list) {
|
||
|
Builder builder = new Builder();
|
||
|
builder.addUniqueWorkNames(list);
|
||
|
return builder;
|
||
|
}
|
||
|
|
||
|
@NonNull
|
||
|
public Builder addStates(@NonNull List<WorkInfo.State> list) {
|
||
|
this.mStates.addAll(list);
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
@NonNull
|
||
|
public Builder addTags(@NonNull List<String> list) {
|
||
|
this.mTags.addAll(list);
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
@NonNull
|
||
|
public Builder addUniqueWorkNames(@NonNull List<String> 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<WorkInfo.State> getStates() {
|
||
|
return this.mStates;
|
||
|
}
|
||
|
|
||
|
@NonNull
|
||
|
public List<String> getTags() {
|
||
|
return this.mTags;
|
||
|
}
|
||
|
|
||
|
@NonNull
|
||
|
public List<String> getUniqueWorkNames() {
|
||
|
return this.mUniqueWorkNames;
|
||
|
}
|
||
|
}
|