/** * Call {@link #cast(WikittyProxy, Class, boolean)} with * autoconvert = true * * @param proxy used to retrieve securityToken and WikittyService * @param clazz target PagedResult type * @return new PagedResult, this result can have less elements that original * for some reason (security, ...) */ public <E extends BusinessEntityImpl> PagedResult<E> cast( WikittyProxy proxy, Class<E> clazz) { return cast(proxy, clazz, true); }
public List<PagedResult<Wikitty>> findAllByCriteria(List<Criteria> criteria) { long start = TimeLog.getTime(); List<PagedResult<Wikitty>> result = null; if (criteria != null) { List<PagedResult<String>> resultId = wikittyService.findAllByCriteria(securityToken, criteria); // TODO poussin 20110318 optimize cast. Try to cast all pagedResult id // in one call to service. Currently each PagedResult.cast do a call result = new ArrayList<PagedResult<Wikitty>>(resultId.size()); for (PagedResult<String> p : resultId) { result.add(p.cast(securityToken, wikittyService)); } } timeLog.log(start, "findAllByCriteria(List)"); return result; }
@Override public void run() { try { // use a facet to get only extension used in export // used for CSV export criteria.addFacetField(Element.ELT_EXTENSION); PagedResult<String> pageResultId = ws.findAllByCriteria( securityToken, Collections.singletonList(criteria)).get(0); long time = 0; if (log.isInfoEnabled()) { time = System.currentTimeMillis(); log.info("Export started"); } // get Wikitty from Id PagedResult<Wikitty> pageResult = pageResultId.cast(securityToken, ws); ImportExportMethod exporter = format.ieporter(); exporter.exportWriter(securityToken, writer, ws, pageResult); if (log.isInfoEnabled()) { time = System.currentTimeMillis() - time; log.info("Export in (ms)" + time); } } catch (Exception eee) { throw new WikittyException("Error during export task", eee); } } }
result.add((PagedResult<E>)p.cast(this, sample.getClass(), true));
/** * Null field are not used in search request. * * @param e sample wikitty * @param firstIndex * @param endIndex * @param fieldFacet * @return */ public <E extends BusinessEntityImpl> PagedResult<E> findAllByExample(E e, int firstIndex, int endIndex, String ... fieldFacet ) { long start = TimeLog.getTime(); Criteria criteria = Search.query(e.getWikitty()).criteria() .setFirstIndex(firstIndex).setEndIndex(endIndex) .setFacetField(fieldFacet); PagedResult<String> pagedResult = findAllIdByCriteria(criteria); // we can use autoconvert = true because search by example add automaticaly // restriction on extension PagedResult<E> result = (PagedResult<E>)pagedResult.cast( this, e.getClass(), true); timeLog.log(start, "findAllByExample<limit>"); return result; }