1   package org.kuali.ole.describe.lookup;
2   
3   import org.kuali.ole.OLEConstants;
4   import org.kuali.ole.describe.bo.OleLocationIngestSummaryRecord;
5   import org.kuali.rice.krad.lookup.LookupableImpl;
6   import org.kuali.rice.krad.util.GlobalVariables;
7   import org.kuali.rice.krad.util.KRADConstants;
8   import org.kuali.rice.krad.web.form.LookupForm;
9   
10  import java.sql.Timestamp;
11  import java.text.SimpleDateFormat;
12  import java.util.ArrayList;
13  import java.util.List;
14  import java.util.Map;
15  
16  
17  
18  
19  
20  
21  
22  
23  public class OleLocationSummaryLookupableImpl extends LookupableImpl {
24      private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OleLocationSummaryLookupableImpl.class);
25  
26      
27  
28  
29  
30  
31  
32  
33  
34      @Override
35      protected List<?> getSearchResults(LookupForm form, Map<String, String> searchCriteria, boolean unbounded) {
36          LOG.debug("Inside getSearchResults()");
37          List<?> searchResults;
38          List<OleLocationIngestSummaryRecord> finalSearchResult = new ArrayList<OleLocationIngestSummaryRecord>();
39          List<OleLocationIngestSummaryRecord> oleLocationIngestSummaryRecords = new ArrayList<OleLocationIngestSummaryRecord>();
40          String dateField = searchCriteria.get(OLEConstants.OleLocationIngestSummaryRecord.DATE);
41          if (dateField != null && !dateField.equals("")) {
42              searchCriteria.remove(OLEConstants.OleLocationIngestSummaryRecord.DATE);
43              oleLocationIngestSummaryRecords = (List<OleLocationIngestSummaryRecord>) super.getSearchResults(form, searchCriteria, unbounded);
44              for (OleLocationIngestSummaryRecord oleLocationIngestSummaryRecord : oleLocationIngestSummaryRecords) {
45                  if (oleLocationIngestSummaryRecord.getDate() != null) {
46                      Timestamp dateOnly = oleLocationIngestSummaryRecord.getDate();
47                      SimpleDateFormat sdf = new SimpleDateFormat(OLEConstants.OleLocationIngestSummaryRecord.DATE_FORMAT);
48                      String datestr = sdf.format(dateOnly);
49                      if (datestr.equals(dateField)) {
50                          finalSearchResult.add(oleLocationIngestSummaryRecord);
51                      }
52                  }
53              }
54              searchCriteria.put(OLEConstants.OleLocationIngestSummaryRecord.DATE, dateField);
55          } else {
56              oleLocationIngestSummaryRecords = (List<OleLocationIngestSummaryRecord>) super.getSearchResults(form, searchCriteria, unbounded);
57              finalSearchResult.addAll(oleLocationIngestSummaryRecords);
58          }
59          searchResults = finalSearchResult;
60          if (searchResults.size() == 0) {
61              GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, OLEConstants.NO_RECORD_FOUND);
62          }
63          sortSearchResults(form, searchResults);
64          return searchResults;
65      }
66  }