1 package org.kuali.ole.batch.keyvalue;
2
3 import org.apache.commons.lang.StringUtils;
4 import org.kuali.ole.OLEConstants;
5 import org.kuali.ole.batch.bo.OLEBatchProcessProfileConstantsBo;
6 import org.kuali.ole.select.bo.OLEDonor;
7 import org.kuali.rice.core.api.util.ConcreteKeyValue;
8 import org.kuali.rice.core.api.util.KeyValue;
9 import org.kuali.rice.krad.service.KRADServiceLocator;
10 import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
11 import org.kuali.rice.krad.uif.control.UifKeyValuesFinderBase;
12 import org.kuali.rice.krad.uif.view.ViewModel;
13 import org.kuali.rice.krad.web.form.MaintenanceDocumentForm;
14 import org.springframework.util.CollectionUtils;
15
16 import java.util.ArrayList;
17 import java.util.HashSet;
18 import java.util.List;
19 import java.util.Set;
20
21
22
23
24 public class OLEBatchProcessDonorKeyValueFinder extends UifKeyValuesFinderBase {
25 @Override
26 public List<KeyValue> getKeyValues(ViewModel model) {
27 List<KeyValue> keyValues = new ArrayList<KeyValue>();
28 MaintenanceDocumentForm maintenanceForm = (MaintenanceDocumentForm) model;
29 OLEBatchProcessProfileConstantsBo oleBatchProcessProfileConstantsBo = null;
30 if (!CollectionUtils.isEmpty(maintenanceForm.getNewCollectionLines())) {
31 oleBatchProcessProfileConstantsBo = (OLEBatchProcessProfileConstantsBo) maintenanceForm.getNewCollectionLines().get("document.newMaintainableObject.dataObject.oleBatchProcessProfileConstantsList");
32 }
33 if (oleBatchProcessProfileConstantsBo != null) {
34 String dataType = oleBatchProcessProfileConstantsBo.getDataType();
35 if (StringUtils.isNotBlank(dataType)) {
36 String attributeName = oleBatchProcessProfileConstantsBo.getAttributeName();
37 String oldAttributeName = oleBatchProcessProfileConstantsBo.getOldAttributeName();
38 if (!StringUtils.isBlank(attributeName)) {
39 if (oldAttributeName == null || !attributeName.equalsIgnoreCase(oldAttributeName)) {
40 oleBatchProcessProfileConstantsBo.setOldAttributeName(attributeName);
41 if (dataType.equalsIgnoreCase(OLEConstants.OLEBatchProcess.BATCH_PROCESS_PROFILE_DATATYPE_ITEM) || dataType.equalsIgnoreCase(OLEConstants.OLEBatchProcess.BATCH_PROCESS_PROFILE_DATATYPE_EHOLDINGS)) {
42 List<OLEDonor> donorInfoList = (List<OLEDonor>) KRADServiceLocatorWeb.getLegacyDataAdapter().findAll(OLEDonor.class);
43 if (attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.DESTINATION_FIELD_DONOR_CODE)) {
44 if (!CollectionUtils.isEmpty(donorInfoList)) {
45 Set<KeyValue> donorCodes = new HashSet<>();
46 for (OLEDonor oleDonor : donorInfoList) {
47 donorCodes.add(new ConcreteKeyValue(oleDonor.getDonorCode(), oleDonor.getDonorCode()));
48 }
49 keyValues.addAll(donorCodes);
50 }
51 } else if (attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.DESTINATION_FIELD_DONOR_PUBLIC_DISPLAY)) {
52 if (!CollectionUtils.isEmpty(donorInfoList)) {
53 Set<KeyValue> donorPublicDisplays = new HashSet<>();
54 for (OLEDonor oleDonor : donorInfoList) {
55 donorPublicDisplays.add(new ConcreteKeyValue(oleDonor.getDonorPublicDisplay(), oleDonor.getDonorPublicDisplay()));
56 }
57 keyValues.addAll(donorPublicDisplays);
58 }
59 } else if (attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.DESTINATION_FIELD_DONOR_NOTE)) {
60 if (!CollectionUtils.isEmpty(donorInfoList)) {
61 Set<KeyValue> donorNotes = new HashSet<>();
62 for (OLEDonor oleDonor : donorInfoList) {
63 donorNotes.add(new ConcreteKeyValue(oleDonor.getDonorNote(), oleDonor.getDonorNote()));
64 }
65 keyValues.addAll(donorNotes);
66 }
67 }
68 }
69 }
70 }
71 }
72 }
73 return keyValues;
74 }
75 }