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