コード例 #1
0
  /* (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;
  }