Exemplo n.º 1
0
  protected ActionForward doExecute(
      HttpServletRequest request, ActionMapping mapping, DynaActionForm form) {
    String viewMode = form.getString(VIEW_MODE);
    String searchString = form.getString(SEARCH_STR).trim();

    ActionErrors errs = new ActionErrors();
    if (viewMode.equals(SystemSearchHelper.ID)
        || viewMode.equals(SystemSearchHelper.CPU_MHZ_LT)
        || viewMode.equals(SystemSearchHelper.CPU_MHZ_GT)
        || viewMode.equals(SystemSearchHelper.RAM_LT)
        || viewMode.equals(SystemSearchHelper.RAM_GT)
        || viewMode.equals(SystemSearchHelper.NUM_CPUS_LT)
        || viewMode.equals(SystemSearchHelper.NUM_CPUS_GT)
        || viewMode.equals(SystemSearchHelper.CHECKIN)
        || viewMode.equals(SystemSearchHelper.REGISTERED)) {
      String regEx = "(\\d)*";
      Pattern pattern = Pattern.compile(regEx);
      Matcher matcher = pattern.matcher(searchString);
      if (!matcher.matches()) {
        errs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("systemsearch.errors.numeric"));
      }
    }

    // TODO: Set up combined-form validator
    //              errs.add(RhnValidationHelper.validateDynaActionForm(this, daForm));
    addErrors(request, errs);

    ListRhnSetHelper helper = new ListRhnSetHelper(this, request, RhnSetDecl.SYSTEMS);
    helper.setWillClearSet(false);
    helper.setDataSetName(getDataSetName());
    helper.setListName(getListName());
    helper.execute();

    List results = (List) request.getAttribute(getDataSetName());
    log.debug(
        "SystemSearch results.size() = " + (results != null ? results.size() : "null results"));
    if ((results != null) && (results.size() == 1)) {
      SystemSearchResult s = (SystemSearchResult) results.get(0);
      return StrutsDelegate.getInstance()
          .forwardParam(mapping.findForward("single"), "sid", s.getId().toString());
    }
    return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
  }