private void chooseField( final ResultList<ResultItem> searchResult, final Collection<String> fields) { if (null != searchResult) { for (ResultItem i : searchResult.getResults()) { ResultItem item = i; for (String field : fields) { if (null != item.getObjectField(field)) { if (item.getObjectField(field) instanceof String) { item = item.addField(config.getTarget(), item.getField(field)); } else { item = item.addObjectField(config.getTarget(), item.getObjectField(field)); } break; } } if (null != config.getDefaultValue() && null == item.getField(config.getTarget())) { item = item.addField(config.getTarget(), config.getDefaultValue()); } if (item instanceof ResultList<?>) { chooseField((ResultList<ResultItem>) item, fields); } searchResult.replaceResult(i, item); } } }
public void handleResult(final Context cxt, final DataModel datamodel) { final Collection<String> fields = config.getFields(); final ResultList<ResultItem> searchResult = cxt.getSearchResult(); chooseField(searchResult, fields); }