@Override
public List<?> getSearchResults(LookupForm form, Map<String, String> searchCriteria, boolean unbounded) {
String userPrincipalId = GlobalVariables.getUserSession().getPrincipalId();
Integer searchResultsLimit = null;
Collection<?> rawSearchResults;
Map<String, String> nonBlankSearchCriteria = processSearchCriteria(form, searchCriteria);
if (nonBlankSearchCriteria == null) {
return new ArrayList<Object>();
}
if (!unbounded) {
searchResultsLimit = LookupUtils.getSearchResultsLimit(getDataObjectClass(), form);
}
rawSearchResults = getLookupService().findCollectionBySearchHelper(getDataObjectClass(),
nonBlankSearchCriteria, unbounded, searchResultsLimit);
if (rawSearchResults == null) {
rawSearchResults = new ArrayList<Object>();
} else {
sortSearchResults(form, (List<?>) rawSearchResults);
}
List<ClockLogBo> filteredResults = filterLookupResults((List<ClockLogBo>)rawSearchResults, userPrincipalId);
generateLookupResultsMessages(form, nonBlankSearchCriteria, filteredResults, unbounded);
for (ClockLogBo searchResult : filteredResults) {
if(searchResult != null) {
searchResult.setClockedByMissedPunch(TkServiceLocator.getClockLogService().isClockLogCreatedByMissedPunch(searchResult.getTkClockLogId()));
}
}
return filteredResults;
}