1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kim.bo.ui;
17
18 import org.hibernate.annotations.Fetch;
19 import org.hibernate.annotations.FetchMode;
20 import org.hibernate.annotations.GenericGenerator;
21 import org.hibernate.annotations.Parameter;
22 import org.kuali.rice.kew.api.action.DelegationType;
23 import org.kuali.rice.kim.api.group.Group;
24 import org.kuali.rice.kim.api.role.Role;
25 import org.kuali.rice.kim.api.services.KimApiServiceLocator;
26 import org.kuali.rice.kim.impl.role.RoleBo;
27 import org.kuali.rice.kim.impl.type.KimTypeAttributesHelper;
28 import org.kuali.rice.kim.impl.type.KimTypeBo;
29 import org.kuali.rice.kim.util.KimConstants;
30 import org.springframework.util.AutoPopulatingList;
31
32 import javax.persistence.CascadeType;
33 import javax.persistence.Column;
34 import javax.persistence.Entity;
35 import javax.persistence.FetchType;
36 import javax.persistence.GeneratedValue;
37 import javax.persistence.Id;
38 import javax.persistence.IdClass;
39 import javax.persistence.JoinColumn;
40 import javax.persistence.JoinColumns;
41 import javax.persistence.OneToMany;
42 import javax.persistence.Table;
43 import javax.persistence.Transient;
44 import java.util.List;
45
46
47
48
49
50
51
52 @IdClass(RoleDocumentDelegationMemberId.class)
53 @Entity
54 @Table(name="KRIM_PND_DLGN_MBR_T")
55 public class RoleDocumentDelegationMember extends KimDocumentBoActivatableToFromBase {
56
57 private static final long serialVersionUID = 1L;
58
59 @Id
60 @GeneratedValue(generator="KRIM_DLGN_MBR_ID_S")
61 @GenericGenerator(name="KRIM_DLGN_MBR_ID_S",strategy="org.kuali.rice.core.jpa.spring.RiceNumericStringSequenceStyleGenerator",parameters={
62 @Parameter(name="sequence_name",value="KRIM_DLGN_MBR_ID_S"),
63 @Parameter(name="value_column",value="id")
64 })
65 @Column(name="DLGN_MBR_ID")
66 protected String delegationMemberId;
67
68 @Column(name="ROLE_MBR_ID")
69 protected String roleMemberId;
70 @Transient
71 protected String roleMemberMemberId;
72 @Transient
73 protected String roleMemberMemberTypeCode;
74 @Transient
75 protected String roleMemberName;
76 @Transient
77 protected String roleMemberNamespaceCode;
78
79 @Transient
80 private KimTypeAttributesHelper attributesHelper;
81
82 @Transient
83 protected RoleBo roleBo = new RoleBo();
84
85 @Column(name="DLGN_ID")
86 protected String delegationId;
87
88 @Column(name="MBR_ID")
89 protected String memberId;
90
91 @Column(name="MBR_TYP_CD")
92 protected String memberTypeCode = KimConstants.KimGroupMemberTypes.PRINCIPAL_MEMBER_TYPE;
93
94 @Transient
95 protected String memberNamespaceCode;
96
97 @Column(name="MBR_NM")
98 protected String memberName;
99 @OneToMany(targetEntity=RoleDocumentDelegationMemberQualifier.class, fetch=FetchType.EAGER, cascade={CascadeType.ALL})
100 @Fetch(value = FetchMode.SELECT)
101 @JoinColumns({
102 @JoinColumn(name="dlgn_id",insertable=false,updatable=false),
103 @JoinColumn(name="fdoc_nbr", insertable=false, updatable=false)
104 })
105 protected List <RoleDocumentDelegationMemberQualifier> qualifiers = new AutoPopulatingList(RoleDocumentDelegationMemberQualifier.class);
106
107 @Transient
108 protected String delegationTypeCode;
109
110
111
112
113 public String getDelegationTypeCode() {
114 return this.delegationTypeCode;
115 }
116
117
118
119
120 public void setDelegationTypeCode(String delegationTypeCode) {
121 this.delegationTypeCode = delegationTypeCode;
122 }
123
124 public String getDelegationId() {
125 return this.delegationId;
126 }
127
128 public void setDelegationId(String delegationId) {
129 this.delegationId = delegationId;
130 }
131
132
133
134
135 public List<RoleDocumentDelegationMemberQualifier> getQualifiers() {
136 return this.qualifiers;
137 }
138
139 public RoleDocumentDelegationMemberQualifier getQualifier(String kimAttributeDefnId) {
140 for(RoleDocumentDelegationMemberQualifier qualifier:qualifiers){
141 if(qualifier.getKimAttrDefnId().equals(kimAttributeDefnId)) {
142 return qualifier;
143 }
144 }
145 return null;
146 }
147
148
149
150
151 public void setQualifiers(List<RoleDocumentDelegationMemberQualifier> qualifiers) {
152 this.qualifiers = qualifiers;
153 }
154
155 public int getNumberOfQualifiers(){
156 return qualifiers==null?0:qualifiers.size();
157 }
158
159
160
161
162 public String getMemberId() {
163 return this.memberId;
164 }
165
166
167
168
169 public void setMemberId(String memberId) {
170 this.memberId = memberId;
171 }
172
173
174
175
176 public String getMemberName() {
177 return this.memberName;
178 }
179
180
181
182
183 public void setMemberName(String memberName) {
184 this.memberName = memberName;
185 }
186
187
188
189
190 public String getDelegationMemberId() {
191 return this.delegationMemberId;
192 }
193
194
195
196
197 public void setDelegationMemberId(String delegationMemberId) {
198 this.delegationMemberId = delegationMemberId;
199 }
200
201
202
203
204 public String getMemberTypeCode() {
205 return this.memberTypeCode;
206 }
207
208
209
210
211 public void setMemberTypeCode(String memberTypeCode) {
212 this.memberTypeCode = memberTypeCode;
213 }
214
215
216 public boolean isDelegationPrimary(){
217 return DelegationType.PRIMARY.getCode().equals(getDelegationTypeCode());
218 }
219
220 public boolean isDelegationSecondary(){
221 return DelegationType.SECONDARY.getCode().equals(getDelegationTypeCode());
222 }
223
224
225
226
227 public String getMemberNamespaceCode() {
228 if ( memberNamespaceCode == null ) {
229 populateDerivedValues();
230 }
231 return this.memberNamespaceCode;
232 }
233
234
235
236
237 public void setMemberNamespaceCode(String memberNamespaceCode) {
238 this.memberNamespaceCode = memberNamespaceCode;
239 }
240
241 protected void populateDerivedValues() {
242 if(KimConstants.KimUIConstants.MEMBER_TYPE_GROUP_CODE.equals(getMemberTypeCode())){
243 Group groupInfo = null;
244 groupInfo = KimApiServiceLocator.getGroupService().getGroup(getMemberId());
245 if (groupInfo != null) {
246 setMemberNamespaceCode(groupInfo.getNamespaceCode());
247 }
248 } else if(KimConstants.KimUIConstants.MEMBER_TYPE_ROLE_CODE.equals(getMemberTypeCode())){
249 Role role;
250 role = KimApiServiceLocator.getRoleService().getRole(getMemberId());
251 setMemberNamespaceCode(role.getNamespaceCode());
252 }
253 }
254
255
256
257
258 public String getRoleMemberId() {
259 return this.roleMemberId;
260 }
261
262
263
264
265 public void setRoleMemberId(String roleMemberId) {
266 this.roleMemberId = roleMemberId;
267 }
268
269 public boolean isRole(){
270 return getMemberTypeCode()!=null && getMemberTypeCode().equals(KimConstants.KimUIConstants.MEMBER_TYPE_ROLE_CODE);
271 }
272
273 public boolean isGroup(){
274 return getMemberTypeCode()!=null && getMemberTypeCode().equals(KimConstants.KimUIConstants.MEMBER_TYPE_GROUP_CODE);
275 }
276
277 public boolean isPrincipal(){
278 return getMemberTypeCode()!=null && getMemberTypeCode().equals(KimConstants.KimUIConstants.MEMBER_TYPE_PRINCIPAL_CODE);
279 }
280
281
282
283
284 public String getRoleMemberName() {
285 return this.roleMemberName;
286 }
287
288
289
290
291 public void setRoleMemberName(String roleMemberName) {
292 this.roleMemberName = roleMemberName;
293 }
294
295
296
297
298 public String getRoleMemberNamespaceCode() {
299 return this.roleMemberNamespaceCode;
300 }
301
302
303
304
305 public void setRoleMemberNamespaceCode(String roleMemberNamespaceCode) {
306 this.roleMemberNamespaceCode = roleMemberNamespaceCode;
307 }
308
309
310
311
312 public RoleBo getRoleBo() {
313 return this.roleBo;
314 }
315
316
317
318
319 public void setRoleBo(RoleBo roleBo) {
320 this.roleBo = roleBo;
321 setAttributesHelper(new KimTypeAttributesHelper(KimTypeBo.to(roleBo.getKimRoleType())));
322 }
323
324
325
326
327 public KimTypeAttributesHelper getAttributesHelper() {
328 return this.attributesHelper;
329 }
330
331
332
333
334 public void setAttributesHelper(KimTypeAttributesHelper attributesHelper) {
335 this.attributesHelper = attributesHelper;
336 }
337
338
339
340
341 public String getRoleMemberMemberId() {
342 return this.roleMemberMemberId;
343 }
344
345
346
347
348 public void setRoleMemberMemberId(String roleMemberMemberId) {
349 this.roleMemberMemberId = roleMemberMemberId;
350 }
351
352
353
354
355 public String getRoleMemberMemberTypeCode() {
356 return this.roleMemberMemberTypeCode;
357 }
358
359
360
361
362 public void setRoleMemberMemberTypeCode(String roleMemberMemberTypeCode) {
363 this.roleMemberMemberTypeCode = roleMemberMemberTypeCode;
364 }
365 }