package com.linkedin.thirdeye.datalayer.pojo;
import com.linkedin.thirdeye.anomaly.task.TaskConstants.TaskStatus;
import com.linkedin.thirdeye.anomaly.task.TaskConstants.TaskType;
import java.sql.Timestamp;
import java.util.Objects;
/**
* This class corresponds to anomaly tasks. An execution of an anomaly function creates an anomaly
* job, which in turn spawns into 1 or more anomaly tasks. The anomaly tasks are picked by the
* workers
*/
public class TaskBean extends AbstractBean {
private TaskType taskType;
private Long workerId;
private Long jobId;
private String jobName;
private TaskStatus status;
private long startTime;
private long endTime;
private String taskInfo;
private Timestamp lastModified;
public Long getWorkerId() {
return workerId;
}
public void setWorkerId(Long workerId) {
this.workerId = workerId;
}
public void setJobName(String jobName) {
this.jobName = jobName;
}
public String getJobName() {
return jobName;
}
public TaskStatus getStatus() {
return status;
}
public void setStatus(TaskStatus status) {
this.status = status;
}
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
public long getEndTime() {
return endTime;
}
public void setEndTime(long endTime) {
this.endTime = endTime;
}
public String getTaskInfo() {
return taskInfo;
}
public void setTaskInfo(String taskInfo) {
this.taskInfo = taskInfo;
}
public TaskType getTaskType() {
return taskType;
}
public void setTaskType(TaskType taskType) {
this.taskType = taskType;
}
public Timestamp getLastModified() {
return lastModified;
}
public void setLastModified(Timestamp lastModified) {
this.lastModified = lastModified;
}
public Long getJobId() {
return jobId;
}
public void setJobId(Long jobId) {
this.jobId = jobId;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof TaskBean)) {
return false;
}
TaskBean af = (TaskBean) o;
return Objects.equals(getId(), af.getId()) && Objects.equals(status, af.getStatus())
&& Objects.equals(startTime, af.getStartTime()) && Objects.equals(endTime, af.getEndTime())
&& Objects.equals(taskInfo, af.getTaskInfo());
}
@Override
public int hashCode() {
return Objects.hash(getId(), status, startTime, endTime, taskInfo);
}
}