package org.onap.portal.domain.dto.transport;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import java.util.Iterator;
+import java.io.Serializable;
+import java.time.LocalDateTime;
import java.util.Set;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Index;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import org.hibernate.validator.constraints.SafeHtml;
import org.onap.portal.domain.db.fn.FnRoleComposite;
import org.onap.portal.domain.db.fn.FnRoleFunction;
-import org.onap.portal.domain.dto.DomainVo;
+import org.onap.portal.domain.db.DomainVo;
import org.onap.portalsdk.core.domain.RoleFunction;
+@Table(name = "role", indexes = {
+ @Index(name = "fn_role_name_app_id_idx", columnList = "role_name, app_id", unique = true)
+})
@Getter
@Setter
-@Builder
-@AllArgsConstructor
+@Entity
@NoArgsConstructor
+@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Role extends DomainVo {
private static final long serialVersionUID = 1L;
- private String name;
- private boolean active;
+ @Column(name = "role_name", length = 300, nullable = false)
+ @Size(max = 300)
+ @NotNull
+ @SafeHtml
+ private String roleName;
+ @Column(name = "app_Id", length = 11, columnDefinition = "int(11) default null")
+ @Digits(integer = 11, fraction = 0)
+ private Long appId;
+ @Column(name = "active_yn", length = 1, columnDefinition = "boolean default true", nullable = false)
+ @NotNull
+ private Boolean activeYn = true;
+ @Column(name = "priority", length = 4, columnDefinition = "decimal(4,0) DEFAULT NULL")
+ @Digits(integer = 4, fraction = 0)
private Integer priority;
- private Set<FnRoleFunction> roleFunctions;
+ @OneToMany(
+ targetEntity = FnRoleFunction.class,
+ mappedBy = "role",
+ cascade = CascadeType.MERGE,
+ fetch = FetchType.LAZY
+ )
+ private Set<FnRoleFunction> fnRoleFunctions;
+ @OneToMany(
+ targetEntity = FnRoleComposite.class,
+ mappedBy = "childRoles",
+ cascade = CascadeType.MERGE,
+ fetch = FetchType.LAZY
+ )
private Set<FnRoleComposite> childRoles;
@JsonIgnore
+ @OneToMany(
+ targetEntity = FnRoleComposite.class,
+ mappedBy = "parentRoles",
+ cascade = CascadeType.MERGE,
+ fetch = FetchType.LAZY
+ )
private Set<FnRoleComposite> parentRoles;
public String getEditUrl() {
}
public String getToggleActiveImage() {
- return "/static/fusion/images/" + (this.isActive() ? "active.png" : "inactive.png");
+ return "/static/fusion/images/" + (this.activeYn ? "active.png" : "inactive.png");
}
public String getToggleActiveAltText() {
- return this.isActive() ? "Click to Deactivate Role" : "Click to Activate Role";
+ return this.activeYn ? "Click to Deactivate Role" : "Click to Activate Role";
}
public void removeChildRole(Long roleId) {
- Iterator i = this.childRoles.iterator();
- while (i.hasNext()) {
- org.onap.portalsdk.core.domain.Role childRole = (org.onap.portalsdk.core.domain.Role) i.next();
+ for (FnRoleComposite role : this.childRoles) {
+ Role childRole = role.getChildRoles();
if (childRole.getId().equals(roleId)) {
this.childRoles.remove(childRole);
break;
public void removeRoleFunction(String roleFunctionCd) {
- for (Object function : this.roleFunctions) {
+ for (Object function : this.fnRoleFunctions) {
RoleFunction roleFunction = (RoleFunction) function;
if (roleFunction.getCode().equals(roleFunctionCd)) {
- this.roleFunctions.remove(roleFunction);
+ this.fnRoleFunctions.remove(roleFunction);
break;
}
}
}
public int compareTo(Object obj) {
- String c1 = this.getName();
+ String c1 = this.getRoleName();
String c2 = ((org.onap.portalsdk.core.domain.Role) obj).getName();
return c1 != null && c2 != null ? c1.compareTo(c2) : 1;
}
+
+ public Role( Long id, LocalDateTime created,
+ LocalDateTime modified, Long rowNum, Serializable auditUserId,
+ DomainVo createdId, DomainVo modifiedId, Set<DomainVo> fnUsersCreatedId,
+ Set<DomainVo> fnUsersModifiedId, String roleName, Long appId, Boolean activeYn, Integer priority,
+ Set<FnRoleFunction> fnRoleFunctions, Set<FnRoleComposite> childRoles,
+ Set<FnRoleComposite> parentRoles) {
+ super(id, created, modified, rowNum, auditUserId, createdId, modifiedId, fnUsersCreatedId, fnUsersModifiedId);
+ this.roleName = roleName;
+ this.appId = appId;
+ this.activeYn = activeYn;
+ this.priority = priority;
+ this.fnRoleFunctions = fnRoleFunctions;
+ this.childRoles = childRoles;
+ this.parentRoles = parentRoles;
+ }
}