/** * Copyright (C) Intersect 2012. * * This module contains Proprietary Information of Intersect, * and should be treated as Confidential. */ package au.org.intersect.exsite9.domain; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import com.google.common.base.Objects; /** * A Submission Package is a collection of {@link ResearchFile}s that are to be bundled up for submission. */ @Entity @Table(name="SUBMISSION_PACKAGE") public final class SubmissionPackage implements Serializable { private static final long serialVersionUID = -7263488588094251324L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @Column(length = 255) private String name; @Column(columnDefinition = "longvarchar") private String description; @OneToMany private final List<ResearchFile> researchFiles = new ArrayList<ResearchFile>(); public SubmissionPackage() { } public SubmissionPackage(final String name, final String description, final List<ResearchFile> researchFiles) { this.name = name; this.description = description; this.researchFiles.addAll(researchFiles); } public Long getId() { return this.id; } public void setId(final Long id) { this.id = id; } public String getName() { return this.name; } public void setName(final String name) { this.name = name; } public String getDescription() { return this.description; } public void setDescription(final String description) { this.description = description; } public List<ResearchFile> getResearchFiles() { return this.researchFiles; } /** * @{inheritDoc} */ @Override public boolean equals(final Object obj) { if (obj == this) { return true; } if (!(obj instanceof SubmissionPackage)) { return false; } final SubmissionPackage other = (SubmissionPackage) obj; return Objects.equal(this.id, other.id); } /** * @{inheritDoc} */ @Override public int hashCode() { return new HashCodeBuilder().append(this.id).toHashCode(); } /** * @{inheritDoc} */ @Override public String toString() { return new ToStringBuilder(this).append("id", this.id).append("name", this.name).toString(); } }