blob: 891cc8adbeee816d5a773d18e6189e8eb115b687 [file] [log] [blame]
// 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;
import com.google.auto.value.AutoValue;
import com.google.gerrit.plugins.checks.api.CheckState;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
import java.sql.Timestamp;
import java.util.Optional;
@AutoValue
public abstract class Check {
public static Check newBackfilledCheck(Project.NameKey project, PatchSet ps, Checker checker) {
return Check.builder(CheckKey.create(project, ps.id(), checker.getUuid()))
.setState(CheckState.NOT_STARTED)
.setCreated(ps.createdOn())
.setUpdated(ps.createdOn())
.build();
}
/** The key of the Check. */
public abstract CheckKey key();
/** State that this check is in. */
public abstract CheckState state();
/** Short message explaining the check state. */
public abstract Optional<String> message();
/** Fully qualified URL to detailed result on the Checker's service. */
public abstract Optional<String> url();
/** Timestamp of when this check started. */
public abstract Optional<Timestamp> started();
/** Timestamp of when this check finished. */
public abstract Optional<Timestamp> finished();
/** Timestamp of when this check was created. */
public abstract Timestamp created();
/** Timestamp of when this check was last updated. */
public abstract Timestamp updated();
public abstract Builder toBuilder();
public static Builder builder(CheckKey key) {
return new AutoValue_Check.Builder().setKey(key);
}
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder setKey(CheckKey key);
public abstract Builder setState(CheckState state);
public abstract Builder setMessage(String message);
public abstract Builder setUrl(String url);
public abstract Builder setStarted(Timestamp started);
public abstract Builder setFinished(Timestamp finished);
public abstract Builder setCreated(Timestamp created);
public abstract Builder setUpdated(Timestamp updated);
public abstract Check build();
}
}