/** * Obtains the list of resource to update in the offline index, * then optimizes the list by removing duplicate entries.<p> * * @return the list of resource to update in the offline index */ protected List<CmsPublishedResource> getResourcesToIndex() { List<CmsPublishedResource> resourcesToIndex = m_handler.getResourcesToIndex(); List<CmsPublishedResource> result = new ArrayList<CmsPublishedResource>(resourcesToIndex.size()); Iterator<CmsPublishedResource> i = resourcesToIndex.iterator(); while (i.hasNext()) { Object o = i.next(); CmsPublishedResource pubRes = (CmsPublishedResource)o; int pos = result.indexOf(pubRes); if (pos < 0) { // resource not already contained in the update list result.add(pubRes); } else { CmsPublishedResource curRes = result.get(pos); if ((pubRes.getState() != curRes.getState()) || (pubRes.getMovedState() != curRes.getMovedState()) || !pubRes.getRootPath().equals(curRes.getRootPath())) { // resource already in the update list but new state is different, so also add this result.add(pubRes); } } } return result; }
/** * Obtains the list of resource to update in the offline index, * then optimizes the list by removing duplicate entries.<p> * * @return the list of resource to update in the offline index */ protected List<CmsPublishedResource> getResourcesToIndex() { List<CmsPublishedResource> resourcesToIndex = m_handler.getResourcesToIndex(); List<CmsPublishedResource> result = new ArrayList<CmsPublishedResource>(resourcesToIndex.size()); // Reverse to always keep the last list entries Collections.reverse(resourcesToIndex); for (CmsPublishedResource pubRes : resourcesToIndex) { boolean addResource = true; for (CmsPublishedResource resRes : result) { if (pubRes.equals(resRes) && (pubRes.getState() == resRes.getState()) && (pubRes.getMovedState() == resRes.getMovedState()) && pubRes.getRootPath().equals(resRes.getRootPath())) { // resource already in the update list addResource = false; break; } } if (addResource) { result.add(pubRes); } } Collections.reverse(result); return changeStateOfMoveOriginsToDeleted(result); }