X-Git-Url: https://gerrit.onap.org/r/gitweb?p=portal.git;a=blobdiff_plain;f=portal-BE%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fportal%2Fdomain%2Fdto%2Ftransport%2FRole.java;h=e7ba856e91c9bb7c5ce2bf6c68944b9b15ebef63;hp=92eabbb002ddf1c4065895fb126a8ea8ffb45efb;hb=ffd9af970318c1f5a0bad46d7aad5d4611414aae;hpb=39fb119cdaea6bd8d801b22d195db39f6d8faaca diff --git a/portal-BE/src/main/java/org/onap/portal/domain/dto/transport/Role.java b/portal-BE/src/main/java/org/onap/portal/domain/dto/transport/Role.java index 92eabbb0..e7ba856e 100644 --- a/portal-BE/src/main/java/org/onap/portal/domain/dto/transport/Role.java +++ b/portal-BE/src/main/java/org/onap/portal/domain/dto/transport/Role.java @@ -41,33 +41,79 @@ 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 roleFunctions; + @OneToMany( + targetEntity = FnRoleFunction.class, + mappedBy = "role", + cascade = CascadeType.MERGE, + fetch = FetchType.LAZY + ) + private Set fnRoleFunctions; + @OneToMany( + targetEntity = FnRoleComposite.class, + mappedBy = "childRoles", + cascade = CascadeType.MERGE, + fetch = FetchType.LAZY + ) private Set childRoles; @JsonIgnore + @OneToMany( + targetEntity = FnRoleComposite.class, + mappedBy = "parentRoles", + cascade = CascadeType.MERGE, + fetch = FetchType.LAZY + ) private Set parentRoles; public String getEditUrl() { @@ -75,18 +121,17 @@ public class Role extends DomainVo { } 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; @@ -109,10 +154,10 @@ public class Role extends DomainVo { 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; } } @@ -120,8 +165,24 @@ public class Role extends DomainVo { } 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 fnUsersCreatedId, + Set fnUsersModifiedId, String roleName, Long appId, Boolean activeYn, Integer priority, + Set fnRoleFunctions, Set childRoles, + Set 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; + } }