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); } }
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); } }
/** 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
/** * 触发相应的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; } }
/** 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
/** * 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); }
/** * 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++; } } }
/** * 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