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 }