1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kim.impl.identity;
17
18 import org.apache.commons.lang.StringUtils;
19 import org.kuali.rice.core.api.criteria.QueryByCriteria;
20 import org.kuali.rice.core.api.exception.RiceIllegalArgumentException;
21 import org.kuali.rice.kim.api.identity.IdentityService;
22 import org.kuali.rice.kim.api.identity.CodedAttribute;
23 import org.kuali.rice.kim.api.identity.address.EntityAddress;
24 import org.kuali.rice.kim.api.identity.affiliation.EntityAffiliation;
25 import org.kuali.rice.kim.api.identity.affiliation.EntityAffiliationType;
26 import org.kuali.rice.kim.api.identity.citizenship.EntityCitizenship;
27 import org.kuali.rice.kim.api.identity.email.EntityEmail;
28 import org.kuali.rice.kim.api.identity.employment.EntityEmployment;
29 import org.kuali.rice.kim.api.identity.entity.Entity;
30 import org.kuali.rice.kim.api.identity.entity.EntityDefault;
31 import org.kuali.rice.kim.api.identity.entity.EntityDefaultQueryResults;
32 import org.kuali.rice.kim.api.identity.entity.EntityQueryResults;
33 import org.kuali.rice.kim.api.identity.external.EntityExternalIdentifier;
34 import org.kuali.rice.kim.api.identity.external.EntityExternalIdentifierType;
35 import org.kuali.rice.kim.api.identity.name.EntityName;
36 import org.kuali.rice.kim.api.identity.personal.EntityBioDemographics;
37 import org.kuali.rice.kim.api.identity.personal.EntityEthnicity;
38 import org.kuali.rice.kim.api.identity.phone.EntityPhone;
39 import org.kuali.rice.kim.api.identity.principal.EntityNamePrincipalName;
40 import org.kuali.rice.kim.api.identity.principal.Principal;
41 import org.kuali.rice.kim.api.identity.principal.PrincipalQueryResults;
42 import org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences;
43 import org.kuali.rice.kim.api.identity.residency.EntityResidency;
44 import org.kuali.rice.kim.api.identity.type.EntityTypeContactInfo;
45 import org.kuali.rice.kim.api.identity.visa.EntityVisa;
46 import org.kuali.rice.krad.util.ObjectUtils;
47
48 import javax.jws.WebParam;
49 import java.util.ArrayList;
50 import java.util.List;
51 import java.util.Map;
52
53
54
55
56
57
58
59
60 public class IdentityCurrentAndArchivedServiceImpl implements IdentityService {
61 private final IdentityArchiveService identityArchiveService;
62 private final IdentityService innerIdentityService;
63
64
65
66
67
68 public IdentityCurrentAndArchivedServiceImpl(IdentityService innerIdentityService,
69 IdentityArchiveService identityArchiveService) {
70 this.innerIdentityService = innerIdentityService;
71 this.identityArchiveService = identityArchiveService;
72 }
73
74
75
76
77 @Override
78 public CodedAttribute getAddressType(String code) {
79 return getInnerIdentityService().getAddressType(code);
80 }
81
82 @Override
83 public List<CodedAttribute> findAllAddressTypes() {
84 return getInnerIdentityService().findAllAddressTypes();
85 }
86
87 @Override
88 public EntityAffiliationType getAffiliationType(String code) {
89 return getInnerIdentityService().getAffiliationType(code);
90 }
91
92 @Override
93 public List<EntityAffiliationType> findAllAffiliationTypes() {
94 return getInnerIdentityService().findAllAffiliationTypes();
95 }
96
97
98
99
100 @Override
101 public CodedAttribute getCitizenshipStatus(String code) {
102 return CodedAttribute.Builder.create(getInnerIdentityService().getCitizenshipStatus(code)).build();
103 }
104
105 @Override
106 public List<CodedAttribute> findAllCitizenshipStatuses() {
107 return getInnerIdentityService().findAllCitizenshipStatuses();
108 }
109
110 @Override
111 public EntityNamePrincipalName getDefaultNamesForPrincipalId(String principalId) {
112 EntityNamePrincipalName name = getInnerIdentityService().getDefaultNamesForPrincipalId(principalId);
113 if(name == null || ObjectUtils.isNull(name.getDefaultName()) || StringUtils.isBlank(name.getPrincipalName()) || StringUtils.isBlank(name.getDefaultName().getCompositeName())) {
114 EntityDefault defaultEntity = this.getEntityDefaultByPrincipalId(principalId);
115 EntityNamePrincipalName.Builder nameBuilder = EntityNamePrincipalName.Builder.create();
116 for(Principal principal : defaultEntity.getPrincipals()) {
117 nameBuilder.setPrincipalName(principal.getPrincipalName());
118 }
119 nameBuilder.setDefaultName(EntityName.Builder.create(defaultEntity.getName()));
120 if (StringUtils.isBlank(defaultEntity.getName().getCompositeName())) {
121 String formattedName = defaultEntity.getName().getLastName() + ", " + defaultEntity.getName().getFirstName() + (defaultEntity.getName().getMiddleName()==null?"":" " + defaultEntity.getName().getMiddleName());
122 nameBuilder.getDefaultName().setCompositeName(formattedName);
123 }
124 return nameBuilder.build();
125 }
126 return name;
127 }
128
129 @Override
130 public EntityName addNameToEntity(EntityName name) {
131 return getInnerIdentityService().addNameToEntity(name);
132 }
133
134 @Override
135 public EntityName updateName(EntityName name) {
136 return getInnerIdentityService().updateName(name);
137 }
138
139 @Override
140 public EntityName inactivateName(String id) {
141 return getInnerIdentityService().inactivateName(id);
142 }
143
144 @Override
145 public EntityEmployment addEmploymentToEntity(EntityEmployment employment) {
146 return getInnerIdentityService().addEmploymentToEntity(employment);
147 }
148
149 @Override
150 public EntityEmployment updateEmployment(EntityEmployment employment) {
151 return getInnerIdentityService().updateEmployment(employment);
152 }
153
154 @Override
155 public EntityEmployment inactivateEmployment(String id) {
156 return getInnerIdentityService().inactivateEmployment(id);
157 }
158
159 @Override
160 public EntityBioDemographics addBioDemographicsToEntity(EntityBioDemographics bioDemographics) {
161 return getInnerIdentityService().addBioDemographicsToEntity(bioDemographics);
162 }
163
164 @Override
165 public EntityBioDemographics updateBioDemographics(EntityBioDemographics bioDemographics) {
166 return getInnerIdentityService().updateBioDemographics(bioDemographics);
167 }
168
169
170
171
172 @Override
173 public CodedAttribute getEmailType(String code) {
174 return getInnerIdentityService().getEmailType(code);
175 }
176
177 @Override
178 public List<CodedAttribute> findAllEmailTypes() {
179 return getInnerIdentityService().findAllEmailTypes();
180 }
181
182 @Override
183 public PrincipalQueryResults findPrincipals(QueryByCriteria query) throws RiceIllegalArgumentException {
184 return getInnerIdentityService().findPrincipals(query);
185 }
186
187
188
189
190 @Override
191 public CodedAttribute getEmploymentStatus(String code) {
192 return getInnerIdentityService().getEmploymentStatus(code);
193 }
194
195 @Override
196 public List<CodedAttribute> findAllEmploymentStatuses() {
197 return getInnerIdentityService().findAllEmploymentStatuses();
198 }
199
200
201
202
203 @Override
204 public CodedAttribute getEmploymentType(String code) {
205 return getInnerIdentityService().getEmploymentType(code);
206 }
207
208 @Override
209 public List<CodedAttribute> findAllEmploymentTypes() {
210 return getInnerIdentityService().findAllEmploymentTypes();
211 }
212
213
214
215
216
217 @Override
218 public EntityDefault getEntityDefault(String entityId) {
219 EntityDefault entity = getInnerIdentityService().getEntityDefault(entityId);
220 if ( entity == null ) {
221 entity = getIdentityArchiveService().getEntityDefaultFromArchive(entityId);
222 } else {
223 getIdentityArchiveService().saveEntityDefaultToArchive(entity);
224 }
225 return entity;
226 }
227
228
229
230
231
232 @Override
233 public EntityDefault getEntityDefaultByPrincipalId(String principalId) {
234 EntityDefault entity = getInnerIdentityService().getEntityDefaultByPrincipalId(principalId);
235 if ( entity == null ) {
236 entity = getIdentityArchiveService().getEntityDefaultFromArchiveByPrincipalId(principalId);
237 } else {
238 getIdentityArchiveService().saveEntityDefaultToArchive(entity);
239 }
240 return entity;
241 }
242
243
244
245
246
247 @Override
248 public EntityDefault getEntityDefaultByPrincipalName(String principalName) {
249 EntityDefault entity = getInnerIdentityService().getEntityDefaultByPrincipalName(principalName);
250 if ( entity == null ) {
251 entity = getIdentityArchiveService().getEntityDefaultFromArchiveByPrincipalName(principalName);
252 } else {
253 getIdentityArchiveService().saveEntityDefaultToArchive(entity);
254 }
255 return entity;
256 }
257
258
259
260
261
262 @Override
263 public EntityDefault getEntityDefaultByEmployeeId(String employeeId) {
264 EntityDefault entity = getInnerIdentityService().getEntityDefaultByEmployeeId(employeeId);
265 if ( entity == null ) {
266 entity = getIdentityArchiveService().getEntityDefaultFromArchiveByEmployeeId( employeeId );
267 } else {
268 getIdentityArchiveService().saveEntityDefaultToArchive(entity);
269 }
270 return entity;
271 }
272
273 @Override
274 public EntityDefaultQueryResults findEntityDefaults( QueryByCriteria queryByCriteria) {
275 return getInnerIdentityService().findEntityDefaults(queryByCriteria);
276 }
277
278 @Override
279 public EntityQueryResults findEntities(QueryByCriteria queryByCriteria) {
280 return getInnerIdentityService().findEntities(queryByCriteria);
281 }
282
283 @Override
284 public Entity getEntity(String entityId) {
285 return getInnerIdentityService().getEntity(entityId);
286 }
287
288 @Override
289 public Entity getEntityByPrincipalId(String principalId) {
290 return getInnerIdentityService().getEntityByPrincipalId(principalId);
291 }
292
293 @Override
294 public Entity getEntityByPrincipalName(String principalName) {
295 return getInnerIdentityService().getEntityByPrincipalName(principalName);
296 }
297
298 @Override
299 public Entity getEntityByEmployeeId(String employeeId) {
300 return getInnerIdentityService().getEntityByEmployeeId(employeeId);
301 }
302
303 @Override
304 public Entity createEntity(Entity entity) {
305 return getInnerIdentityService().createEntity(entity);
306 }
307
308 @Override
309 public Entity updateEntity(Entity entity) {
310 return getInnerIdentityService().updateEntity(entity);
311 }
312
313 @Override
314 public Entity inactivateEntity(String entityId) {
315 return getInnerIdentityService().inactivateEntity(entityId);
316 }
317
318
319
320
321 @Override
322 public CodedAttribute getNameType(String code) {
323 return getInnerIdentityService().getNameType(code);
324 }
325
326 @Override
327 public List<CodedAttribute> findAllNameTypes() {
328 return getInnerIdentityService().findAllNameTypes();
329 }
330
331 @Override
332 public EntityPrivacyPreferences getEntityPrivacyPreferences(
333 String entityId) {
334 return getInnerIdentityService().getEntityPrivacyPreferences(entityId);
335 }
336
337 @Override
338 public EntityPrivacyPreferences addPrivacyPreferencesToEntity(EntityPrivacyPreferences privacyPreferences) {
339 return getInnerIdentityService().addPrivacyPreferencesToEntity(privacyPreferences);
340 }
341
342 @Override
343 public EntityPrivacyPreferences updatePrivacyPreferences(EntityPrivacyPreferences privacyPreferences) {
344 return getInnerIdentityService().updatePrivacyPreferences(privacyPreferences);
345 }
346
347 @Override
348 public EntityCitizenship addCitizenshipToEntity(EntityCitizenship citizenship) {
349 return getInnerIdentityService().addCitizenshipToEntity(citizenship);
350 }
351
352 @Override
353 public EntityCitizenship updateCitizenship(EntityCitizenship citizenship) {
354 return getInnerIdentityService().updateCitizenship(citizenship);
355 }
356
357 @Override
358 public EntityCitizenship inactivateCitizenship(String id) {
359 return getInnerIdentityService().inactivateCitizenship(id);
360 }
361
362 @Override
363 public EntityEthnicity addEthnicityToEntity(EntityEthnicity ethnicity) {
364 return getInnerIdentityService().addEthnicityToEntity(ethnicity);
365 }
366
367 @Override
368 public EntityEthnicity updateEthnicity(EntityEthnicity ethnicity) {
369 return getInnerIdentityService().updateEthnicity(ethnicity);
370 }
371
372 @Override
373 public EntityResidency addResidencyToEntity(EntityResidency residency) {
374 return getInnerIdentityService().addResidencyToEntity(residency);
375 }
376
377 @Override
378 public EntityResidency updateResidency(EntityResidency residency) {
379 return getInnerIdentityService().updateResidency(residency);
380 }
381
382 @Override
383 public EntityVisa addVisaToEntity(EntityVisa visa) {
384 return getInnerIdentityService().addVisaToEntity(visa);
385 }
386
387 @Override
388 public EntityVisa updateVisa(EntityVisa visa) {
389 return getInnerIdentityService().updateVisa(visa);
390 }
391
392
393
394
395 @Override
396 public CodedAttribute getEntityType(String code) {
397 return getInnerIdentityService().getEntityType(code);
398 }
399
400 @Override
401 public List<CodedAttribute> findAllEntityTypes() {
402 return getInnerIdentityService().findAllEntityTypes();
403 }
404
405 @Override
406 public EntityExternalIdentifierType getExternalIdentifierType(String code) {
407 return getInnerIdentityService().getExternalIdentifierType(code);
408 }
409
410 @Override
411 public List<EntityExternalIdentifierType> findAllExternalIdendtifierTypes() {
412 return getInnerIdentityService().findAllExternalIdendtifierTypes();
413 }
414
415
416
417
418 @Override
419 public CodedAttribute getPhoneType(String code) {
420 return getInnerIdentityService().getPhoneType(code);
421 }
422
423 @Override
424 public List<CodedAttribute> findAllPhoneTypes() {
425 return getInnerIdentityService().findAllPhoneTypes();
426 }
427
428 @Override
429 public Principal getPrincipal(String principalId) {
430 return getInnerIdentityService().getPrincipal(principalId);
431 }
432
433
434
435
436
437
438
439
440
441
442
443
444 @Override
445 public List<Principal> getPrincipals(@WebParam(name = "principalIds") List<String> principalIds) {
446 List<Principal> ret = new ArrayList<Principal>();
447 for(String p: principalIds) {
448 Principal principalInfo = getPrincipal(p);
449
450 if (principalInfo != null) {
451 ret.add(principalInfo) ;
452 }
453 else {
454 return null;
455 }
456 }
457 return ret;
458 }
459
460 @Override
461 public Principal getPrincipalByPrincipalName(String principalName) {
462 return getInnerIdentityService().getPrincipalByPrincipalName(principalName);
463 }
464
465 @Override
466 public Principal getPrincipalByPrincipalNameAndPassword(
467 String principalName, String password) {
468 return getInnerIdentityService().getPrincipalByPrincipalNameAndPassword(
469 principalName, password);
470 }
471
472 @Override
473 public Principal addPrincipalToEntity(Principal principal) {
474 return getInnerIdentityService().addPrincipalToEntity(principal);
475 }
476
477 @Override
478 public Principal updatePrincipal(Principal principal) {
479 return getInnerIdentityService().updatePrincipal(principal);
480 }
481
482 @Override
483 public Principal inactivatePrincipal(String principalId) {
484 return getInnerIdentityService().inactivatePrincipal(principalId);
485 }
486
487 @Override
488 public Principal inactivatePrincipalByName(String principalName) {
489 return getInnerIdentityService().inactivatePrincipalByName(principalName);
490 }
491
492 @Override
493 public EntityTypeContactInfo addEntityTypeContactInfoToEntity(EntityTypeContactInfo entityTypeContactInfo) {
494 return getInnerIdentityService().addEntityTypeContactInfoToEntity(entityTypeContactInfo);
495 }
496
497 @Override
498 public EntityTypeContactInfo updateEntityTypeContactInfo(EntityTypeContactInfo entityTypeContactInfo) {
499 return getInnerIdentityService().updateEntityTypeContactInfo(entityTypeContactInfo);
500 }
501
502 @Override
503 public EntityTypeContactInfo inactivateEntityTypeContactInfo(String entityId, String entityTypeCode) {
504 return getInnerIdentityService().inactivateEntityTypeContactInfo(entityId, entityTypeCode);
505 }
506
507 @Override
508 public EntityAddress addAddressToEntity(EntityAddress address) {
509 return getInnerIdentityService().addAddressToEntity(address);
510 }
511
512 @Override
513 public EntityAddress updateAddress(EntityAddress address) {
514 return getInnerIdentityService().updateAddress(address);
515 }
516
517 @Override
518 public EntityAddress inactivateAddress(String addressId) {
519 return getInnerIdentityService().inactivateAddress(addressId);
520 }
521
522 @Override
523 public EntityEmail addEmailToEntity(EntityEmail email) {
524 return getInnerIdentityService().addEmailToEntity(email);
525 }
526
527 @Override
528 public EntityEmail updateEmail(EntityEmail email) {
529 return getInnerIdentityService().updateEmail(email);
530 }
531
532 @Override
533 public EntityEmail inactivateEmail(String emailId) {
534 return getInnerIdentityService().inactivateEmail(emailId);
535 }
536
537 @Override
538 public EntityPhone addPhoneToEntity(EntityPhone phone) {
539 return getInnerIdentityService().addPhoneToEntity(phone);
540 }
541
542 @Override
543 public EntityPhone updatePhone(EntityPhone phone) {
544 return getInnerIdentityService().updatePhone(phone);
545 }
546
547 @Override
548 public EntityPhone inactivatePhone(String phoneId) {
549 return getInnerIdentityService().inactivatePhone(phoneId);
550 }
551
552 @Override
553 public EntityExternalIdentifier addExternalIdentifierToEntity(EntityExternalIdentifier externalId) {
554 return getInnerIdentityService().addExternalIdentifierToEntity(externalId);
555 }
556
557 @Override
558 public EntityExternalIdentifier updateExternalIdentifier(EntityExternalIdentifier externalId) {
559 return getInnerIdentityService().updateExternalIdentifier(externalId);
560 }
561
562 @Override
563 public EntityAffiliation addAffiliationToEntity(EntityAffiliation affiliation) {
564 return getInnerIdentityService().addAffiliationToEntity(affiliation);
565 }
566
567 @Override
568 public EntityAffiliation updateAffiliation(EntityAffiliation affiliation) {
569 return getInnerIdentityService().updateAffiliation(affiliation);
570 }
571
572 @Override
573 public EntityAffiliation inactivateAffiliation(String id) {
574 return getInnerIdentityService().inactivateAffiliation(id);
575 }
576
577
578 private IdentityService getInnerIdentityService() {
579 return innerIdentityService;
580 }
581
582 private IdentityArchiveService getIdentityArchiveService() {
583 return identityArchiveService;
584 }
585 }