/** * Convert all result to the wikitty type and return new PagedResult with * this new result list. * * @param securityToken security token * @param ws wikitty service * * @return new PagedResult, this result can have less elements that original * for some reason (security, ...) */ public PagedResult<Wikitty> cast(String securityToken, WikittyService ws) { List<Wikitty> castedResult; if (results.size() == 0) { castedResult = new ArrayList<Wikitty>(); } else { if (results.get(0) instanceof String) { // le pagedresult courant contient des Ids // Si ce n'est pas le cas, ca veut dire que le developpeur utilisant // ce PagedResult ne sait pas ce qu'il fait :) List<String> ids = (List<String>) results; castedResult = ws.restore(securityToken, ids); } else { throw new ClassCastException("PagedResult don't contains" + " wikitty String id but " + results.get(0).getClass()); } } PagedResult<Wikitty> result = new PagedResult<Wikitty>(criteriaName, firstIndice, numFound, queryString, facets, castedResult); return result; }
@Override public PagedResult<String> findAllByCriteria(WikittyTransaction transaction, Criteria criteria) { // throw new UnsupportedOperationException("Not supported yet."); int firstIndex = criteria.getFirstIndex(); int endIndex = criteria.getEndIndex(); List<String> ids = new LinkedList<String>(); int currentIndex = 0; for (Entry<String, Wikitty> entry : wikittyStorage.getWikitties().entrySet()) { Wikitty w = entry.getValue(); String id = entry.getKey(); Restriction dto = criteria.getRestriction(); if (!w.isDeleted() && checkRestriction(transaction, dto, w)) { currentIndex++; if (currentIndex > firstIndex) { ids.add(id); } if (endIndex >= 0 && currentIndex >= endIndex) { break; } } } return new PagedResult<String>(criteria.getName(), firstIndex, ids.size(), criteria.getRestriction().toString(), null, ids); }
PagedResult<E> result = new PagedResult<E>(criteriaName, firstIndice, numFound, queryString, facets, castedResult); return result;
List<String> results = new ArrayList<String>(ids); result.add(new PagedResult<String>(criteriaName, firstIndice, numFound, queryString, facets, results));
PagedResult<String> result = new PagedResult<String>( firstIndex, numFound, queryString, facets, ids);
PagedResult<String> result = new PagedResult<String>( criteria.getName(), firstIndex, numFound, queryString, facets, ids);