|
package kr.wisestone.owl.domain;
|
|
|
import com.google.common.collect.Lists;
|
|
import javax.persistence.*;
|
import java.io.Serializable;
|
import java.util.*;
|
|
@Entity
|
public class SystemRole extends BaseEntity implements Serializable {
|
private static final long serialVersionUID = 1L;
|
|
@Id
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
private Long id;
|
private String name;
|
private String roleType;
|
|
@OneToMany(mappedBy="systemRole", cascade={CascadeType.ALL}, orphanRemoval=true)
|
private Set<SystemRoleUser> systemRoleUsers = new HashSet<>();
|
|
@OneToMany(mappedBy="systemRole", cascade={CascadeType.ALL}, orphanRemoval=true)
|
private Set<SystemRolePermission> systemRolePermissions = new HashSet<>();
|
|
public SystemRole() {
|
}
|
|
public Long getId() {
|
return this.id;
|
}
|
|
public void setId(Long id) {
|
this.id = id;
|
}
|
|
public String getName() {
|
return this.name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
public Set<SystemRoleUser> getSystemRoleUsers() {
|
return this.systemRoleUsers;
|
}
|
|
public List<User> getUsers() {
|
List<User> users = Lists.newArrayList();
|
|
Iterator<SystemRoleUser> iterator = this.systemRoleUsers.iterator();
|
while (iterator.hasNext()) {
|
users.add(iterator.next().getUser());
|
}
|
|
return users;
|
}
|
|
public void setSystemRoleUsers(Set<SystemRoleUser> systemRoleUsers) {
|
this.systemRoleUsers = systemRoleUsers;
|
}
|
|
public Set<SystemRolePermission> getSystemRolePermissions() {
|
return this.systemRolePermissions;
|
}
|
|
public List<Permission> getPermissions() {
|
List<Permission> permissions = new ArrayList<Permission>();
|
|
Iterator<SystemRolePermission> iterator = this.systemRolePermissions.iterator();
|
while (iterator.hasNext()) {
|
permissions.add(iterator.next().getPermission());
|
}
|
|
return permissions;
|
}
|
|
public void setSystemRolePermissions(Set<SystemRolePermission> systemRolePermissions) {
|
this.systemRolePermissions = systemRolePermissions;
|
}
|
|
public void addSystemRolePermission(SystemRolePermission systemRolePermission) {
|
if (this.systemRolePermissions == null) {
|
this.systemRolePermissions = new HashSet<>();
|
}
|
|
this.systemRolePermissions.add(systemRolePermission);
|
}
|
|
public void removeSystemRolePermission(SystemRolePermission systemRolePermission) {
|
this.systemRolePermissions.remove(systemRolePermission);
|
}
|
|
public void addSystemRoleUser(SystemRoleUser systemRoleUser) {
|
if (this.systemRoleUsers == null) {
|
this.systemRoleUsers = new HashSet<>();
|
}
|
|
this.systemRoleUsers.add(systemRoleUser);
|
}
|
|
public String getRoleType() {
|
return roleType;
|
}
|
|
public void setRoleType(String roleType) {
|
this.roleType = roleType;
|
}
|
|
public void removeSystemRoleUser(SystemRoleUser systemRoleUser) {
|
this.systemRoleUsers.remove(systemRoleUser);
|
}
|
|
public boolean contains(User user) {
|
for (SystemRoleUser systemRoleUser : this.systemRoleUsers) {
|
if (user.getId().equals(systemRoleUser.getUser().getId())) {
|
return true;
|
}
|
}
|
|
return false;
|
}
|
|
public boolean contains(Long userId) {
|
for (SystemRoleUser systemRoleUser : this.systemRoleUsers) {
|
if (userId.equals(systemRoleUser.getUser().getId())) {
|
return true;
|
}
|
}
|
|
return false;
|
}
|
|
@Override
|
public int hashCode() {
|
final int prime = 31;
|
int result = 1;
|
result = prime * result + (this.id == null ? 0 : this.id.hashCode());
|
return result;
|
}
|
|
@Override
|
public boolean equals(Object obj) {
|
if (this == obj) {
|
return true;
|
}
|
if (obj == null) {
|
return false;
|
}
|
if (this.getClass() != obj.getClass()) {
|
return false;
|
}
|
SystemRole other = (SystemRole) obj;
|
if (this.id == null) {
|
if (other.id != null) {
|
return false;
|
}
|
} else if (!this.id.equals(other.id)) {
|
return false;
|
}
|
return true;
|
}
|
|
@Override
|
public String toString() {
|
StringBuilder builder = new StringBuilder();
|
builder.append("SystemRole [");
|
if (this.id != null) {
|
builder.append("id=");
|
builder.append(this.id);
|
builder.append(", ");
|
}
|
if (this.name != null) {
|
builder.append("name=");
|
builder.append(this.name);
|
builder.append(", ");
|
}
|
|
if (this.systemRoleUsers != null) {
|
builder.append("systemRoleUsers=");
|
builder.append(this.systemRoleUsers);
|
builder.append(", ");
|
}
|
if (this.systemRolePermissions != null) {
|
builder.append("systemRolePermissions=");
|
builder.append(this.systemRolePermissions);
|
}
|
builder.append("]");
|
return builder.toString();
|
}
|
|
public void addUser(User user) {
|
if (this.systemRoleUsers == null) {
|
this.systemRoleUsers = new HashSet<>();
|
}
|
|
SystemRoleUser systemRoleUser = new SystemRoleUser();
|
systemRoleUser.setSystemRole(this);
|
systemRoleUser.setUser(user);
|
|
this.systemRoleUsers.add(systemRoleUser);
|
}
|
|
public void removeUser(User user) {
|
for (SystemRoleUser systemRoleUser : this.systemRoleUsers) {
|
if (user.getId().equals(systemRoleUser.getUser().getId())) {
|
this.systemRoleUsers.remove(systemRoleUser);
|
break;
|
}
|
}
|
}
|
|
public void addPermission(Permission permission) {
|
SystemRolePermission systemRolePermission = new SystemRolePermission();
|
systemRolePermission.setSystemRole(this);
|
systemRolePermission.setPermission(permission);
|
|
systemRolePermissions.add(systemRolePermission);
|
}
|
}
|