/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank.project; /* * #%L * Intuit Tank data model * %% * Copyright (C) 2011 - 2015 Intuit Inc. * %% * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * #L% */ import java.util.Date; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.OneToMany; import javax.persistence.Table; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.hibernate.annotations.Index; /** * TestInstance * * @author dangleton * */ @Entity @Table(name = "job_queue") public class JobQueue extends BaseEntity { private static final long serialVersionUID = 1L; public static final String PROPERTY_PROJECT_ID = "projectId"; public static final String PROPERTY_JOBS = "jobs"; @Column(name = "project_id") @Index(name = "IDX_PROJ_ID") private int projectId; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinTable(name = "test_instance_jobs", joinColumns = @JoinColumn(name = "test_id"), inverseJoinColumns = @JoinColumn(name = "job_id")) private Set<JobInstance> jobs = new HashSet<JobInstance>(); /** * */ public JobQueue() { super(); } /** * @param projectId */ public JobQueue(int projectId) { super(); this.projectId = projectId; } /** * @return the projectId */ public int getProjectId() { return projectId; } /** * @param projectId * the projectId to set */ public void setProjectId(int projectId) { this.projectId = projectId; } /** * @return the jobs */ public Set<JobInstance> getJobs() { return jobs; } /** * @param jobs * the jobs to set */ protected void setJobs(Set<JobInstance> jobs) { this.jobs = jobs; } /** * @param jobs * the jobs to set */ public void addJob(JobInstance job) { this.jobs.add(job); setModified(new Date()); } /** * @{inheritDoc */ @Override public String toString() { return new ToStringBuilder(this).append("id", getId()) .toString(); } /** * @{inheritDoc */ @Override public boolean equals(Object obj) { if (!(obj instanceof JobQueue)) { return false; } JobQueue o = (JobQueue) obj; return new EqualsBuilder().append(o.getId(), getId()).isEquals(); } /** * @{inheritDoc */ @Override public int hashCode() { return new HashCodeBuilder(29, 45).append(getId()).toHashCode(); } }