private SearchResultRowInfo mapResultRow( String subSearchKey, SearchResultRowInfo row, CrossSearchTypeInfo crossSearchType) { SearchResultRowInfo resultRow = new SearchResultRowInfo(); for(JoinResultMappingInfo resultMapping: crossSearchType.getJoinResultMappings()){ if(subSearchKey.equals(resultMapping.getSubSearchKey())){ for(SearchResultCellInfo cell: row.getCells()){ if(resultMapping.getSubSearchResultParam().equals(cell.getKey())){ SearchResultCellInfo mappedCell = new SearchResultCellInfo(); mappedCell.setKey(resultMapping.getResultParam()); mappedCell.setValue(cell.getValue()); resultRow.getCells().add(mappedCell); break;//FIXME breaks are bad... but there is no map in the cells } } } } return resultRow; } /**
private SearchParamInfo createParam(String key, String value) { SearchParamInfo param = new SearchParamInfo(); if(key == null) { param.setKey(""); } else { param.setKey(key); } if(value == null) { param.getValues().add(""); } else { param.getValues().add(value); } return param; }
private String getCollegeName(String collegeId, ContextInfo contextInfo) throws MissingParameterException, PermissionDeniedException, OperationFailedException, InvalidParameterException { String collegeName = ""; SearchRequestInfo searchRequest = new SearchRequestInfo("org.search.generic"); List<String> orgTypes = new ArrayList<String>(); orgTypes.add("kuali.org.College"); searchRequest.addParam("org.queryParam.orgOptionalType", orgTypes); searchRequest.addParam("org.queryParam.orgOptionalId", collegeId); SearchResultInfo searchResult = getSearchDispatcher().search(searchRequest, contextInfo); if (null != searchResult) { for (SearchResultRowInfo result : searchResult.getRows()) { for (SearchResultCellInfo resultCell : result.getCells()) { if ("org.resultColumn.orgOptionalLongName".equals(resultCell.getKey())) { collegeName = resultCell.getValue(); } } } } return collegeName; }
@Override public void onSuccess(SearchResultInfo results) { resultRows.clear(); if(results != null){ for (SearchResultRowInfo r: results.getRows()){ ResultRow theRow = new ResultRow(); for(SearchResultCellInfo c: r.getCells()){ if(c.getKey().equals(resultIdColumnKey)){ theRow.setId(c.getValue()); } theRow.setValue(c.getKey(), c.getValue()); } resultRows.add(theRow); } } redraw(); } });
private void doIdTranslation(SearchResultInfo searchResult) { for (SearchResultRowInfo searchResultRow : searchResult.getRows()) { for (SearchResultCellInfo searchResultCell : searchResultRow.getCells()) { String value = searchResultCell.getValue(); if (value != null && value.startsWith("kuali.atp")) { String newValue = idTranslatorFilter.getTranslationForAtp(value, ContextUtils.getContextInfo()); if (newValue != null) { searchResultCell.setValue(newValue); } } } } }
/** * @param searchResult * @param searchRequest * @return a sorted and paginated result */ private SearchResultInfo metaFilter(SearchResultInfo searchResult, SearchRequestInfo searchRequest) { searchResult.setTotalResults(searchResult.getRows().size()); searchResult.sortRows(); //Paginate if we need to if(searchRequest.getMaxResults()!=null){ int fromIndex=0; if(searchRequest.getStartAt()!=null){ fromIndex=searchRequest.getStartAt(); } int toIndex = fromIndex+searchRequest.getMaxResults(); SearchResultInfo pagedResult = new SearchResultInfo(); for (int i=fromIndex; i <= toIndex; i++) { if (!(searchResult.getRows().size() < i+1)) { pagedResult.getRows().add(searchResult.getRows().get(i)); } } pagedResult.setTotalResults(searchResult.getRows().size()); searchResult = pagedResult; } return searchResult; }
protected SearchResultInfo createSearchResultFromTypeInfo(List<TypeInfo> typeInfos, String idKey, String nameKey, String descKey){ SearchResultInfo searchResult = new SearchResultInfo(); for (TypeInfo typeInfo : typeInfos){ searchResult.getRows().add(this.createSearchResultRowFromTypeInfo(typeInfo, idKey, nameKey, descKey)); } return searchResult; }
@Override public SearchResultInfo search(SearchRequestInfo searchRequest, ContextInfo contextInfo) { final SearchOperation search = searchOperations.get(searchRequest.getSearchKey()); if (search != null) { return search.search(identityService, searchRequest); } return new SearchResultInfo(); }
private TypeInfo toTypeInfo(SearchTypeInfo searchTypeInfo){ TypeInfo typeInfo = new TypeInfo(); typeInfo.setKey(searchTypeInfo.getKey()); typeInfo.setName(searchTypeInfo.getName()); RichTextInfo textInfo = new RichTextInfo(); textInfo.setPlain(searchTypeInfo.getDesc()); textInfo.setFormatted(searchTypeInfo.getDesc()); typeInfo.setDescr(textInfo); return typeInfo; }
public void setResultColumns(List<ResultColumnInfo> resultColumns){ attrKeys = new ArrayList<String>(); for (ResultColumnInfo r:resultColumns){ attrKeys.add(r.getName()); } //Exclude identifier column from list items (don't want this displayed) attrKeys.remove(0); attrOffset = 1; }
private List<String> getDepartmentRelatedColleges(List<String> departmentIds, ContextInfo contextInfo) throws MissingParameterException, PermissionDeniedException, OperationFailedException, InvalidParameterException { List<String> departmentRelatedCollegeIds = new ArrayList<String>(); SearchRequestInfo searchRequest = new SearchRequestInfo("org.search.orgQuickViewByRelationTypeOrgTypeRelatedOrgIds"); List<String> orgTypes = new ArrayList<String>(); orgTypes.add("kuali.org.College"); searchRequest.addParam("org.queryParam.optionalOrgTypeList", orgTypes); searchRequest.addParam("org.queryParam.optionalRelationType", "kuali.org.Contain"); searchRequest.addParam("org.queryParam.relatedOrgIds", departmentIds); SearchResultInfo searchResult = getSearchDispatcher().search(searchRequest, contextInfo); if (null != searchResult) { for (SearchResultRowInfo row : searchResult.getRows()) { for (SearchResultCellInfo cell : row.getCells()) { if ("org.resultColumn.orgId".equals(cell.getKey())) { departmentRelatedCollegeIds.add(cell.getValue()); } } } } return departmentRelatedCollegeIds; }
/** * Maps results from multiple searches into a single result row * * @param permutation * @param crossSearchType * @return a mapped SearchResultRowInfo */ private SearchResultRowInfo mapResultRow( Map<String, SearchResultRowInfo> permutation, CrossSearchTypeInfo crossSearchType) { //FIXME this is pretty inefficient to loop through everything... a map structure for the cells might be better SearchResultRowInfo resultRow = new SearchResultRowInfo(); for(JoinResultMappingInfo resultMapping: crossSearchType.getJoinResultMappings()){ for(SearchResultCellInfo cell: permutation.get(resultMapping.getSubSearchKey()).getCells()){ if(resultMapping.getSubSearchResultParam().equals(cell.getKey())){ SearchResultCellInfo mappedCell = new SearchResultCellInfo(); mappedCell.setKey(resultMapping.getResultParam()); mappedCell.setValue(cell.getValue()); resultRow.getCells().add(mappedCell); break;//FIXME breaks are bad... but there is no map in the cells } } } return resultRow; }
private SearchParamInfo createParam(String key, String value) { SearchParamInfo param = new SearchParamInfo(); if(key == null) { param.setKey(""); } else { param.setKey(key); } if(value == null) { param.getValues().add(""); } else { param.getValues().add(value); } return param; }