package edu.asu.spring.quadriga.dto;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.Lob;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
* This class represents the column mappings for project table.
*
* @author Karthik
*/
@Entity
@Table(name = "tbl_project")
@Inheritance(strategy = InheritanceType.JOINED)
@XmlRootElement
@NamedQueries({ @NamedQuery(name = "ProjectDTO.findAll", query = "SELECT p FROM ProjectDTO p"),
@NamedQuery(name = "ProjectDTO.findByProjectname", query = "SELECT p FROM ProjectDTO p WHERE p.projectname = :projectname"),
@NamedQuery(name = "ProjectDTO.findByUnixname", query = "SELECT p FROM ProjectDTO p WHERE p.unixname = :unixname"),
@NamedQuery(name = "ProjectDTO.findByProjectid", query = "SELECT p FROM ProjectDTO p WHERE p.projectid = :projectid"),
@NamedQuery(name = "ProjectDTO.findByAccessibility", query = "SELECT p FROM ProjectDTO p WHERE p.accessibility = :accessibility"), })
public class ProjectDTO extends CollaboratingDTO<ProjectCollaboratorDTOPK, ProjectCollaboratorDTO>
implements Serializable {
private static final long serialVersionUID = 1L;
@Basic(optional = false)
@Column(name = "projectname")
private String projectname;
@Lob
@Column(name = "description")
private String description;
@Basic(optional = false)
@Column(name = "unixname")
private String unixname;
@Id
@Basic(optional = false)
@Column(name = "projectid")
private String projectid;
@Basic(optional = false)
@Column(name = "accessibility")
private String accessibility;
@JoinColumn(name = "projectowner", referencedColumnName = "username")
@ManyToOne(optional = false)
private QuadrigaUserDTO projectowner;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "projectDTO", orphanRemoval = true)
private List<ProjectWorkspaceDTO> projectWorkspaceDTOList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "project", orphanRemoval = true)
private List<ProjectDictionaryDTO> projectDictionaryDTOList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "projectDTO", orphanRemoval = true)
private List<ProjectConceptCollectionDTO> projectConceptCollectionDTOList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "projectDTO", orphanRemoval = true)
private List<ProjectCollaboratorDTO> projectCollaboratorDTOList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "project", orphanRemoval = true)
private List<ProjectEditorDTO> projectEditorDTOList;
@ManyToMany
@JoinTable(name = "tbl_project_resolvers")
private List<ProjectHandleResolverDTO> resolvers;
public List<ProjectHandleResolverDTO> getResolvers() {
return resolvers;
}
public void setResolvers(List<ProjectHandleResolverDTO> resolver) {
this.resolvers = resolver;
}
public ProjectDTO() {
}
public ProjectDTO(String projectid, String projectname, String unixname, String accessibility, String updatedby,
Date updateddate, String createdby, Date createddate) {
this.projectid = projectid;
this.projectname = projectname;
this.unixname = unixname;
this.accessibility = accessibility;
this.updatedby = updatedby;
this.updateddate = updateddate;
this.createdby = createdby;
this.createddate = createddate;
}
public String getProjectname() {
return projectname;
}
public void setProjectname(String projectname) {
this.projectname = projectname;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getUnixname() {
return unixname;
}
public void setUnixname(String unixname) {
this.unixname = unixname;
}
public String getProjectid() {
return projectid;
}
public void setProjectid(String projectid) {
this.projectid = projectid;
}
public String getAccessibility() {
return accessibility;
}
public void setAccessibility(String accessibility) {
this.accessibility = accessibility;
}
public String getUpdatedby() {
return updatedby;
}
public void setUpdatedby(String updatedby) {
this.updatedby = updatedby;
}
public Date getUpdateddate() {
return updateddate;
}
public void setUpdateddate(Date updateddate) {
this.updateddate = updateddate;
}
public String getCreatedby() {
return createdby;
}
public void setCreatedby(String createdby) {
this.createdby = createdby;
}
public Date getCreateddate() {
return createddate;
}
public void setCreateddate(Date createddate) {
this.createddate = createddate;
}
public QuadrigaUserDTO getProjectowner() {
return projectowner;
}
public void setProjectowner(QuadrigaUserDTO projectowner) {
this.projectowner = projectowner;
}
@XmlTransient
public List<ProjectDictionaryDTO> getProjectDictionaryDTOList() {
return projectDictionaryDTOList;
}
public void setProjectDictionaryDTOList(List<ProjectDictionaryDTO> projectDictionaryDTOList) {
this.projectDictionaryDTOList = projectDictionaryDTOList;
}
@XmlTransient
public List<ProjectConceptCollectionDTO> getProjectConceptCollectionDTOList() {
return projectConceptCollectionDTOList;
}
public void setProjectConceptCollectionDTOList(List<ProjectConceptCollectionDTO> projectConceptCollectionDTOList) {
this.projectConceptCollectionDTOList = projectConceptCollectionDTOList;
}
@XmlTransient
public List<ProjectEditorDTO> getProjectEditorDTOList() {
return projectEditorDTOList;
}
public void setProjectEditorDTOList(List<ProjectEditorDTO> projectEditorDTOList) {
this.projectEditorDTOList = projectEditorDTOList;
}
@XmlTransient
public List<ProjectWorkspaceDTO> getProjectWorkspaceDTOList() {
return projectWorkspaceDTOList;
}
public void setProjectWorkspaceDTOList(List<ProjectWorkspaceDTO> projectWorkspaceDTOList) {
this.projectWorkspaceDTOList = projectWorkspaceDTOList;
}
@XmlTransient
public List<ProjectCollaboratorDTO> getProjectCollaboratorDTOList() {
return projectCollaboratorDTOList;
}
public void setProjectCollaboratorDTOList(List<ProjectCollaboratorDTO> projectCollaboratorDTOList) {
this.projectCollaboratorDTOList = projectCollaboratorDTOList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (projectid != null ? projectid.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof ProjectDTO)) {
return false;
}
ProjectDTO other = (ProjectDTO) object;
if ((this.projectid == null && other.projectid != null)
|| (this.projectid != null && !this.projectid.equals(other.projectid))) {
return false;
}
return true;
}
@Override
public List<ProjectCollaboratorDTO> getCollaboratorList() {
return projectCollaboratorDTOList;
}
@Override
public void setCollaboratorList(List<ProjectCollaboratorDTO> list) {
projectCollaboratorDTOList = list;
}
@Override
public String getId() {
return projectid;
}
@Override
public QuadrigaUserDTO getOwner() {
return projectowner;
}
@Override
public void setOwner(QuadrigaUserDTO owner) {
this.projectowner = owner;
}
}