/** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 org.apache.airavata.registry.core.experiment.catalog.model; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.persistence.*; import java.sql.Timestamp; import java.util.Collection; @Entity @Table(name = "JOB") @IdClass(JobPK.class) public class Job { private final static Logger logger = LoggerFactory.getLogger(Job.class); private String jobId; private String taskId; private String processId; private char[] jobDescription; private char[] stdOut; private char[] stdErr; private int exitCode; private Timestamp creationTime; private String computeResourceConsumed; private String jobName; private String workingDir; private Process process; private Collection<JobStatus> jobStatuses; @Id @Column(name = "JOB_ID") public String getJobId() { return jobId; } public void setJobId(String jobId) { this.jobId = jobId; } @Column(name = "PROCESS_ID") public String getProcessId() { return processId; } public void setProcessId(String processId) { this.processId = processId; } @Id @Column(name = "TASK_ID") public String getTaskId() { return taskId; } public void setTaskId(String taskId) { this.taskId = taskId; } @Lob @Column(name = "JOB_DESCRIPTION") public char[] getJobDescription() { return jobDescription; } public void setJobDescription(char[] jobDescription) { this.jobDescription = jobDescription; } @Lob @Column(name = "STD_OUT") public char[] getStdOut() { return stdOut; } public void setStdOut(char[] stdOut) { this.stdOut = stdOut; } @Lob @Column(name = "STD_ERR") public char[] getStdErr() { return stdErr; } public void setStdErr(char[] stdErr) { this.stdErr = stdErr; } @Column(name = "EXIT_CODE") public int getExitCode() { return exitCode; } public void setExitCode(int exitCode) { this.exitCode = exitCode; } @Column(name = "CREATION_TIME") public Timestamp getCreationTime() { return creationTime; } public void setCreationTime(Timestamp creationTime) { this.creationTime = creationTime; } @Column(name = "COMPUTE_RESOURCE_CONSUMED") public String getComputeResourceConsumed() { return computeResourceConsumed; } public void setComputeResourceConsumed(String computeResourceConsumed) { this.computeResourceConsumed = computeResourceConsumed; } @Column(name = "JOB_NAME") public String getJobName() { return jobName; } public void setJobName(String jobName) { this.jobName = jobName; } @Column(name = "WORKING_DIR") public String getWorkingDir() { return workingDir; } public void setWorkingDir(String workingDir) { this.workingDir = workingDir; } // @Override // public boolean equals(Object o) { // if (this == o) return true; // if (o == null || getClass() != o.getClass()) return false; // // Job job = (Job) o; // // if (computeResourceConsumed != null ? !computeResourceConsumed.equals(job.computeResourceConsumed) : job.computeResourceConsumed != null) // return false; // if (creationTime != null ? !creationTime.equals(job.creationTime) : job.creationTime != null) return false; // if (jobDescription != null ? !jobDescription.equals(job.jobDescription) : job.jobDescription != null) // return false; // if (jobId != null ? !jobId.equals(job.jobId) : job.jobId != null) return false; // if (jobName != null ? !jobName.equals(job.jobName) : job.jobName != null) return false; // if (taskId != null ? !taskId.equals(job.taskId) : job.taskId != null) return false; // if (workingDir != null ? !workingDir.equals(job.workingDir) : job.workingDir != null) return false; // // return true; // } // // @Override // public int hashCode() { // int result = jobId != null ? jobId.hashCode() : 0; // result = 31 * result + (taskId != null ? taskId.hashCode() : 0); // result = 31 * result + (jobDescription != null ? jobDescription.hashCode() : 0); // result = 31 * result + (creationTime != null ? creationTime.hashCode() : 0); // result = 31 * result + (computeResourceConsumed != null ? computeResourceConsumed.hashCode() : 0); // result = 31 * result + (jobName != null ? jobName.hashCode() : 0); // result = 31 * result + (workingDir != null ? workingDir.hashCode() : 0); // return result; // } @OneToOne @JoinColumn(name = "PROCESS_ID", referencedColumnName = "PROCESS_ID") public Process getProcess() { return process; } public void setProcess(Process processByProcessId) { this.process = processByProcessId; } @OneToMany(mappedBy = "job") public Collection<JobStatus> getJobStatuses() { return jobStatuses; } public void setJobStatuses(Collection<JobStatus> jobStatusesByJobId) { this.jobStatuses = jobStatusesByJobId; } }