public static void processExtreme(
      HttpServletRequest request, String searchName, Object criteriaObject) {
    String page = request.getParameter("page");
    // String searchName = SearchUtil.getSearchName(request);
    Map searchInfo = SearchUtil.getSearchInfo(request);

    Map criterias = null;
    if (page == null) {
      String method = request.getParameter("method");
      if (method != null && method.equals("delete")) {
        BeanUtil.copyProperties(criteriaObject, SearchUtil.getSearchModel(request));
        criterias = SearchUtil.processCriterias(criteriaObject);
      }
      criterias = SearchUtil.processCriterias(criteriaObject);
      request.getSession().setAttribute(SearchConstant.CRITERIA_OBJECT, criteriaObject);
    } else {
      BeanUtil.copyProperties(
          criteriaObject, request.getSession().getAttribute(SearchConstant.CRITERIA_OBJECT));
      criterias = SearchUtil.processCriterias(criteriaObject);
    }
    if (request.getAttribute(SearchConstant.COMPOSITE_ID) != null) {
      criterias.put(SearchConstant.ID, request.getAttribute(SearchConstant.COMPOSITE_ID));
    }
    Search search = (Search) searchInfo.get(searchName);
    String fixedParams = (String) request.getAttribute(SearchConstant.FIXED_PARAMETERS);
    if (fixedParams != null) {
      search.setFixedParams(fixedParams);
    }

    Map fixedCriterias = (Map) request.getAttribute(SearchConstant.FIXED_CRITERIAS);
    if (fixedCriterias != null && !fixedCriterias.isEmpty()) {
      for (Iterator it = fixedCriterias.keySet().iterator(); it.hasNext(); ) {
        Object key = it.next();
        criterias.put(key, fixedCriterias.get(key));
      }
    }
    processExtreme(request, search, criterias);
  }