private SearchRequestInfo buildSearchRequestById(String query, String searchId) { SearchRequestInfo sr = new SearchRequestInfo(); sr.setNeededTotalResults(false); sr.setSearchKey(this.searchTypeKey); sr.setSortColumn(this.resultSortKey); sr.setSortDirection(this.sortDirection); List<SearchParamInfo> searchParams = new ArrayList<SearchParamInfo>(); SearchParamInfo param2 = createParam(this.searchIdKey, searchId); searchParams.add(param2); sr.setParams(searchParams); sr.getParams().addAll(additionalParams); return sr; }
@Override public SearchResultInfo search(SearchRequestInfo searchRequestInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws MissingParameterException, OperationFailedException, PermissionDeniedException, InvalidParameterException { checkForMissingParameter(searchRequestInfo, "searchRequest"); SearchResultInfo result = searchManager.search(searchRequestInfo, contextInfo); if("lo.search.loByCategory".equals(searchRequestInfo.getSearchKey())){ for(SearchParamInfo param:searchRequestInfo.getParams()){ if("lo.queryParam.groupCategories".equals(param.getKey())&&"true".equals(param.getValues().get(0))){ groupCategories(result); } } } return result; }
@Override public Boolean isLatestVersion(String versionIndId, Long versionSequenceNumber) throws Exception { //Perform a search to see if there are any new versions of the course that are approved, draft, etc. //We don't want to version if there are try { SearchRequestInfo request = new SearchRequestInfo("lu.search.isVersionable"); request.addParam("lu.queryParam.versionIndId", versionIndId); request.addParam("lu.queryParam.sequenceNumber", versionSequenceNumber.toString()); List<String> states = new ArrayList<String>(); states.add("Approved"); states.add("Active"); states.add("Draft"); states.add("Superseded"); request.addParam("lu.queryParam.luOptionalState", states); SearchResultInfo result = cluService.search(request, ContextUtils.getContextInfo()); String resultString = result.getRows().get(0).getCells().get(0).getValue(); return "0".equals(resultString); } catch (Exception e) { LOG.error("IS LATEST VERSION ERROR"); return false; } }
private SearchRequestInfo generateRequest(LookupMetadata versionSearch){ SearchRequestInfo sr = new SearchRequestInfo(); List<SearchParamInfo> params = new ArrayList<SearchParamInfo>(); SearchParamInfo param = new SearchParamInfo(); param.setKey("lu.queryParam.cluVersionIndId"); String versionIndId = programModel.get(ProgramConstants.VERSION_IND_ID); versionIndId = (versionIndId == null ? "":versionIndId); param.getValues().add(versionIndId); params.add(param); sr.setSortDirection(SortDirection.DESC); sr.setParams(params); sr.setSearchKey(versionSearch.getSearchTypeId()); if (versionSearch.getResultSortKey() != null) { sr.setSortColumn(versionSearch.getResultSortKey()); } return sr; }
private List<String> getMembershipQuerySearchResult(MembershipQueryInfo query, ContextInfo contextInfo) throws MissingParameterException, OperationFailedException, PermissionDeniedException, InvalidParameterException { if (query == null) { return null; } SearchRequestInfo request = new SearchRequestInfo(); request.setSearchKey(query.getSearchTypeKey()); request.setParams(query.getQueryParamValues()); SearchResultInfo result = search(request, contextInfo); Set<String> cluIds = new HashSet<String>(); List<SearchResultRowInfo> rows = result.getRows(); for (SearchResultRowInfo row : rows) { List<SearchResultCellInfo> cells = row.getCells(); for (SearchResultCellInfo cell : cells) { if (cell.getKey().equals("lu.resultColumn.luOptionalVersionIndId") && cell.getValue() != null) { cluIds.add(cell.getValue()); } } } return new ArrayList<String>(cluIds); }
SearchRequestInfo subSearchRequest = new SearchRequestInfo(); subSearchRequest.setSearchKey(subSearch.getSearchkey()); subSearchRequest.setParams(new ArrayList<SearchParamInfo>()); subSearchRequest.setSortColumn(searchRequest.getSortColumn()); subSearchRequest.setSortDirection(searchRequest.getSortDirection()); for(SearchParamInfo crossSearchParam:searchRequest.getParams()){ if(paramMapping.getCrossSearchParam().equals(crossSearchParam.getKey())){ SearchParamInfo subSearchParam = new SearchParamInfo(); subSearchParam.setKey(paramMapping.getSubSearchParam()); subSearchParam.setValues(crossSearchParam.getValues()); subSearchRequest.getParams().add(subSearchParam);
List<KeyValue> orgEntities = new ArrayList<KeyValue>(); SearchRequestInfo searchRequest = new SearchRequestInfo("org.search.generic"); searchRequest.addParam("org.queryParam.orgOptionalType",orgType); searchRequest.setSortColumn("org.resultColumn.orgOptionalLongName"); searchRequest.setSortDirection(SortDirection.ASC); try { SearchResultInfo results = null;
SearchRequestInfo searchRequest = new SearchRequestInfo(); searchRequest.setMaxResults(1); searchRequest.setStartAt(0); searchRequest.setNeededTotalResults(false); searchRequest.setSearchKey(lookupConstraint.getSearchTypeId()); searchRequest.setParams(params);
public SearchResultInfo search(SearchRequestInfo searchRequest, Map<String, String> queryMap, SearchTypeInfo searchTypeInfo) { String searchKey = searchRequest.getSearchKey(); List<SearchParamInfo> searchParamsTemp = new ArrayList<SearchParamInfo>(searchRequest.getParams()); List<SearchParamInfo> internalQueryParms = new ArrayList<SearchParamInfo>(searchRequest.getParams()); for(SearchParamInfo searchParam : searchParamsTemp){ for(QueryParamInfo queryParam:searchTypeInfo.getSearchCriteriaTypeInfo().getQueryParams()){ if(!queryString.toUpperCase().contains("ORDER BY")&&searchRequest.getSortColumn()!=null){ String[] jpqlResultColumns = queryString.substring(selectIndex, fromIndex).replaceAll("\\s", "").split(","); for(ResultColumnInfo results : searchTypeInfo.getSearchResultTypeInfo().getResultColumns()){ if(results.getKey().equals(searchRequest.getSortColumn())){ if(results.getDataType()!=null && "string".equals(results.getDataType().toLowerCase())){ orderByClause = " ORDER BY LOWER(" + jpqlResultColumns[i] + ") "; if(searchRequest.getSortDirection()!=null && searchRequest.getSortDirection()==SortDirection.DESC){ orderByClause += "DESC "; }else{ if(searchRequest.getStartAt()!=null){ query.setFirstResult(searchRequest.getStartAt().intValue()); if(searchRequest.getMaxResults()!=null){ query.setMaxResults(searchRequest.getMaxResults().intValue()); searchResult.setSortColumn(searchRequest.getSortColumn()); searchResult.setSortDirection(searchRequest.getSortDirection()); searchResult.setStartAt(searchRequest.getStartAt());
checkForMissingParameter(searchRequest, "searchRequest"); if (SEARCH_KEY_DEPENDENCY_ANALYSIS.equals(searchRequest.getSearchKey())) { String cluId = null; for (SearchParamInfo param : searchRequest.getParams()) { if ("lu.queryParam.luOptionalCluId".equals(param.getKey())) { cluId = (String) param.getValues().get(0); throw new RuntimeException("Error performing search");//FIXME should be more checked service exceptions thrown } else if (SEARCH_KEY_BROWSE_PROGRAM.equals(searchRequest.getSearchKey())) { return doBrowseProgramSearch(contextInfo); }else if(SEARCH_KEY_PROPOSALS_BY_COURSE_CODE.equals(searchRequest.getSearchKey())){ String courseCode = null; for(SearchParamInfo param:searchRequest.getParams()){ if("lu.queryParam.luOptionalCode".equals(param.getKey())){ courseCode = (String)param.getValues().get(0); }else if(SEARCH_KEY_BROWSE_VERSIONS.equals(searchRequest.getSearchKey())){ return doBrowseVersionsSearch(searchRequest, contextInfo); }else if(SEARCH_KEY_LU_RESULT_COMPONENTS.equals(searchRequest.getSearchKey())){ return doResultComponentTypesForCluSearch(searchRequest, contextInfo); }else if(SEARCH_KEY_CLUSET_SEARCH_GENERIC.equals(searchRequest.getSearchKey())){ for(SearchParamInfo param:searchRequest.getParams()){ if(param.getKey().contains("queryParam.luOptional")){ searchRequest.setSearchKey(SEARCH_KEY_CLUSET_SEARCH_GENERICWITHCLUS); break;
private SearchResultInfo doBrowseProgramSearch(ContextInfo contextInfo) throws MissingParameterException, PermissionDeniedException, OperationFailedException, InvalidParameterException { SearchResultInfo programSearchResults = searchManager.search(new SearchRequestInfo(SEARCH_KEY_BROWSE_PROGRAM), contextInfo); SearchResultInfo variationSearchResults = searchManager.search(new SearchRequestInfo(SEARCH_KEY_BROWSE_VARIATIONS), contextInfo); SearchRequestInfo resultComponentSearchRequest = new SearchRequestInfo(SEARCH_KEY_RESULT_COMPONENT); resultComponentSearchRequest.addParam("lrc.queryParam.resultComponent.type", "kuali.result.values.group.type.fixed"); resultComponentSearchRequest.addParam("lrc.queryParam.resultComponent.resultScaleId", "kuali.result.scale.degree"); SearchRequestInfo orgIdTranslationSearchRequest = new SearchRequestInfo("org.search.generic"); orgIdTranslationSearchRequest.addParam("org.queryParam.orgOptionalIds", new ArrayList<String>( orgIdToCellMapping.keySet())); orgIdTranslationSearchRequest.setSortColumn("org.resultColumn.orgShortName"); SearchResultInfo orgIdTranslationSearchResult = searchDispatcher.search(orgIdTranslationSearchRequest, contextInfo);
@Override public SearchResultInfo search(SearchRequestInfo searchRequest, ContextInfo contextInfo) throws MissingParameterException, PermissionDeniedException, OperationFailedException, InvalidParameterException { String searchKey = searchRequest.getSearchKey(); for(SearchParamInfo param:searchRequest.getParams()){ paramMap.put(param.getKey(), param.getValues().get(0)); return searchCache.get(searchRequest.toString()); } catch (ExecutionException e) { throw new RuntimeException(e); searchCache.put(searchRequest.toString(), searchResult );
@Override public SearchResultInfo search(final IdentityService identityService, final SearchRequestInfo searchRequest) { final SearchResultInfo result = new SearchResultInfo(); searchRequest.setSortDirection(SortDirection.ASC); if (searchRequest.getSortDirection() != null) { final int direction = (searchRequest.getSortDirection().equals(SortDirection.ASC) ? 1 : -1); Collections.sort(persons, new Comparator<Person>() { int startAt = (null != searchRequest && null != searchRequest.getStartAt()) ? searchRequest.getStartAt() : 0; int maxResult = (null != searchRequest && null != searchRequest.getMaxResults()) ? startAt + searchRequest.getMaxResults() : persons.size(); for (int i = startAt; (i < persons.size() && i < maxResult); i++) { Person person = persons.get(i); result.setStartAt(searchRequest.getStartAt()); if (searchRequest.getNeededTotalResults()) { result.setTotalResults(persons.size()); } else {
public List<KeyValue> getKeyValues() { List<KeyValue> departments = new ArrayList<KeyValue>(); SearchRequestInfo searchRequest = new SearchRequestInfo(); searchRequest.setSearchKey("org.search.generic"); try { for (SearchResultRowInfo result : getOrganizationService().search(searchRequest, ContextUtils.getContextInfo()).getRows()) { String orgId = ""; String orgShortName = ""; String orgOptionalLongName = ""; String orgType = ""; for (SearchResultCellInfo resultCell : result.getCells()) { if ("org.resultColumn.orgId".equals(resultCell.getKey())) { orgId = resultCell.getValue(); } else if ("org.resultColumn.orgShortName".equals(resultCell.getKey())) { orgShortName = resultCell.getValue(); } else if ("org.resultColumn.orgOptionalLongName".equals(resultCell.getKey())) { orgOptionalLongName = resultCell.getValue(); } else if ("org.resultColumn.orgType".equals(resultCell.getKey())) { orgType = resultCell.getValue(); } } departments.add(buildKeyLabelPair(orgId, orgShortName, orgOptionalLongName, orgType)); } return departments; } catch (Exception e) { LOG.error("Error building KeyValues List", e); throw new RuntimeException(e); } }
@Override public SearchResultInfo search(SearchRequestInfo searchRequestInfo, ContextInfo contextInfo) throws MissingParameterException, InvalidParameterException, OperationFailedException, PermissionDeniedException { try { // check type of search is supported TypeInfo type = this.getSearchType(searchRequestInfo.getSearchKey(), contextInfo); } catch (DoesNotExistException ex) { throw new OperationFailedException("unknown/unsupported search type " + searchRequestInfo.getSearchKey()); } catch (InvalidParameterException ex) { throw new OperationFailedException("unknown/unsupported search type " + searchRequestInfo.getSearchKey()); } SearchService searchService = this.searchType2ServiceMap.get(searchRequestInfo.getSearchKey()); if (searchService == null) { throw new OperationFailedException(searchRequestInfo.getSearchKey() + "was not in map as expected"); } return searchService.search(searchRequestInfo, contextInfo); } }
protected String getParamValueForKey(SearchRequestInfo searchRequest, String key){ for(SearchParamInfo param : searchRequest.getParams()){ if (param.getKey().equals(key)){ return (String) param.getValues().get(0); } } return null; }
String relationTypeKey = null; String orgOptionalId = null; String sortColumn = searchRequest.getSortColumn(); SortDirection sortDirection = searchRequest.getSortDirection(); for (SearchParamInfo param : searchRequest.getParams()) { if ("org.queryParam.relatedOrgIds".equals(param.getKey())) { relatedOrgIds = (List<String>) param.getValues();
searchDispatcherAsync.search(new SearchRequestInfo("lo.search.loCategories"), new KSAsyncCallback<SearchResultInfo>() { @Override public void handleFailure(Throwable caught) {
/** * @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; }
if(searchRequest.getStartAt() == 0){ table.removeContent(); VerticalFlowPanel noResultsPanel = new VerticalFlowPanel();