| // Copyright (C) 2019 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| package com.google.gerrit.plugins.checks.api; |
| |
| /** |
| * State of a single check on a change. |
| * |
| * <p>This state applies to a single check; for the aggregated state associated with a change, see |
| * {@link CombinedCheckState}. |
| * |
| * <p>Ordering is not significant in this class, but for consistency's sake the ordering matches |
| * {@code CombinedCheckState} where applicable. |
| */ |
| public enum CheckState { |
| /** |
| * The check terminated and failed. |
| * |
| * <p>Failure may include the following cases: |
| * |
| * <ul> |
| * <li>The check completed normally and found a problem with the code in the change. |
| * <li>The check failed to start. |
| * <li>The check started, but failed for some reason not directly related to the code, such as a |
| * setup failure in the checker. |
| * </ul> |
| */ |
| FAILED(false), |
| |
| /** The check is relevant to the change, but the checker has not started work. */ |
| NOT_STARTED(true), |
| |
| /** |
| * The checker has acknowledged that it has work to do on the change, and will start work in the |
| * future. |
| */ |
| SCHEDULED(true), |
| |
| /** The checker is currently running the check. */ |
| RUNNING(true), |
| |
| /** The check terminated and succeeded. */ |
| SUCCESSFUL(false), |
| |
| /** The check is not relevant for the change. */ |
| NOT_RELEVANT(false); |
| |
| private final boolean inProgress; |
| |
| CheckState(boolean inProgress) { |
| this.inProgress = inProgress; |
| } |
| |
| /** |
| * Returns whether the state represents an in-progress state. |
| * |
| * <p>A check is in progress if the checker is relevant to the change, and the checker system has |
| * not yet completed the check. |
| * |
| * @return whether the state represents an in-progress state. |
| */ |
| public boolean isInProgress() { |
| return inProgress; |
| } |
| } |