/* (non-Javadoc) * @see edu.internet2.middleware.grouper.ui.RepositoryBrowser#search(edu.internet2.middleware.grouper.GrouperSession, java.lang.String, java.lang.String, java.util.Map) */ public List search(GrouperSession s, String query, String from, Map attr, List outTerms) throws Exception { String searchInDisplayNameOrExtension = getSingle("searchInDisplayNameOrExtension", attr); String searchInNameOrExtension = getSingle("searchInNameOrExtension", attr); boolean isAdvancedSearch = "Y".equals(getSingle("advSearch", attr)); List results = null; if ("stems".equals(search)) { if (isAdvancedSearch) { results = advancedStemSearch(s, from, attr, outTerms); } else { results = GrouperHelper.searchStems( s, query, from, searchInDisplayNameOrExtension, searchInNameOrExtension); if (outTerms != null) outTerms.add(query); } } else { if (isAdvancedSearch) { results = advancedSearch(s, from, attr, outTerms); } else { String searchInAny = getMediaProperty("search.default.any"); if ("only".equals(searchInAny) || ("true".equals(searchInAny) && "any".equals(getSingle("searchIn", attr)))) { searchInDisplayNameOrExtension = null; searchInNameOrExtension = null; } results = GrouperHelper.searchGroups( s, query, from, searchInDisplayNameOrExtension, searchInNameOrExtension, browseMode); if (outTerms != null) outTerms.add(query); } } List filtered = new ArrayList(); Object obj = null; for (int i = 0; i < results.size(); i++) { obj = results.get(i); if (isValidSearchResult(obj)) filtered.add(obj); } return filtered; }