package kr.wisestone.owl.domain;
|
|
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 ProjectRole extends BaseEntity implements Serializable {
|
private static final long serialVersionUID = 1L;
|
|
public static final String TYPE_DEFAULT = "01"; // 일반 사용자
|
public static final String TYPE_MANAGER = "02"; // 관리자
|
|
@Id
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
private Long id;
|
private String name;
|
private String roleType;
|
|
@ManyToOne(fetch= FetchType.LAZY)
|
@JoinColumn(name="project_id")
|
private Project project;
|
|
@OneToMany(mappedBy="projectRole", cascade={CascadeType.ALL}, orphanRemoval=true)
|
private Set<ProjectRoleUser> projectRoleUsers = new HashSet<>();
|
|
@OneToMany(mappedBy="projectRole", cascade={CascadeType.ALL}, orphanRemoval=true)
|
private Set<ProjectRoleDepartment> projectRoleDepartments = new HashSet<>();
|
|
@OneToMany(mappedBy="projectRole", cascade={CascadeType.ALL}, orphanRemoval=true)
|
private Set<ProjectRolePermission> projectRolePermissions = new HashSet<>();
|
|
public ProjectRole(){}
|
|
public ProjectRole(Project project, String name, String roleType){
|
this.project = project;
|
this.name = name;
|
this.roleType = roleType;
|
}
|
|
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 getRoleType() {
|
return roleType;
|
}
|
|
public void setRoleType(String roleType) {
|
this.roleType = roleType;
|
}
|
|
public Project getProject() {
|
return project;
|
}
|
|
public void setProject(Project project) {
|
this.project = project;
|
}
|
|
public Set<ProjectRoleUser> getProjectRoleUsers() {
|
return projectRoleUsers;
|
}
|
|
public void setProjectRoleUsers(Set<ProjectRoleUser> projectRoleUsers) {
|
this.projectRoleUsers = projectRoleUsers;
|
}
|
|
public Set<ProjectRoleDepartment> getProjectRoleDepartments() {
|
return projectRoleDepartments;
|
}
|
|
public void setProjectRoleDepartments(Set<ProjectRoleDepartment> projectRoleDepartments) {
|
this.projectRoleDepartments = projectRoleDepartments;
|
}
|
|
public Set<ProjectRolePermission> getProjectRolePermissions() {
|
return projectRolePermissions;
|
}
|
|
public void setProjectRolePermissions(Set<ProjectRolePermission> projectRolePermissions) {
|
this.projectRolePermissions = projectRolePermissions;
|
}
|
|
public void addUser(User user) {
|
if (this.projectRoleUsers == null) {
|
this.projectRoleUsers = new HashSet<>();
|
}
|
ProjectRoleUser projectRoleUser = new ProjectRoleUser(this, user);
|
|
this.projectRoleUsers.add(projectRoleUser);
|
}
|
|
public void addDepartment(Department department) {
|
if (this.projectRoleDepartments == null) {
|
this.projectRoleDepartments = new HashSet<>();
|
}
|
ProjectRoleDepartment projectRoleDepartment = new ProjectRoleDepartment(this, department);
|
|
this.projectRoleDepartments.add(projectRoleDepartment);
|
}
|
|
public void removeProjectRole(User user) {
|
Iterator<ProjectRoleUser> iterator = this.projectRoleUsers.iterator();
|
|
while (iterator.hasNext()) {
|
ProjectRoleUser projectRoleUser = iterator.next();
|
if (user.getId().equals(projectRoleUser.getUser().getId())) {
|
this.projectRoleUsers.remove(projectRoleUser);
|
break;
|
}
|
}
|
}
|
}
|