001 /** 002 * Copyright 2005-2014 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 */ 016 package org.kuali.rice.kim.impl.role; 017 018 import javax.persistence.Column; 019 import javax.persistence.Convert; 020 import javax.persistence.Entity; 021 import javax.persistence.GeneratedValue; 022 import javax.persistence.Id; 023 import javax.persistence.Table; 024 import javax.persistence.Transient; 025 026 import org.kuali.rice.kim.api.role.Role; 027 import org.kuali.rice.kim.api.services.KimApiServiceLocator; 028 import org.kuali.rice.kim.api.type.KimTypeInfoService; 029 import org.kuali.rice.kim.framework.role.RoleEbo; 030 import org.kuali.rice.kim.impl.type.KimTypeBo; 031 import org.kuali.rice.krad.bo.DataObjectBase; 032 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; 033 import org.kuali.rice.krad.data.jpa.converters.BooleanYNConverter; 034 import org.kuali.rice.krad.data.jpa.PortableSequenceGenerator; 035 036 /** 037 * This is a copy of the RoleBo except it doesn't load the member information. 038 * Most of the methods in the RoleServiceImpl do not require the member 039 * information so loading all of it adds a lot of extra overhead. 040 * 041 * @author Kuali Rice Team (rice.collab@kuali.org) 042 */ 043 @Entity 044 @Table(name = "KRIM_ROLE_T") 045 public class RoleBoLite extends DataObjectBase implements RoleEbo { 046 private static final long serialVersionUID = 1L; 047 048 @PortableSequenceGenerator(name = "KRIM_ROLE_ID_S") 049 @GeneratedValue(generator = "KRIM_ROLE_ID_S") 050 @Id 051 @Column(name = "ROLE_ID") 052 private String id; 053 054 @Column(name = "ROLE_NM") 055 private String name; 056 057 @Column(name = "DESC_TXT") 058 private String description; 059 060 @Column(name = "ACTV_IND") 061 @Convert(converter = BooleanYNConverter.class) 062 private boolean active; 063 064 @Column(name = "KIM_TYP_ID") 065 private String kimTypeId; 066 067 @Column(name = "NMSPC_CD") 068 private String namespaceCode; 069 070 @Transient 071 private String principalName; 072 073 @Transient 074 private String groupNamespaceCode; 075 076 @Transient 077 private String groupName; 078 079 @Transient 080 private String permNamespaceCode; 081 082 @Transient 083 private String permName; 084 085 @Transient 086 private String permTmplNamespaceCode; 087 088 @Transient 089 private String permTmplName; 090 091 @Transient 092 private String respNamespaceCode; 093 094 @Transient 095 private String respName; 096 097 @Transient 098 private String respTmplNamespaceCode; 099 100 @Transient 101 private String respTmplName; 102 103 @Transient 104 private transient KimTypeInfoService kimTypeInfoService; 105 106 public KimTypeBo getKimRoleType() { 107 return KimTypeBo.from(getTypeInfoService().getKimType(kimTypeId)); 108 } 109 110 protected KimTypeInfoService getTypeInfoService() { 111 if (kimTypeInfoService == null) { 112 kimTypeInfoService = KimApiServiceLocator.getKimTypeInfoService(); 113 } 114 return kimTypeInfoService; 115 } 116 117 public static Role to(RoleBoLite bo) { 118 if (bo == null) { 119 return null; 120 } 121 return Role.Builder.create(bo).build(); 122 } 123 124 public static RoleBo from(Role immutable) { 125 if (immutable == null) { 126 return null; 127 } 128 RoleBo bo = new RoleBo(); 129 bo.setId(immutable.getId()); 130 bo.setName(immutable.getName()); 131 bo.setNamespaceCode(immutable.getNamespaceCode()); 132 bo.setDescription(immutable.getDescription()); 133 bo.setKimTypeId(immutable.getKimTypeId()); 134 bo.setActive(immutable.isActive()); 135 bo.setVersionNumber(immutable.getVersionNumber()); 136 bo.setObjectId(immutable.getObjectId()); 137 return bo; 138 } 139 140 public String getId() { 141 return id; 142 } 143 144 public void setId(String id) { 145 this.id = id; 146 } 147 148 public String getName() { 149 return name; 150 } 151 152 public void setName(String name) { 153 this.name = name; 154 } 155 156 public String getDescription() { 157 return description; 158 } 159 160 public void setDescription(String description) { 161 this.description = description; 162 } 163 164 public boolean getActive() { 165 return active; 166 } 167 168 public boolean isActive() { 169 return active; 170 } 171 172 public void setActive(boolean active) { 173 this.active = active; 174 } 175 176 public String getKimTypeId() { 177 return kimTypeId; 178 } 179 180 public void setKimTypeId(String kimTypeId) { 181 this.kimTypeId = kimTypeId; 182 } 183 184 public String getNamespaceCode() { 185 return namespaceCode; 186 } 187 188 public void setNamespaceCode(String namespaceCode) { 189 this.namespaceCode = namespaceCode; 190 } 191 192 public String getPrincipalName() { 193 return principalName; 194 } 195 196 public void setPrincipalName(String principalName) { 197 this.principalName = principalName; 198 } 199 200 public String getGroupNamespaceCode() { 201 return groupNamespaceCode; 202 } 203 204 public void setGroupNamespaceCode(String groupNamespaceCode) { 205 this.groupNamespaceCode = groupNamespaceCode; 206 } 207 208 public String getGroupName() { 209 return groupName; 210 } 211 212 public void setGroupName(String groupName) { 213 this.groupName = groupName; 214 } 215 216 public String getPermNamespaceCode() { 217 return permNamespaceCode; 218 } 219 220 public void setPermNamespaceCode(String permNamespaceCode) { 221 this.permNamespaceCode = permNamespaceCode; 222 } 223 224 public String getPermName() { 225 return permName; 226 } 227 228 public void setPermName(String permName) { 229 this.permName = permName; 230 } 231 232 public String getPermTmplNamespaceCode() { 233 return permTmplNamespaceCode; 234 } 235 236 public void setPermTmplNamespaceCode(String permTmplNamespaceCode) { 237 this.permTmplNamespaceCode = permTmplNamespaceCode; 238 } 239 240 public String getPermTmplName() { 241 return permTmplName; 242 } 243 244 public void setPermTmplName(String permTmplName) { 245 this.permTmplName = permTmplName; 246 } 247 248 public String getRespNamespaceCode() { 249 return respNamespaceCode; 250 } 251 252 public void setRespNamespaceCode(String respNamespaceCode) { 253 this.respNamespaceCode = respNamespaceCode; 254 } 255 256 public String getRespName() { 257 return respName; 258 } 259 260 public void setRespName(String respName) { 261 this.respName = respName; 262 } 263 264 public String getRespTmplNamespaceCode() { 265 return respTmplNamespaceCode; 266 } 267 268 public void setRespTmplNamespaceCode(String respTmplNamespaceCode) { 269 this.respTmplNamespaceCode = respTmplNamespaceCode; 270 } 271 272 public String getRespTmplName() { 273 return respTmplName; 274 } 275 276 public void setRespTmplName(String respTmplName) { 277 this.respTmplName = respTmplName; 278 } 279 280 @Override 281 public void refresh() { 282 } 283 }