@Override public void load(Page page, ICallback<PagedResult<List<T>>> callback) { if(list == null) { callback.onFailure(new RuntimeException("List in static list loader cannot be null.")); return; } PagedResult<List<T>> result = new PagedResult<List<T>>(page, list, list.size()); callback.onSuccess(result); } }
@Override public PagedResult<List<T>> findAll(Page requestedPage) { RootFindCommand<? extends T> findCommand = datastore.find().type(clazz); applyPageSize(findCommand, requestedPage); applySortCriteria(findCommand, requestedPage); applyProjections(findCommand, requestedPage); applyFilters(findCommand, requestedPage); int totalCount = findCommand.countResultsNow(); Iterator<? extends T> result = findCommand.returnResultsNow(); List<T> resultList = new ArrayList<T>(); while (result.hasNext()) { resultList.add(result.next()); } return new PagedResult<List<T>>(requestedPage, resultList, totalCount); }
public PagedResult<List<T>> findPagedResultByCriteria(DetachedCriteria criteria, Page requestedPage, boolean cacheable) { Integer totalCount = null; // so we don't repeat aliases in one query - it is disallowed by // criteria definition Set<String> existingAliases = new HashSet<String>(); MutableBoolean addedFilterables = new MutableBoolean(); if (!retrieveAllResults(requestedPage)) { // select count only when paging totalCount = doGetCountByCriteria(criteria, requestedPage, existingAliases, addedFilterables); // clear count from criteria criteria.setProjection(null); criteria.setResultTransformer(Criteria.ROOT_ENTITY); } List<T> list = doFindByCriteria(criteria, requestedPage, existingAliases, !addedFilterables.value, cacheable); if (retrieveAllResults(requestedPage)) { // we are not paging results, get total count from fetched list totalCount = list.size(); } return new PagedResult<List<T>>(requestedPage, list, totalCount); }