001/** 002 * Copyright 2005-2015 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 javax.persistence.Column; 019import javax.persistence.Entity; 020import javax.persistence.GeneratedValue; 021import javax.persistence.Id; 022import javax.persistence.IdClass; 023import javax.persistence.Table; 024import javax.persistence.Transient; 025 026import org.apache.commons.lang.StringUtils; 027import org.hibernate.annotations.GenericGenerator; 028import org.hibernate.annotations.Parameter; 029import org.kuali.rice.kim.api.KimConstants; 030import org.kuali.rice.kim.api.permission.Permission; 031import org.kuali.rice.kim.api.services.KimApiServiceLocator; 032 033import java.util.Iterator; 034 035/** 036 * @author Kuali Rice Team (rice.collab@kuali.org) 037 */ 038@IdClass(KimDocumentRolePermissionId.class) 039@Entity 040@Table(name="KRIM_PND_ROLE_PERM_T") 041public class KimDocumentRolePermission extends KimDocumentBoActivatableBase { 042 043 private static final long serialVersionUID = 1L; 044 @Id 045 @GeneratedValue(generator="KRIM_ROLE_PERM_ID_S") 046 @GenericGenerator(name="KRIM_ROLE_PERM_ID_S",strategy="org.kuali.rice.core.jpa.spring.RiceNumericStringSequenceStyleGenerator",parameters={ 047 @Parameter(name="sequence_name",value="KRIM_ROLE_PERM_ID_S"), 048 @Parameter(name="value_column",value="id") 049 }) 050 @Column(name="ROLE_PERM_ID") 051 protected String rolePermissionId; 052 @Column(name="ROLE_ID") 053 protected String roleId; 054 @Column(name="PERM_ID") 055 protected String permissionId; 056 @Transient 057 protected Permission permission; 058 @Transient 059 protected String name; 060 @Transient 061 protected String namespaceCode; 062 063 064 public String getPermissionId() { 065 return permissionId; 066 } 067 068 public String getRoleId() { 069 return roleId; 070 } 071 072 public String getRolePermissionId() { 073 return rolePermissionId; 074 } 075 076 public void setPermissionId(String permissionId) { 077 this.permissionId = permissionId; 078 } 079 080 public void setRoleId(String roleId) { 081 this.roleId = roleId; 082 } 083 084 public void setRolePermissionId(String rolePermissionId) { 085 this.rolePermissionId = rolePermissionId; 086 } 087 088 /** 089 * @return the permission 090 */ 091 public Permission getPermission() { 092 if(null != permissionId){ 093 if ( permission == null || !StringUtils.equals( permission.getId(), permissionId ) ) { 094 permission = KimApiServiceLocator.getPermissionService().getPermission(permissionId); 095 } 096 } 097 return permission; 098 } 099 100 public String getPermissionDetailValues() { 101 Permission perm = getPermission(); 102 StringBuffer sb = new StringBuffer(); 103 if ( perm.getAttributes() != null ) { 104 Iterator<String> keyIter = perm.getAttributes().keySet().iterator(); 105 while ( keyIter.hasNext() ) { 106 String key = keyIter.next(); 107 sb.append( key ).append( '=' ).append( perm.getAttributes().get(key) ); 108 if (keyIter.hasNext()) { 109 sb.append(KimConstants.KimUIConstants.COMMA_SEPARATOR).append(" "); 110 } 111 } 112 } 113 return sb.toString(); 114 } 115 116 /** 117 * @param permission the permission to set 118 */ 119 public void setPermission(Permission permission) { 120 this.permission = permission; 121 } 122 123 public String getName(){ 124 if( null == permission ) { 125 getPermission(); 126 } 127 128 if (null == permission) { 129 return ""; 130 } 131 132 return permission.getName(); 133 134 } 135 136 public String getNamespaceCode(){ 137 138 if( null == permission ) { 139 getPermission(); 140 } 141 142 if (null == permission) { 143 return ""; 144 } 145 146 return permission.getNamespaceCode(); 147 } 148 149}