コード例 #1
0
ファイル: RunDataTest.java プロジェクト: Jaggeroth/dicelib
  public void testRandomIntIntInt() {
    RunData runData = new RunData(null);

    for (int i = 0; i < 10000; i++) {
      int value = runData.randomInt(10, 20);
      assertTrue(String.format("Value outside range: %s", value), 10 <= value && value <= 20);
    }
  }
コード例 #2
0
ファイル: RunDataTest.java プロジェクト: Jaggeroth/dicelib
  public void testRandomIntInt() {
    RunData runData = new RunData(null);

    for (int i = 0; i < 10000; i++) {
      int value = runData.randomInt(10);
      assertTrue(1 <= value && value <= 10);
    }
  }
コード例 #3
0
  /** Handle a Search request. */
  public void doSearch(RunData runData, Context context) {
    // access the portlet element id to find our state
    String peid = ((JetspeedRunData) runData).getJs_peid();
    SessionState state = ((JetspeedRunData) runData).getPortletSessionState(peid);

    // read the search form field into the state object
    String search = StringUtil.trimToNull(runData.getParameters().getString(FORM_SEARCH));

    // set the flag to go to the prev page on the next list
    if (search == null) {
      state.removeAttribute(STATE_SEARCH);
    } else {
      state.setAttribute(STATE_SEARCH, search);
    }

    // start paging again from the top of the list
    resetPaging(state);

    // if we are searching, turn off auto refresh
    if (search != null) {
      ObservingCourier observer = (ObservingCourier) state.getAttribute(STATE_OBSERVER);
      if (observer != null) {
        observer.disable();
      }
    }

    // else turn it back on
    else {
      enableObserver(state);
    }
  } // doSearch
コード例 #4
0
ファイル: Obationable.java プロジェクト: hukn/sanbo
  /**
   * 触发相应的action行为所注册的所有执行者对象
   *
   * @param action 操作行为
   * @param arg 传递给执行者对象的参数
   */
  public final RunData notifyObactioners(
      String action, HttpServletRequest req, HttpServletResponse res, Object arg) throws Exception {
    if (action == null) return null;

    synchronized (obs) {
      ArrayList obactioners = (ArrayList) obs.get(action);
      if (obactioners == null) return null;

      RunData data = new RunData();
      data.setRequest(req);
      data.setResponse(res);
      for (int i = 0; i < obactioners.size(); i++)
        ((Obactioner) obactioners.get(i)).execute(action, this, data, arg);

      return data;
    }
  }
コード例 #5
0
ファイル: ArchiveAction.java プロジェクト: yllyx/sakai
  /** doImport called when "eventSubmit_doImport" is in the request parameters to run an import. */
  public void doImport(RunData data, Context context) {
    SessionState state =
        ((JetspeedRunData) data).getPortletSessionState(((JetspeedRunData) data).getJs_peid());

    if (!securityService.isSuperUser()) {
      addAlert(state, rb.getString("archive.import"));
      return;
    }

    String id = data.getParameters().getString("import-id");
    String file = data.getParameters().getString("import-file");
    if ((id != null) && (id.trim().length() > 0) && (file != null) && (file.trim().length() > 0)) {
      String msg = archiveService.merge(file.trim(), id.trim(), null);
      addAlert(state, rb.getFormattedMessage("archive.import2", new Object[] {file, id}) + msg);
    } else {
      addAlert(state, rb.getString("archive.file"));
    }
  } // doImport
