/** * This method gets the applicable providers that meet the search criteria. If none available, the * search result will be empty. * * @param criteria the search criteria * @return the search result with the matched providers * @throws IllegalArgumentException if the criteria is null * @throws IllegalArgumentException if criteria.pageNumber < 0 * @throws IllegalArgumentException - if criteria.pageSize < 1 unless criteria.pageNumber <= 0 * @throws ServiceException for any other exceptions encountered */ @TransactionAttribute(TransactionAttributeType.REQUIRED) public SearchResult<ProviderProfile> search(HospiceSearchCriteria criteria) throws ServiceException { String signature = CLASS_NAME + "#search(HospiceSearchCriteria criteria)"; LogUtil.traceEntry(getLog(), signature, new String[] {"criteria"}, new Object[] {criteria}); try { SearchResult<ProviderProfile> results = hospiceLicensingDAO.search(criteria); return LogUtil.traceExit(getLog(), signature, results); } catch (IllegalArgumentException e) { LogUtil.traceError(getLog(), signature, e); throw e; } catch (ServiceException e) { LogUtil.traceError(getLog(), signature, e); throw e; } }