Parcourir les résultats d'une recherche d'actifs page par page

                // Limiter les résultats à 10 enregistrements par page, commencer à l'enregistrement 0
                queryBuilder.setMaxResults(10);

                // Récupérer la première page de résultats
                SearchResult pagedResult = session.getAssets(queryBuilder);
                int totalNumberOfAssets = pagedResult.getTotalResultsCount();
                int assetRunningCount = 0;

                AssetSearchResult[] queryAssets = pagedResult.getAssetSearchResults();

                // Boucle pour parcourir toutes les pages
                while (assetRunningCount < totalNumberOfAssets) {
                        // Boucle pour parcourir les actifs de la page courante
                        for (int j = 0; j < queryAssets.length; j++) {
                                RAMAsset currentAsset = (RAMAsset)queryAssets[j].getAsset();

                                // Exécuter une action avec cet actif

                                assetRunningCount++;
                        }

                        // S'il reste des pages de résultats à parcourir, extraire la suivante
                        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;
                                }
                        }
                }

Commentaires