コード例 #6
0
ファイル: ArchiveAction.java プロジェクト: yllyx/sakai
  /**
   * doImport called when "eventSubmit_doBatch_Archive_PreProcess" is in the request parameters to
   * do the prep work for archiving a bunch of sites that match the criteria
   */
  public void doBatch_Archive_PreProcess(RunData data, Context context) {

    SessionState state =
        ((JetspeedRunData) data).getPortletSessionState(((JetspeedRunData) data).getJs_peid());

    if (!securityService.isSuperUser()) {
      addAlert(state, rb.getString("archive.batch.auth"));
      return;
    }

    // if we have a selected term then use that as the batch export param
    String selectedTerm = data.getParameters().getString("archive-term");

    log.debug("selectedTerm: " + selectedTerm);

    if (StringUtils.isBlank(selectedTerm)) {
      addAlert(state, rb.getString("archive.batch.term.text.missingterm"));
      state.setAttribute(STATE_MODE, BATCH_MODE);
      return;
    }

    // set the message
    state.setAttribute(
        "confirmString",
        rb.getFormattedMessage("archive.batch.term.text.confirm.1", new Object[] {selectedTerm}));

    // get the sites that match the criteria
    Map<String, String> propertyCriteria = new HashMap<String, String>();
    propertyCriteria.put("term_eid", selectedTerm);
    List<Site> sites =
        siteService.getSites(
            SelectionType.ANY, null, null, propertyCriteria, SortType.TITLE_ASC, null);

    if (sites.isEmpty()) {
      addAlert(
          state,
          rb.getFormattedMessage("archive.batch.term.text.nosites", new Object[] {selectedTerm}));
      state.setAttribute(STATE_MODE, BATCH_MODE);
      return;
    }

    // convert to new list so that we dont load entire sites into context
    List<SparseSite> ssites = new ArrayList<SparseSite>();
    for (Site s : sites) {
      ssites.add(new SparseSite(s.getId(), s.getTitle()));
    }

    state.setAttribute("sites", ssites);

    // put into state for next pass
    state.setAttribute("selectedTerm", selectedTerm);

    // set mode so we go to next template
    state.setAttribute(STATE_MODE, BATCH_ARCHIVE_CONFIRM_MODE);
  }
コード例 #7
0
ファイル: ArchiveAction.java プロジェクト: yllyx/sakai
  /**
   * doImport called when "eventSubmit_doBatch_Import" is in the request parameters to run an
   * import.
   */
  public void doBatch_Import(RunData data, Context context) {
    SessionState state =
        ((JetspeedRunData) data).getPortletSessionState(((JetspeedRunData) data).getJs_peid());

    Hashtable fTable = new Hashtable();

    if (!securityService.isSuperUser()) {
      addAlert(state, rb.getString("archive.batch.auth"));
      return;
    }

    // String fileName = data.getParameters().getString("import-file");
    FileItem fi = data.getParameters().getFileItem("importFile");
    if (fi == null) {
      addAlert(state, rb.getString("archive.batch.missingname"));
    } else {
      // get content
      String content = fi.getString();

      String[] lines = content.split("\n");
      for (int i = 0; i < lines.length; i++) {
        String lineContent = (String) lines[i];
        String[] lineContents = lineContent.split("\t");
        if (lineContents.length == 2) {
          fTable.put(lineContents[0], lineContents[1]);
        } else {
          addAlert(state, rb.getString("archive.batch.wrongformat"));
        }
      }
    }

    if (!fTable.isEmpty()) {
      Enumeration importFileName = fTable.keys();
      int count = 1;
      while (importFileName.hasMoreElements()) {
        String path = StringUtils.trimToNull((String) importFileName.nextElement());
        String siteCreatorName = StringUtils.trimToNull((String) fTable.get(path));
        if (path != null && siteCreatorName != null) {
          String nSiteId = idManager.createUuid();

          try {
            Object[] params = new Object[] {count, path, nSiteId, siteCreatorName};
            addAlert(state, rb.getFormattedMessage("archive.import1", params));
            addAlert(state, archiveService.merge(path, nSiteId, siteCreatorName));

          } catch (Exception ignore) {
          }
        }

        count++;
      }
    }
  }
コード例 #8
0
ファイル: ArchiveAction.java プロジェクト: yllyx/sakai
  /**
   * doArchive called when "eventSubmit_doArchive" is in the request parameters to run the archive.
   */
  public void doArchive(RunData data, Context context) {
    SessionState state =
        ((JetspeedRunData) data).getPortletSessionState(((JetspeedRunData) data).getJs_peid());

    if (!securityService.isSuperUser()) {
      addAlert(state, rb.getString("archive.limited"));
      return;
    }

    String id = data.getParameters().getString("archive-id");
    if (StringUtils.isNotBlank(id)) {
      String msg = archiveService.archive(id.trim());
      addAlert(state, rb.getFormattedMessage("archive", new Object[] {id}) + " \n " + msg);
    } else {
      addAlert(state, rb.getString("archive.please"));
    }
  } // doArchive