001/** 002 * Copyright 2005-2016 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.kim.bo.ui; 017 018import java.util.Iterator; 019 020import javax.persistence.Column; 021import javax.persistence.Entity; 022import javax.persistence.GeneratedValue; 023import javax.persistence.Id; 024import javax.persistence.Table; 025import javax.persistence.Transient; 026 027import org.apache.commons.lang.StringUtils; 028import org.kuali.rice.kim.api.KimConstants; 029import org.kuali.rice.kim.api.permission.Permission; 030import org.kuali.rice.kim.api.services.KimApiServiceLocator; 031import org.kuali.rice.krad.data.jpa.PortableSequenceGenerator; 032 033/** 034 * @author Kuali Rice Team (rice.collab@kuali.org) 035 */ 036@Entity 037@Table(name = "KRIM_PND_ROLE_PERM_T") 038public class KimDocumentRolePermission extends KimDocumentBoActivatableBase { 039 040 private static final long serialVersionUID = 1L; 041 042 @PortableSequenceGenerator(name = "KRIM_ROLE_PERM_ID_S") 043 @GeneratedValue(generator = "KRIM_ROLE_PERM_ID_S") 044 @Id 045 @Column(name = "ROLE_PERM_ID") 046 protected String rolePermissionId; 047 048 @Column(name = "ROLE_ID") 049 protected String roleId; 050 051 @Column(name = "PERM_ID") 052 protected String permissionId; 053 054 @Transient 055 protected Permission permission; 056 057 @Transient 058 protected String name; 059 060 @Transient 061 protected String namespaceCode; 062 063 public String getPermissionId() { 064 return permissionId; 065 } 066 067 public String getRoleId() { 068 return roleId; 069 } 070 071 public String getRolePermissionId() { 072 return rolePermissionId; 073 } 074 075 public void setPermissionId(String permissionId) { 076 this.permissionId = permissionId; 077 } 078 079 public void setRoleId(String roleId) { 080 this.roleId = roleId; 081 } 082 083 public void setRolePermissionId(String rolePermissionId) { 084 this.rolePermissionId = rolePermissionId; 085 } 086 087 public Permission getPermission() { 088 if (null != permissionId) { 089 if (permission == null || !StringUtils.equals(permission.getId(), permissionId)) { 090 permission = KimApiServiceLocator.getPermissionService().getPermission(permissionId); 091 } 092 } 093 return permission; 094 } 095 096 public String getPermissionDetailValues() { 097 Permission perm = getPermission(); 098 StringBuilder sb = new StringBuilder(); 099 if (perm.getAttributes() != null) { 100 Iterator<String> keyIter = perm.getAttributes().keySet().iterator(); 101 while (keyIter.hasNext()) { 102 String key = keyIter.next(); 103 sb.append(key).append('=').append(perm.getAttributes().get(key)); 104 if (keyIter.hasNext()) { 105 sb.append(KimConstants.KimUIConstants.COMMA_SEPARATOR).append(" "); 106 } 107 } 108 } 109 return sb.toString(); 110 } 111 112 public void setPermission(Permission permission) { 113 this.permission = permission; 114 } 115 116 public String getName() { 117 if (null == permission) { 118 getPermission(); 119 } 120 if (null == permission) { 121 return ""; 122 } 123 return permission.getName(); 124 } 125 126 public String getNamespaceCode() { 127 if (null == permission) { 128 getPermission(); 129 } 130 if (null == permission) { 131 return ""; 132 } 133 return permission.getNamespaceCode(); 134 } 135}