Перебор страниц результатов поиска ресурсов

                // Ограничение выдачи результатов 10 записями за раз, начиная с 0
                queryBuilder.setMaxResults(10);

                // Получение первой страницы результатов
                SearchResult pagedResult = session.getAssets(queryBuilder);
                int totalNumberOfAssets = pagedResult.getTotalResultsCount();
                int assetRunningCount = 0;

                AssetSearchResult[] queryAssets = pagedResult.getAssetSearchResults();

                // Цикл перебора всех страниц
                while (assetRunningCount < totalNumberOfAssets) {
                        // Цикл перебора всех ресурсов страницы
                        for (int j = 0; j < queryAssets.length; j++) {
                                RAMAsset currentAsset = (RAMAsset)queryAssets[j].getAsset();

                                // Манипуляции с ресурсом

                                assetRunningCount++;
                        }

                        // Получение следующей страницы результатов, если есть дополнительные страницы
                        if (assetRunningCount < totalNumberOfAssets) {
                                try {
                                        queryBuilder.setResultsStartIndex(assetRunningCount);

                                        pagedResult = session.getAssets(queryBuilder);
                                        queryAssets = pagedResult.getAssetSearchResults();

                                        if (queryAssets == null || queryAssets.length == 0) {
                                                break;
                                        }
                                } catch (Throwable e) {
                                        break;
                                }
                        }
                }

Комментарии