package kr.wisestone.owl.domain;
|
|
import kr.wisestone.owl.domain.enumType.ProjectType;
|
import org.hibernate.annotations.Type;
|
import javax.persistence.*;
|
import java.io.Serializable;
|
import java.util.HashSet;
|
import java.util.Iterator;
|
import java.util.Set;
|
|
/**
|
* Created by jeong on 2017-12-30.
|
*/
|
@Entity
|
public class Project extends BaseEntity implements Serializable {
|
private static final long serialVersionUID = 1L;
|
|
public static final String PROJECT_READY = "01";
|
public static final String PROJECT_OPEN = "02";
|
public static final String PROJECT_CLOSE = "03";
|
|
@Id
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
private Long id;
|
private String name;
|
private String projectKey;
|
private String description;
|
private String status;
|
private String startDate;
|
private String endDate;
|
@Type(type="yes_no")
|
private Boolean defaultYn = Boolean.FALSE;
|
|
@Enumerated(EnumType.STRING)
|
private ProjectType projectType;
|
|
@ManyToOne(fetch = FetchType.EAGER)
|
@JoinColumn(name = "workspace_id")
|
private Workspace workspace;
|
|
@OneToMany(mappedBy = "project", cascade = {CascadeType.ALL}, orphanRemoval = true)
|
private Set<Issue> issues = new HashSet<>();
|
|
@OneToMany(mappedBy = "project", cascade = {CascadeType.ALL}, orphanRemoval = true)
|
private Set<IssueNumberGenerator> issueNumberGenerators = new HashSet<>();
|
|
@OneToMany(mappedBy = "project", cascade = {CascadeType.ALL}, orphanRemoval = true)
|
private Set<IssueTypeCustomField> issueTypeCustomFields = new HashSet<>();
|
|
@OneToMany(mappedBy = "project", cascade={CascadeType.ALL}, orphanRemoval=true)
|
private Set<ProjectRole> projectRoles = new HashSet<>();
|
|
@OneToMany(mappedBy = "project", cascade = {CascadeType.ALL}, orphanRemoval = true)
|
private Set<UserInviteProject> userInviteProjects = new HashSet<>();
|
|
@OneToMany(mappedBy = "project", cascade = {CascadeType.ALL}, orphanRemoval = true)
|
private Set<ProjectClosure> projectClosures = new HashSet<>();
|
|
public Long getId() {
|
return id;
|
}
|
|
public void setId(Long id) {
|
this.id = id;
|
}
|
|
public String getName() {
|
return name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
public String getProjectKey() {
|
return projectKey;
|
}
|
|
public void setProjectKey(String projectKey) {
|
this.projectKey = projectKey;
|
}
|
|
public String getDescription() {
|
return description;
|
}
|
|
public void setDescription(String description) {
|
this.description = description;
|
}
|
|
public String getStatus() {
|
return status;
|
}
|
|
public void setStatus(String status) {
|
this.status = status;
|
}
|
|
public String getStartDate() {
|
return startDate;
|
}
|
|
public void setStartDate(String startDate) {
|
this.startDate = startDate;
|
}
|
|
public String getEndDate() {
|
return endDate;
|
}
|
|
public void setEndDate(String endDate) {
|
this.endDate = endDate;
|
}
|
|
public Boolean getDefaultYn() {
|
return defaultYn;
|
}
|
|
public void setDefaultYn(Boolean defaultYn) {
|
this.defaultYn = defaultYn;
|
}
|
|
public ProjectType getProjectType() {
|
return projectType;
|
}
|
|
public void setProjectType(ProjectType projectType) {
|
this.projectType = projectType;
|
}
|
|
public Workspace getWorkspace() {
|
return workspace;
|
}
|
|
public void setWorkspace(Workspace workspace) {
|
this.workspace = workspace;
|
}
|
|
public Set<Issue> getIssues() {
|
return issues;
|
}
|
|
public void setIssues(Set<Issue> issues) {
|
this.issues = issues;
|
}
|
|
public Set<IssueNumberGenerator> getIssueNumberGenerators() {
|
return issueNumberGenerators;
|
}
|
|
public void setIssueNumberGenerators(Set<IssueNumberGenerator> issueNumberGenerators) {
|
this.issueNumberGenerators = issueNumberGenerators;
|
}
|
|
public Set<IssueTypeCustomField> getIssueTypeCustomFields() {
|
return issueTypeCustomFields;
|
}
|
|
public void setIssueTypeCustomFields(Set<IssueTypeCustomField> issueTypeCustomFields) {
|
this.issueTypeCustomFields = issueTypeCustomFields;
|
}
|
|
public Set<ProjectRole> getProjectRoles() {
|
return projectRoles;
|
}
|
|
public void setProjectRoles(Set<ProjectRole> projectRoles) {
|
this.projectRoles = projectRoles;
|
}
|
|
public Set<UserInviteProject> getUserInviteProjects() {
|
return userInviteProjects;
|
}
|
|
public void setUserInviteProjects(Set<UserInviteProject> userInviteProjects) {
|
this.userInviteProjects = userInviteProjects;
|
}
|
|
public Set<ProjectClosure> getProjectClosures() {
|
return projectClosures;
|
}
|
|
public ProjectClosure getParentProjectClosure() {
|
if (this.projectClosures != null && this.projectClosures.size() > 0) {
|
Iterator<ProjectClosure> iter = this.projectClosures.iterator();
|
return iter.next();
|
}
|
return null;
|
}
|
|
|
public void setProjectClosures(Set<ProjectClosure> childProjects) {
|
this.projectClosures = childProjects;
|
}
|
|
public void addParent(ProjectClosure project){
|
projectClosures.add(project);
|
}
|
}
|