19cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria/* 29cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * Copyright 2018 The Android Open Source Project 39cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * 49cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * Licensed under the Apache License, Version 2.0 (the "License"); 59cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * you may not use this file except in compliance with the License. 69cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * You may obtain a copy of the License at 79cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * 89cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * http://www.apache.org/licenses/LICENSE-2.0 99cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * 109cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * Unless required by applicable law or agreed to in writing, software 119cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * distributed under the License is distributed on an "AS IS" BASIS, 129cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * See the License for the specific language governing permissions and 149cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * limitations under the License. 159cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria */ 169cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria 17564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariapackage androidx.work; 189cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria 199cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria/** 209cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * The current status of a unit of work. 219cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria */ 229cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Katariapublic enum State { 239cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria 249cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria /** 259cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * The status for work that is enqueued (hasn't completed and isn't running) 269cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria */ 279cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria ENQUEUED, 289cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria 299cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria /** 309cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * The status for work that is currently being executed 319cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria */ 329cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria RUNNING, 339cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria 349cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria /** 359cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * The status for work that has completed successfully 369cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria */ 379cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria SUCCEEDED, 389cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria 399cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria /** 409cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * The status for work that has completed in a failure state 419cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria */ 429cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria FAILED, 439cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria 449cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria /** 459cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * The status for work that is currently blocked because its prerequisites haven't finished 469cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * successfully 479cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria */ 489cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria BLOCKED, 499cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria 509cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria /** 519cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria * The status for work that has been cancelled and will not execute 529cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria */ 53fde02413b724d73554aae93c65c716037401603fSumir Kataria CANCELLED; 54fde02413b724d73554aae93c65c716037401603fSumir Kataria 55fde02413b724d73554aae93c65c716037401603fSumir Kataria /** 56fde02413b724d73554aae93c65c716037401603fSumir Kataria * Returns {@code true} if this State is considered finished. 57fde02413b724d73554aae93c65c716037401603fSumir Kataria * 58fde02413b724d73554aae93c65c716037401603fSumir Kataria * @return {@code true} for {@link #SUCCEEDED}, {@link #FAILED}, and {@link #CANCELLED} States 59fde02413b724d73554aae93c65c716037401603fSumir Kataria */ 60fde02413b724d73554aae93c65c716037401603fSumir Kataria public boolean isFinished() { 61fde02413b724d73554aae93c65c716037401603fSumir Kataria return (this == SUCCEEDED || this == FAILED || this == CANCELLED); 62fde02413b724d73554aae93c65c716037401603fSumir Kataria } 639cf4f3d3aa83bc64db574955805c67ac9ea84008Sumir Kataria} 64