List of usage examples for org.json.simple JSONObject keySet
Set<K> keySet();
From source file:main.MainClass.java
public JSONObject sortJSONWithModuleCount(JSONObject moduleSummary) { //Set<String> ModuleNames = ModVsCountVsOwner.keySet(); LinkedList ModvsCountOwnerList = new LinkedList(); Set<String> moduleKeys = moduleSummary.keySet(); for (Iterator indiModuleItr = moduleKeys.iterator(); indiModuleItr.hasNext();) { String moduleName = (String) indiModuleItr.next(); JSONObject indiModuleJO = (JSONObject) moduleSummary.get(moduleName); int count = (Integer) indiModuleJO.get("Count"); String moduleOwner = (String) indiModuleJO.get("Owner"); JSONObject sortedelement = new JSONObject(); sortedelement.put("moduleName", moduleName); sortedelement.put("moduleCount", count); sortedelement.put("moduleOwner", moduleOwner); if (ModvsCountOwnerList.isEmpty()) { ModvsCountOwnerList.add(sortedelement); } else {/* ww w . j a va 2 s . co m*/ Iterator listIterator = ModvsCountOwnerList.iterator(); JSONObject smallElement; int index = 0; boolean isLoopBreak = false; while (listIterator.hasNext()) { smallElement = (JSONObject) listIterator.next(); int smallCount = (Integer) smallElement.get("moduleCount"); if (smallCount <= count) { isLoopBreak = true; break; } index++; } if (listIterator.hasNext()) { ModvsCountOwnerList.add(index, sortedelement); } else if (isLoopBreak) { ModvsCountOwnerList.add(index, sortedelement); } else { ModvsCountOwnerList.add(sortedelement); } } } //System.out.println("LinkedList: " + ModvsCountOwnerList.toString()); JSONObject sortedModuleSummary = new JSONObject(); sortedModuleSummary.put("moduleSummary", ModvsCountOwnerList); return sortedModuleSummary; }
From source file:main.MainClass.java
private JSONObject getFinalSupToRepColName(JSONObject SupToRepHdrChgJSONObj, JSONObject extraColumnHdr, JSONObject supDetails) {// ww w. j a va 2s .c o m Set<String> SupHdrToChange = null; if (SupToRepHdrChgJSONObj != null) { SupHdrToChange = SupToRepHdrChgJSONObj.keySet(); } String[] supHdrArr = (String[]) supDetails.get(COLUMNS); JSONObject SupToRepHdrObj = new JSONObject(); for (String i : supHdrArr) { boolean needChange = false; Iterator it = null; if (SupHdrToChange != null) { it = SupHdrToChange.iterator(); } for (; SupHdrToChange != null && it.hasNext();) { if (i.equals(it.next().toString())) { needChange = true; SupToRepHdrObj.put(i, SupToRepHdrChgJSONObj.get(i).toString()); } } if (!needChange) { SupToRepHdrObj.put(i, i); } } if (extraColumnHdr != null) { Set<String> extraColumnHdrKeys = extraColumnHdr.keySet(); for (Iterator it = extraColumnHdrKeys.iterator(); it.hasNext();) { String columnHeader = it.next().toString(); SupToRepHdrObj.put(columnHeader, columnHeader); } } loggerObj.log(Level.INFO, "Final Column name in support to report column name json object is " + SupToRepHdrObj.toJSONString()); System.out.println("Final Column name in support to report column name json object is " + SupToRepHdrObj.toJSONString()); return SupToRepHdrObj; }
From source file:main.MainClass.java
private void MEDCSup_WOE_SummGen(String mode, String mailId) { loggerObj.log(Level.INFO, "Inside MEDCSup_WOE_SummGen method"); String departmentConfigFile = "./conf/MEDC_WOESummGen/departmentDetails.conf"; JSONObject deptConfFileDetails = FileOperations.MEDC_WOE_DeptDetails(departmentConfigFile); System.out.println(deptConfFileDetails.toJSONString()); Set<String> deptKeys = deptConfFileDetails.keySet(); //String departmentName = null; for (Iterator deptItr = deptKeys.iterator(); deptItr.hasNext();) { String deptName = (String) deptItr.next(); String confFileName = (String) deptConfFileDetails.get(deptName); confFileName = confFileName.replaceAll("\\\\", ""); System.out.println(deptName + " : " + confFileName); loggerObj.log(Level.INFO, "Department: " + deptName + "conffileName: " + confFileName); JSONObject supDetails = initializeSupportDetails(confFileName); if (supDetails == null) { loggerObj.log(Level.SEVERE, "Problem in parsing " + confFileName + "to get support.zoho.com details"); return; }//ww w . j av a 2 s. com String[] responseString = null; String folderwriteResponse = null; if (mode.equals("external")) { folderwriteResponse = "./fromServer/MEDC_WOESummGen"; } if (mode.equals("internal")) { folderwriteResponse = "./TestFiles/fromServer/MEDC_WOESummGen/DesktopCentral/test_input_1"; } responseString = getSupportDataWithConfigDetails(supDetails, mode, folderwriteResponse, false, "MEDCWOETickets"); deferenceObjects(new Object[] { departmentConfigFile, supDetails }); if (responseString == null) { loggerObj.log(Level.SEVERE, "Response data from MEMDM support.zoho.com while retrieving ticket id is empty/null"); return; } String folderToReadFrom = responseString[0]; Integer index = Integer.parseInt(responseString[1]); loggerObj.log(Level.INFO, "The details obtained from support is: index: " + index + " folderToreadFrom: " + folderToReadFrom); String fileToWriteParsedResponse = "./parsed_output/MEDC_WOESummGen/" + deptName.substring(0, 4) + "_" + getCurrTimeInDD_MM_YY_HH_MM_SS() + ".json"; JSONOperations parserObj = new JSONOperations(); String currentFileToreadResponse = null; boolean isProperResponse = true; JSONArray WOESummary = null; for (int i = 1; i <= index; i++) { System.out.println("index: " + i); currentFileToreadResponse = folderToReadFrom + i + ".json"; loggerObj.log(Level.INFO, "Goid to read from the file " + currentFileToreadResponse); Object ResponseObjectFromFile = FileOperations.readFromJSONFile(currentFileToreadResponse); if (ResponseObjectFromFile instanceof JSONObject) { WOESummary = parserObj.WOESummGenForResponseJSONObject((JSONObject) ResponseObjectFromFile, deptName, WOESummary, "row"); System.out.println(WOESummary.toJSONString()); } else { isProperResponse = false; break; } } if (!isProperResponse) { System.out.println("Error is parsing JSONResponse file from MEDC support"); loggerObj.log(Level.INFO, "Error is parsing the file " + currentFileToreadResponse); return; } //JSONArray WOESummary = parserObj.WOESummGenForResponseArray(ResponseJSONArray, departmentName); if (WOESummary == null) { System.out.println( "Error in converting JSON files in the folder" + folderToReadFrom + " to parsed response"); loggerObj.log(Level.INFO, "Error in converting JSON files in the folder" + folderToReadFrom + " to parsed response"); } //System.out.println(WOESummary.toJSONString()); boolean isFileWriteSucess = FileOperations.writeObjectToFile(WOESummary, fileToWriteParsedResponse); if (!isFileWriteSucess) { loggerObj.log(Level.INFO, "Error in writting the responseJSONArray to the file " + fileToWriteParsedResponse); } loggerObj.log(Level.INFO, "Parsed response is written to" + fileToWriteParsedResponse); String[] status = { "Need to Analyze", "Needs to Call", "Waiting on Engineering" }; String[] MsgMultiPartContent = createMsgContentForWOE_Tickets(WOESummary, status); loggerObj.log(Level.INFO, "Mail content is created for parsed response"); String subject = deptName + " tickets for developers"; System.out.println("Tickets processed..Going to send mail. This might take around 2 to 3 mins"); int indexOFLastSlash = confFileName.lastIndexOf("/"); String mailsettingsConf = confFileName.substring(0, indexOFLastSlash) + "/mailsettings.conf"; JSONObject mailSettings = FileOperations.mailSettingsToJO(mailsettingsConf); loggerObj.log(Level.INFO, "The mailsettings conf received from the file " + mailsettingsConf + " is " + mailSettings.toJSONString()); mailId = (String) mailSettings.get("Senderemailaddress"); if (mailId == null) { loggerObj.log(Level.SEVERE, "The mailId obtained from the conf file " + mailsettingsConf + " empty"); return; } String isMailSentProperly = MailOperations.sendMail(mailId, MsgMultiPartContent, subject); if (isMailSentProperly != null) { System.out.println(isMailSentProperly); if (isMailSentProperly.contains("Could not connect to SMTP host") || isMailSentProperly.contains("Unknown SMTP host")) { System.out.println("Mail server not reachable"); loggerObj.log(Level.INFO, "Mail server not reachable"); } if (isMailSentProperly.equals("Content is null")) { loggerObj.log(Level.INFO, "MsgMultiPartContent generated to give to mail api is empty or not proper"); } } System.out.println("***********************************************************"); } }
From source file:apimanager.ZohoReportsAPIManager.java
public boolean delete(JSONObject urlParams, JSONObject criteria) { // CloseableHttpClient httpclient = HttpClients.createDefault(); // HttpPost post = new HttpPost("https://reportsapi.zoho.com/api/harshavardhan.r@zohocorp.com/Test/Name_password?ZOHO_ACTION=DELETE&ZOHO_OUTPUT_FORMAT=json&ZOHO_ERROR_FORMAT=json&authtoken=7ed717b94bc30455aad11ce5d31d34f9&ZOHO_API_VERSION=1.0"); /*try {//from w ww.j a v a 2 s . com List<NameValuePair> nameValuePairs = new ArrayList<>(1); nameValuePairs.add(new BasicNameValuePair("ZOHO_CRITERIA", "(\"Name\" = 'harshaViaPostimportNet15')")); post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); }*/ loggerObj.log(Level.INFO, "Inisde Delete method"); JSONObject httpPostObjectParams = new JSONObject(); String emailaddr = (String) urlParams.get("URLEmail"); String dbName = (String) urlParams.get("DBName"); String tableName = (String) urlParams.get("TableName"); String authToken = (String) urlParams.get(AUTHTOKEN); String url = "https://reportsapi.zoho.com/api/" + emailaddr + "/" + dbName + "/" + tableName + "?ZOHO_ACTION=DELETE&ZOHO_OUTPUT_FORMAT=json&ZOHO_ERROR_FORMAT=json&authtoken=" + authToken + "&ZOHO_API_VERSION=1.0"; loggerObj.log(Level.INFO, "url params are:" + url); httpPostObjectParams.put("url", url); JSONObject postParams = null; List<NameValuePair> nameValuePairs = new ArrayList<>(criteria.size()); //multiple criteria wont work. Need to test how how multiple criteria has to be given// for (Iterator iterator = criteria.keySet().iterator(); iterator.hasNext();) { String key = (String) iterator.next(); nameValuePairs.add(new BasicNameValuePair("ZOHO_CRITERIA", "(\"" + key + "\" = '" + (String) criteria.get(key) + "')")); } UrlEncodedFormEntity formParameters = null; try { formParameters = new UrlEncodedFormEntity(nameValuePairs); } catch (UnsupportedEncodingException ex) { loggerObj.log(Level.INFO, "The delete criteria cannot be encoded properly" + ex.toString()); return false; } loggerObj.log(Level.INFO, "httpPost form params are:" + nameValuePairs.toString()); HttpsClient httpsClientObj = new HttpsClient(); boolean isSuccessfulPost = httpsClientObj.httpsPost(url, null, formParameters); return isSuccessfulPost; }
From source file:io.openvidu.test.e2e.OpenViduTestAppE2eTest.java
@Test @DisplayName("REST API: Fetch all, fetch one, force disconnect, force unpublish, close session") void restApiFetchForce() throws Exception { setupBrowser("chrome"); log.info("REST API: Fetch all, fetch one, force disconnect, force unpublish, close session"); user.getDriver().findElement(By.id("add-user-btn")).click(); user.getDriver().findElement(By.id("add-user-btn")).click(); // API REST test user.getDriver().findElement(By.id("session-api-btn-0")).click(); Thread.sleep(1000);//w w w. j a va 2s. c o m // Close session (undefined) user.getDriver().findElement(By.id("close-session-btn")).click(); user.getWaiter().until(ExpectedConditions.attributeToBe(By.id("api-response-text-area"), "value", "Error [Session undefined]")); // Fetch one (undefined) user.getDriver().findElement(By.id("get-session-btn")).click(); user.getWaiter().until(ExpectedConditions.attributeToBe(By.id("api-response-text-area"), "value", "Error [Session undefined]")); // Fetch all (no active sessions) user.getDriver().findElement(By.id("list-sessions-btn")).click(); user.getWaiter().until(ExpectedConditions.attributeContains(By.id("api-response-text-area"), "value", "Number: 0. Changes: false")); user.getDriver().findElement(By.id("close-dialog-btn")).click(); Thread.sleep(1000); user.getDriver().findElement(By.id("auto-join-checkbox")).click(); user.getDriver().findElement(By.id("one2one-btn")).click(); user.getEventManager().waitUntilEventReaches("connectionCreated", 4); user.getEventManager().waitUntilEventReaches("accessAllowed", 2); user.getEventManager().waitUntilEventReaches("streamCreated", 4); user.getEventManager().waitUntilEventReaches("streamPlaying", 4); int numberOfVideos = user.getDriver().findElements(By.tagName("video")).size(); Assert.assertEquals("Expected 4 videos but found " + numberOfVideos, 4, numberOfVideos); Assert.assertTrue("Videos were expected to have audio and video tracks", user.getEventManager() .assertMediaTracks(user.getDriver().findElements(By.tagName("video")), true, true)); // Fetch existing session (change) user.getDriver().findElement(By.id("session-api-btn-0")).click(); Thread.sleep(1000); user.getDriver().findElement(By.id("get-session-btn")).click(); user.getWaiter().until( ExpectedConditions.attributeContains(By.id("api-response-text-area"), "value", "Changes: true")); // Store connectionId and streamId String response = user.getDriver().findElement(By.id("api-response-text-area")).getAttribute("value"); JSONObject json = (JSONObject) ((JSONArray) new JSONParser().parse(response.split("%")[1])).get(0); String connectionId = (String) json.keySet().iterator().next(); String streamId = (String) ((JSONObject) ((JSONArray) json.get(connectionId)).get(0)).get("streamId"); // Fetch all sessions (no change) user.getDriver().findElement(By.id("list-sessions-btn")).click(); user.getWaiter().until(ExpectedConditions.attributeContains(By.id("api-response-text-area"), "value", "Number: 1. Changes: false")); // Force unpublish wrong user.getDriver().findElement(By.id("resource-id-field")).clear(); user.getDriver().findElement(By.id("resource-id-field")).sendKeys("FAIL"); user.getDriver().findElement(By.id("force-unpublish-api-btn")).click(); user.getWaiter() .until(ExpectedConditions.attributeToBe(By.id("api-response-text-area"), "value", "Error [404]")); // Force unpublish right user.getDriver().findElement(By.id("resource-id-field")).clear(); user.getDriver().findElement(By.id("resource-id-field")).sendKeys(streamId); user.getDriver().findElement(By.id("force-unpublish-api-btn")).click(); user.getWaiter().until( ExpectedConditions.attributeToBe(By.id("api-response-text-area"), "value", "Stream unpublished")); user.getEventManager().waitUntilEventReaches("streamDestroyed", 2); numberOfVideos = user.getDriver().findElements(By.tagName("video")).size(); Assert.assertEquals("Expected 3 videos but found " + numberOfVideos, 3, numberOfVideos); // Force disconnect wrong user.getDriver().findElement(By.id("resource-id-field")).clear(); user.getDriver().findElement(By.id("resource-id-field")).sendKeys("FAIL"); user.getDriver().findElement(By.id("force-disconnect-api-btn")).click(); user.getWaiter() .until(ExpectedConditions.attributeToBe(By.id("api-response-text-area"), "value", "Error [404]")); // Force disconnect right user.getDriver().findElement(By.id("resource-id-field")).clear(); user.getDriver().findElement(By.id("resource-id-field")).sendKeys(connectionId); user.getDriver().findElement(By.id("force-disconnect-api-btn")).click(); user.getWaiter().until( ExpectedConditions.attributeToBe(By.id("api-response-text-area"), "value", "User disconnected")); user.getEventManager().waitUntilEventReaches("connectionDestroyed", 1); // Close session user.getDriver().findElement(By.id("close-session-btn")).click(); user.getWaiter().until( ExpectedConditions.attributeToBe(By.id("api-response-text-area"), "value", "Session closed")); user.getWaiter().until(ExpectedConditions.numberOfElementsToBe(By.tagName("video"), 0)); user.getDriver().findElement(By.id("close-dialog-btn")).click(); Thread.sleep(500); gracefullyLeaveParticipants(1); }
From source file:au.org.emii.portal.composer.MapComposer.java
/** * Parsing of "q" and "fq" params/*from w w w . jav a 2s .c o m*/ * * @return */ private MapLayer loadUrlParameters() { MapLayer mapLayer = null; String params = null; try { String analysisLayerSelections = getCookieValue("analysis_layer_selections"); if (analysisLayerSelections != null) { String[] s = URLDecoder.decode(analysisLayerSelections, StringConstants.UTF_8).split("\n"); for (int i = 0; i < s.length; i++) { String[] ls = s[i].split(" // "); if (ls.length > 1) { selectedLayers.add(new LayerSelection(ls[0], ls[1])); } } } } catch (Exception e) { LOGGER.error("error loading url parameters", e); } String tool = null; String toolParameters = null; try { params = Executions.getCurrent().getDesktop().getQueryString(); LOGGER.debug("User params: " + params); List<Entry<String, String>> userParams = Util.getQueryParameters(params); StringBuilder sb = new StringBuilder(); String qc = null; String bs = null; String ws = null; String wkt = null; int size = 4; float opacity = 0.6f; int colour = 0xff0000; String pointtype = "auto"; String bb = null; Double lat = null; Double lon = null; Double radius = null; String colourBy = null; String savedsession = ""; String s = null; boolean[] geospatialKosher = null; boolean supportDynamic = false; String qname = null; Boolean includeDistributions = true; for (int i = 0; i < userParams.size(); i++) { String key = userParams.get(i).getKey(); String value = userParams.get(i).getValue(); if ("wmscache".equals(key)) { useSpeciesWMSCache = value; } if ("tool".equals(key)) { tool = value; } if ("toolParameters".equals(key)) { toolParameters = value; } if ("species_lsid".equals(key)) { sb.append("lsid:").append(value); } else if ("q".equals(key)) { //relies on spitonparams (biocachequery) s = value; //biocache is unhappy with (lsid:...) //remove brackets to make it work if (value.startsWith("(") && value.endsWith(")") && !value.contains(" ")) { s = value.substring(1, value.length() - 2); } } else if ("qname".equals(key)) { qname = value; } else if ("fq".equals(key)) { //flag geospatialKosher filters separately boolean[] gk; if ((gk = BiocacheQuery.parseGeospatialKosher(value)) != null) { geospatialKosher = gk; } else { //use as-is //spitonparams (biocachequery) splits these sb.append("&").append(key).append("=").append(value); } } else if ("qc".equals(key)) { if (StringUtils.isNotEmpty(qc)) { qc = "&qc=" + URLEncoder.encode(value, StringConstants.UTF_8); } } else if ("bs".equals(key)) { bs = value; } else if ("ws".equals(key)) { ws = value; } else if (StringConstants.WKT.equals(key)) { wkt = value; } else if ("psize".equals(key)) { size = Integer.parseInt(value); } else if ("popacity".equals(key)) { opacity = Float.parseFloat(value); } else if ("pcolour".equals(key)) { colour = Integer.parseInt(value, 16); } else if ("ptype".equals(key)) { pointtype = value; } else if (StringConstants.BBOX.equals(key)) { bb = value; } else if ("lat".equals(key)) { lat = Double.parseDouble(value); } else if ("lon".equals(key)) { lon = Double.parseDouble(value); } else if ("radius".equals(key)) { radius = Double.parseDouble(value); } else if ("ss".equals(key)) { savedsession = value.trim(); } else if ("dynamic".equals(key)) { supportDynamic = Boolean.parseBoolean(value); } else if ("cm".equals(key)) { colourBy = value.trim(); } else if ("includeDistributions".equals(key)) { try { includeDistributions = Boolean.parseBoolean(value.trim()); } catch (Exception e) { } } } if (lat != null && lon != null && radius != null) { //m to km wkt = Util.createCircleJs(lon, lat, radius * 1000); } if (StringUtils.isNotBlank(savedsession)) { loadUserSession(savedsession); } else { LOGGER.debug("No saved session to load"); } LOGGER.debug("url query: " + sb.toString()); if (sb.length() > 0 || (s != null && s.length() > 0)) { if (s != null) { s += sb.toString(); } else { s = sb.toString(); } BiocacheQuery q = new BiocacheQuery(null, wkt, s, null, true, geospatialKosher, bs, ws, supportDynamic); if (qc != null) { q.setQc(qc); } if (getMapLayerDisplayName(q.getSolrName()) == null) { if (bb == null) { List<Double> bbox = q.getBBox(); String script = "map.zoomToExtent(new OpenLayers.Bounds(" + bbox.get(0) + "," + bbox.get(1) + "," + bbox.get(2) + "," + bbox.get(3) + ")" + ".transform(" + " new OpenLayers.Projection('EPSG:4326')," + " map.getProjectionObject()));"; openLayersJavascript.setAdditionalScript(script); } //mappable attributes int setGrid = -1; if (pointtype.equals(StringConstants.GRID)) { setGrid = 1; } else if ("point".equals(pointtype)) { setGrid = 0; } mapLayer = mapSpecies(q, qname != null ? qname : q.getSolrName(), StringConstants.SPECIES, q.getOccurrenceCount(), LayerUtilitiesImpl.SPECIES, null, setGrid, size, opacity, colour, colourBy, includeDistributions); } } mapMultiQueryLayers(geospatialKosher, bs, ws, supportDynamic); } catch (Exception e) { LOGGER.debug("Error loading url parameters: " + params, e); } //load any deep linked layers mapLayerFromParams(); //load any deep linked objects mapObjectFromParams(); if (tool != null) { //open this tool try { JSONParser jp = new JSONParser(); Map map = new HashMap<String, Object>(); if (toolParameters != null) { JSONObject jo = (JSONObject) jp.parse(toolParameters); for (Object key : jo.keySet()) { map.put(key.toString(), jo.get(key)); } } if ("phylogeneticdiversity".equals(tool)) { openModal("WEB-INF/zul/tool/PhylogeneticDiversity.zul", map, StringConstants.ADDTOOLWINDOW); } } catch (Exception e) { LOGGER.error("failed to open tool: " + tool, e); } } return mapLayer; }
From source file:main.MainClass.java
private boolean autoMailForward(String mode, String mailid) { loggerObj.log(Level.INFO, "Inside Automail Forward"); //Need to check properly with external for this getTicketIdsFromMEMDM alone. Because it gives all the ticketids and we need to //use it properly because it will involve lot of requests to the support.zoho.com if we get threadIds and threadContents for all the //ticketIds returned by this method. //Don't Delete this line as this is needed for external //String[] TicketIdsFileDtls = getTicketIdsFromMEMDM(mode); //This is used for test purpose String[] TicketIdsFileDtls = new String[] { "./TestFiles/fromServer/AutoMailForward/memdm", "1" }; if (TicketIdsFileDtls == null) { System.out.println("The ticketIds file received from MEDC portal is empy"); return false; }//from www. j ava2 s.c o m String folderToReadTicketIds = TicketIdsFileDtls[0]; int tickedIdFileCount = Integer.parseInt(TicketIdsFileDtls[1]); String configFile = "./conf/AutoMailForward/medcs/connectionConfig.props"; JSONObject supDetails = initializeSupportDetails(configFile); loggerObj.log(Level.INFO, "connection config details obtained form " + configFile + "is: " + supDetails.toJSONString()); if (supDetails == null) { loggerObj.log(Level.SEVERE, "Problem in parsing " + configFile + "to get support.zoho.com details"); return false; } for (int fileCount = 1; fileCount <= tickedIdFileCount; fileCount++) { String fileToReadTicketIdsFrom = folderToReadTicketIds + "/ticketsIds_" + fileCount + ".csv"; List<String> ticketIds = FileOperations.readStringArrFromCSVFile(fileToReadTicketIdsFrom); loggerObj.log(Level.INFO, "Ticket Ids obtained from " + fileToReadTicketIdsFrom + ticketIds.toString()); for (Iterator ticketIdItr = ticketIds.iterator(); ticketIdItr.hasNext();) { String[] searchParams = (String[]) supDetails.get("searchparams"); if (searchParams == null) { searchParams = new String[] { "Request Id", ticketIdItr.next().toString() }; } supDetails.put(SEARCHPARAMS, searchParams); String rootFolder = null; String[] dataFromSupport = null; if (mode.equals("external")) { rootFolder = "./fromServer/AutoMailForward/caseIds"; } if (mode.equals("internal")) { // Dont know whether this is the correct internal file. If it is not working , then proeprly change it after testing. rootFolder = "./TestFiles/fromServer/AutoMailForward/caseIds/medcs/27_02_16_21_03_39"; } dataFromSupport = getSupportDataWithConfigDetails(supDetails, mode, rootFolder, false, "AutoMailForward_CaseIds"); supDetails = null; if (dataFromSupport == null) { loggerObj.log(Level.SEVERE, "Problem in getting details from support.zoho.com"); return false; } int index = Integer.parseInt(dataFromSupport[1]); String folderToReadFrom = dataFromSupport[0]; loggerObj.log(Level.INFO, "The details obtained from support is: index: " + index + " folderToreadFrom: " + folderToReadFrom); JSONOperations parserObj = new JSONOperations(); String[] caseId = new String[index]; for (int i = 1; i <= index; i++) { String fileToReadFrom = folderToReadFrom + i + ".json"; JSONObject responseFromSup = (JSONObject) FileOperations.readFromJSONFile(fileToReadFrom); ArrayList<String> caseIdObj = parserObj.parseWithColumnHeaderCri(responseFromSup, "CASEID", "row"); if (caseIdObj != null && caseIdObj.size() == 1) { caseId[i - 1] = caseIdObj.get(0); loggerObj.log(Level.INFO, "Case Id obtained from support is " + caseId[i - 1] + "by reading file " + fileToReadFrom); } else { loggerObj.log(Level.SEVERE, "Problem in retrieving Case ID from given Tickt Id"); return false; } } folderToReadFrom = null; parserObj = null; supDetails = initializeSupportDetails("./conf/AutoMailForward/medcs/connectionConfig.props"); Object[] threadIdList = new Object[index]; for (int i = 0; i < index; i++) { // need to change the internal implementation with getThreadIDsFromSupportApi method itself. if (mode.equals("external")) { rootFolder = "./fromServer/AutoMailForward/threadIds/" + getCurrTimeInDD_MM_YY_HH_MM_SS(); dataFromSupport = getThreadIDsFromSupportApi(supDetails, new String[] { caseId[i], "true" }, rootFolder); } else if (mode.equals("internal")) { String testrootFolder = "./TestFiles/fromServer/AutoMailForward/threadIds/255000005096068/JSONResponse_"; dataFromSupport = readFromInternalAutoForward(testrootFolder); loggerObj.log(Level.INFO, "running in internal mode reading from " + testrootFolder); } if (dataFromSupport == null) { loggerObj.log(Level.SEVERE, "Issue is getting ThreadIds from support for caseId" + caseId[i]); return false; } loggerObj.log(Level.SEVERE, "Received ThreadId details from support for caseId " + caseId[i] + " is " + "folderToRead " + dataFromSupport[0] + " index " + dataFromSupport[1]); threadIdList[i] = dataFromSupport; } JSONObject caseIds = new JSONObject(); for (int i = 0; i < index; i++) { dataFromSupport = (String[]) threadIdList[i]; int threadIdIndex = Integer.parseInt(dataFromSupport[1]); folderToReadFrom = dataFromSupport[0]; loggerObj.log(Level.INFO, "Going to read from file " + folderToReadFrom + "1 to " + folderToReadFrom + threadIdIndex); parserObj = new JSONOperations(); ArrayList<String> threadIds = new ArrayList<>(); for (int j = 1; j <= threadIdIndex; j++) { String fileToReadFrom = folderToReadFrom + j + ".json"; loggerObj.log(Level.INFO, "Reading from " + fileToReadFrom); JSONObject responseFromSup = (JSONObject) FileOperations.readFromJSONFile(fileToReadFrom); Object threadIdsObj = parserObj.parseWithColumnHeaderCri(responseFromSup, "Thread Id", "threadinfo"); if (threadIdsObj == null) { loggerObj.log(Level.SEVERE, "Problem in retrieving Ticket ID from given Case ID" + caseId[i]); return false; } threadIds.addAll((ArrayList<String>) threadIdsObj); } caseIds.put(caseId[i], threadIds); loggerObj.log(Level.INFO, "ThreadIds for caseId " + caseId[i] + " is " + caseIds.toJSONString()); } JSONObject caseIDsToFiles = new JSONObject(); Set<String> CaseIdSet = caseIds.keySet(); if (mode.equals("external")) { for (Iterator caseIdItr = CaseIdSet.iterator(); caseIdItr.hasNext();) { String caseIdStr = (String) caseIdItr.next(); String folderRootForThreadContent = "./fromServer/AutoMailForward/ThreadContents/" + getCurrTimeInDD_MM_YY_HH_MM_SS() + "/" + caseIdStr; boolean createFolderToWriteResponse = new File(folderRootForThreadContent).mkdirs(); if (!createFolderToWriteResponse) { loggerObj.log(Level.INFO, "Cannot create a folder" + folderRootForThreadContent + " to write threadcontent"); return false; } ArrayList<String> threadIds = (ArrayList<String>) caseIds.get(caseIdStr); String[] fileNames = new String[threadIds.size()]; int i = 0; for (Iterator threadItr = threadIds.iterator(); threadItr.hasNext();) { String threadId = (String) threadItr.next(); String fileForThreadContent = folderRootForThreadContent + "/" + threadId + ".xml"; loggerObj.log(Level.INFO, "The file to write the thread content for threadId " + threadId + "is " + fileForThreadContent); fileNames[i] = getThreadContentFromSupportApi(fileForThreadContent, supDetails, threadId, caseIdStr); if (fileNames[i] == null) { loggerObj.log(Level.SEVERE, "Problem in reading thread content for thread id " + threadId + "for case id" + caseIdStr); } loggerObj.log(Level.INFO, "Thread content for thread Id" + threadId + "is written to the file" + fileNames[i]); i++; } caseIDsToFiles.put(caseIdStr, fileNames); loggerObj.log(Level.INFO, "CaseIds along with file names consisting their thread ID is as follows " + caseIDsToFiles.toJSONString()); } } else if (mode.equals("internal")) { String rootTestFolder = "./TestFiles/fromServer/AutoMailForward/ThreadContents/27_02_16_21_03_41/255000005096068"; String testFile1 = rootTestFolder + "/" + "255000005078234.xml"; String testfile2 = rootTestFolder + "/" + "255000005096070.xml"; caseIDsToFiles.put("255000004261482", new String[] { testFile1, testfile2 }); loggerObj.log(Level.INFO, "running in Test mode with reading from files" + testFile1 + testfile2); } String folderToWriteToStr = ""; Set<String> caseIDsToFilesSet = caseIDsToFiles.keySet(); for (Iterator fileNameItr = caseIDsToFilesSet.iterator(); fileNameItr.hasNext();) { String caseIDstr = (String) fileNameItr.next(); loggerObj.log(Level.INFO, "case ID found is " + caseIDstr); String[] fileNames = (String[]) caseIDsToFiles.get(caseIDstr); if (fileNames == null) { loggerObj.log(Level.INFO, "Error in getting file name which contains the thread content for the caseId " + caseIDstr); } String[] folderToWriteTo = fileNames[0].split("/"); for (int i = 0; i < folderToWriteTo.length - 1; i++) { folderToWriteToStr += folderToWriteTo[i] + "/"; } folderToWriteToStr += "output.html"; loggerObj.log(Level.INFO, "Going to convert xml files " + getStringFromStringArray(fileNames) + "html files for case Id" + caseIDstr); SAXParser xmlParser = new SAXParser(); for (String fileToReadFrom : fileNames) { xmlParser.xmlFileToHTMLConverter(fileToReadFrom, folderToWriteToStr); } } loggerObj.log(Level.INFO, "Going to send auto forward mail using the file" + folderToWriteToStr); StringWriter writer = new StringWriter(); try { IOUtils.copy(new FileInputStream(new File(folderToWriteToStr)), writer); } catch (IOException ex) { loggerObj.log(Level.SEVERE, "Issue in prsing the file" + folderToWriteToStr + "to send mail"); return false; } String[] content = new String[2]; content[0] = writer.toString(); content[1] = "text/html"; MailOperations.sendMail(mailid, content, "Testing purpose"); loggerObj.log(Level.INFO, "Successfully sent the mail using" + folderToWriteToStr); } } return false; }
From source file:nersc.greenseas.portlet.GreenseasPortlet.java
@Override public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, PortletException { System.out.println("Calling serveResource"); resourceResponse.setContentType("text/javascript"); String uri = resourceRequest.getParameter("fileID"); String requestType = resourceRequest.getParameter("requestType"); System.out.println("requestType:'" + requestType + "'"); String opendapDataURL = resourceRequest.getParameter("opendapDataURL"); if (requestType != null) { if (requestType.equals("serveNetCDFFile")) { String location = resourceRequest.getParameter("fileID"); if (location != null) { String[] folders = { "content", "gsadbc", "createdFiles" }; String filePath = createDirectory(System.getProperty("catalina.base"), folders); for (int i = 0; i < location.length(); i++) { char c = uri.charAt(i); if (c < '0' || (c > '9' && c < 'A') || (c > 'Z' && c < 'a') || c > 'z') throw new InvalidFileNameException( "Invalid file name (illegal character:'" + c + "'):" + uri); }/* ww w. j a v a2 s .c om*/ String fileExtension = ".nc"; location = filePath + location + fileExtension; resourceResponse.setContentType("application/octet-stream"); resourceResponse.setProperty("Content-Disposition", "attachment;filename=\"Greenseas_Downloaded_Parameters.nc\""); OutputStream out = resourceResponse.getPortletOutputStream(); // Content-Type: application/octet-stream // Content-Disposition: attachment;filename=\"filename.xxx\" InputStream in = null; try { in = new FileInputStream(new File(location)); if (in != null) { byte[] buffer = new byte[4096]; int len; while ((len = in.read(buffer)) != -1) { out.write(buffer, 0, len); } out.flush(); System.out.println("Wrote nc file to outputstream"); } } catch (Exception e) { // TODO: handle exception } finally { if (in != null) in.close(); if (out != null) out.close(); } } return; } if (uri != null || opendapDataURL != null) { if (opendapDataURL == null) { String[] folders = { "content", "gsadbc", "uploadedFiles" }; String filePath = createDirectory(System.getProperty("catalina.base"), folders); for (int i = 0; i < uri.length(); i++) { char c = uri.charAt(i); if (c < '0' || (c > '9' && c < 'A') || (c > 'Z' && c < 'a') || c > 'z') throw new InvalidFileNameException( "Invalid file name (illegal character:'" + c + "'):" + uri); } String fileExtension = ".nc"; uri = filePath + uri + fileExtension; } else { uri = opendapDataURL; } if (requestType.startsWith("getDataValuesOf:")) { System.out.println("requestType is getDataValuesOf:"); Map<String, String[]> parameterMap = resourceRequest.getParameterMap(); Map<Integer, Map<String, Double>> values = NetCDFReader.getDatavaluesFromNetCDFFile(uri, parameterMap); if (values == null) return; JSONObject jsonObject = new JSONObject(values); // System.out.println("Returning with jsonObject:"); // System.out.println(jsonObject.toJSONString()); PrintWriter writer = resourceResponse.getWriter(); writer.write(jsonObject.toString()); return; } else if (requestType.equals("getLayersFromNetCDFFile")) { System.out.println("requestType is getLayersFromNetCDFFile:"); System.out.println("opendapDataURL:" + opendapDataURL); System.out.println("uri:" + uri); Map<String, String> values = NetCDFReader.getLayersFromRaster(uri); if (values == null) { System.out.println("No values found!"); return; } JSONObject jsonObject = new JSONObject(values); System.out.println("Returning with jsonObject:"); System.out.println(jsonObject.toJSONString()); PrintWriter writer = resourceResponse.getWriter(); writer.write(jsonObject.toString()); return; } else if (requestType.equals("getMetaDimensions")) { System.out.println("getMetaDimensions:" + uri); String parameter = resourceRequest.getParameter("rasterParameter"); if (parameter == null) return; Map<String, Map<String, String>> values = NetCDFReader.getDimensionsFromRasterParameter(uri, parameter); if (values == null) return; JSONObject jsonObject = new JSONObject(values); System.out.println("Returning with jsonObject:"); System.out.println(jsonObject.toJSONString()); PrintWriter writer = resourceResponse.getWriter(); writer.write(jsonObject.toString()); return; } else if (requestType.equals("loadFileFromID")) { //TODO: fix security hole System.out.println(uri); JSONObject jsonObject = new JSONObject(); File f = new File(uri); boolean exists = f.exists(); // sleep for 1 seconds to mitigate brute force attacks try { Thread.sleep(1000); } catch (InterruptedException e) { } jsonObject.put("fileIDExists", exists); PrintWriter writer = resourceResponse.getWriter(); writer.write(jsonObject.toString()); return; } } if (requestType.equals("getLonghurstPolygon")) { Map<String, String> values = new HashMap<String, String>(); String region = resourceRequest.getParameter("longhurstRegion"); System.out.println("getLonghurstPolygon:" + region); String polygon = DatabaseProperties.getLonghurstPolygon(region); values.put(region, polygon); JSONObject jsonObject = new JSONObject(values); System.out.println("Returning with polygon!=null:" + (polygon != null)); PrintWriter writer = resourceResponse.getWriter(); writer.write(jsonObject.toString()); return; } else if (requestType.equals("createNetCDFUsingH.1")) { JSONParser parser = new JSONParser(); JSONArray jsonA = null; JSONObject jsonO = null; int numberOfFeatures = 0; try { jsonA = (JSONArray) parser.parse(resourceRequest.getParameter("data")); String variablesString = resourceRequest.getParameter("variables"); numberOfFeatures = Integer.parseInt(resourceRequest.getParameter("numberOfFeatures")); System.out.println(variablesString); jsonO = (JSONObject) parser.parse(variablesString); } catch (ParseException e) { } String[] folders = { "content", "gsadbc", "createdFiles" }; String filePath = createDirectory(System.getProperty("catalina.base"), folders); String fileID = NetCDFWriter.createNetCDF(jsonA, jsonO, numberOfFeatures, filePath); Map<String, String> values = new HashMap<String, String>(); values.put("fileID", fileID); JSONObject jsonObject = new JSONObject(values); /*resourceResponse.setContentType("application/x-netcdf"); resourceResponse.addProperty(HttpHeaders.CACHE_CONTROL, "max-age=3600, must-revalidate"); OutputStream out = resourceResponse.getPortletOutputStream(); InputStream in = new FileInputStream(new File(location)); byte[] buffer = new byte[4096]; int len; while ((len = in.read(buffer)) != -1) { out.write(buffer, 0, len); } out.flush(); in.close(); out.close();*/ System.out.println("Returning with fileID" + fileID); PrintWriter writer = resourceResponse.getWriter(); writer.write(jsonObject.toString()); return; } else if (requestType.equals("getLonghurstPolygon")) { Map<String, String> values = new HashMap<String, String>(); String region = resourceRequest.getParameter("longhurstRegion"); System.out.println("getLonghurstPolygon:" + region); String polygon = DatabaseProperties.getLonghurstPolygon(region); values.put(region, polygon); JSONObject jsonObject = new JSONObject(values); System.out.println("Returning with polygon!=null:" + (polygon != null)); PrintWriter writer = resourceResponse.getWriter(); writer.write(jsonObject.toString()); return; } else if (requestType.equals("updateTreeWithInventoryNumbers")) { String urlS = resourceRequest.getParameter("url"); String region = resourceRequest.getParameter("gsadbcRegionFilterPlaceHolder"); if (region != null) { region = region.substring(51, region.length() - 13); } JSONParser parser = new JSONParser(); JSONObject jsonO = null; try { jsonO = (JSONObject) parser.parse(resourceRequest.getParameter("data")); } catch (ParseException e) { } String charset = "UTF-8"; int numberOfThreads = 4; Set<?> entrySet = jsonO.keySet(); ArrayList<Map<String, String>> responseMaps = new ArrayList<Map<String, String>>(); ArrayList<Map<String, String>> requestMaps = new ArrayList<Map<String, String>>(); for (int i = 0; i < numberOfThreads; i++) { responseMaps.add(new HashMap<String, String>()); requestMaps.add(new HashMap<String, String>()); } int thredd = 0; for (Object o : entrySet) { String key = (String) o; String request = (String) jsonO.get(key); requestMaps.get(thredd).put(key, request); thredd = (thredd + 1) % numberOfThreads; } ArrayList<GetNumberOfFeatures> threadds = new ArrayList<GetNumberOfFeatures>(); for (int i = 0; i < numberOfThreads; i++) { GetNumberOfFeatures runnable = new GetNumberOfFeatures(responseMaps.get(i), requestMaps.get(i), charset, urlS, i, region); Thread thread = new Thread(runnable); thread.start(); threadds.add(runnable); } while (true) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } boolean done = true; for (int i = 0; i < numberOfThreads; i++) { if (!threadds.get(i).done) { done = false; break; } } if (done) break; } Map<String, String> responseMap = new HashMap<String, String>(); for (int i = 0; i < numberOfThreads; i++) { responseMap.putAll(responseMaps.get(i)); } JSONObject jsonObject = new JSONObject(responseMap); PrintWriter writer = resourceResponse.getWriter(); writer.write(jsonObject.toString()); return; } } else { } }
From source file:main.MainClass.java
private void IssueMgrStatusSummGen(String mode, String mailId) { loggerObj.log(Level.INFO, "inside MDMIMR_stat_module_Own_SummGen"); String MEMDMconfigFile = "./conf/IssueManagerReports/connectionConfig.props"; JSONObject MEMDMsupDetails = initializeSupportDetails(MEMDMconfigFile); if (MEMDMsupDetails == null) { loggerObj.log(Level.SEVERE, "Problem in parsing " + MEMDMconfigFile + "to get support.zoho.com details"); return;/*from w w w .j a v a 2 s. c o m*/ } String[] responseString = null; String folderwriteResponse = null; if (mode.equals("external")) { folderwriteResponse = "./fromServer/IssueManagerReports"; } if (mode.equals("internal")) { folderwriteResponse = "./TestFiles/fromServer/IssueManagerReports/memdm/test_input_1"; } responseString = getSupportDataWithConfigDetails(MEMDMsupDetails, mode, folderwriteResponse, false, "IssueMgrReports"); deferenceObjects(new Object[] { MEMDMconfigFile, MEMDMsupDetails }); if (responseString == null) { loggerObj.log(Level.SEVERE, "Response data from MEMDM support.zoho.com while retrieving ticket id is empty/null"); return; } String folderToReadFrom = responseString[0]; Integer index = Integer.parseInt(responseString[1]); loggerObj.log(Level.INFO, "The details obtained from support is: index: " + index + " folderToreadFrom: " + folderToReadFrom); String fileToWriteParsedResponse = "./parsed_output/IssueManagerReports/jsonContent/" + getCurrTimeInDD_MM_YY_HH_MM_SS() + ".json"; String[] statusString = { "Open", "Closed" }; JSONOperations parserObj = new JSONOperations(); String currentFileToreadResponse = null; boolean isProperResponse = true; JSONObject statusModuleSummary = null; for (int i = 1; i <= index; i++) { System.out.println("index: " + i); currentFileToreadResponse = folderToReadFrom + i + ".json"; loggerObj.log(Level.INFO, "Going to read from the file " + currentFileToreadResponse); Object ResponseObjectFromFile = FileOperations.readFromJSONFile(currentFileToreadResponse); if (ResponseObjectFromFile instanceof JSONObject) { statusModuleSummary = parserObj.ModuleVsStatusSummaryGenerator((JSONObject) ResponseObjectFromFile, statusString, "row", statusModuleSummary); loggerObj.log(Level.INFO, "Module summary" + statusModuleSummary.toJSONString()); System.out.println(statusModuleSummary.toJSONString()); } else { isProperResponse = false; break; } } if (!isProperResponse) { System.out.println("Error is parsing JSONResponse file from MEDC support"); loggerObj.log(Level.INFO, "Error is parsing the file " + currentFileToreadResponse); return; } if (statusModuleSummary == null) { System.out.println( "Error in converting JSON files in the folder" + folderToReadFrom + " to parsed response"); loggerObj.log(Level.INFO, "Error in converting JSON files in the folder" + folderToReadFrom + " to parsed response"); } loggerObj.log(Level.INFO, "JSON after processed by ModuleVsOpensummaryGenerator is " + statusModuleSummary.toJSONString()); FileOperations.writeObjectToFile(statusModuleSummary, fileToWriteParsedResponse); loggerObj.log(Level.INFO, "Module vs status summary generated JSON is stored in the file" + fileToWriteParsedResponse); //To get the appropriate owners for the module: String ModuleVsOwnersCSVFile = "./conf/IssueManagerReports/ModuleToOwners.csv"; JSONObject ModuleVsOwners = FileOperations.CSVToJSONObject(ModuleVsOwnersCSVFile); loggerObj.log(Level.INFO, "The owner to module mapping stored in file " + ModuleVsOwnersCSVFile + " is converted into JSON"); loggerObj.log(Level.INFO, "The owner mapping JSON is: " + ModuleVsOwners.toJSONString()); Set<String> statusKeys = statusModuleSummary.keySet(); for (Iterator statusIterator = statusKeys.iterator(); statusIterator.hasNext();) { String status = (String) statusIterator.next(); parserObj.appendTwoJSONObjectsWithSameKeys((JSONObject) statusModuleSummary.get(status), ModuleVsOwners); } //System.out.println("moduleSummary: " + ModuleVsStatusVsOwnerSummary.toJSONString()); //System.out.println(ModVsCountVsOwner.toJSONString()); String currTime = getCurrTimeInDD_MM_YY_HH_MM_SS(); String FileWithOwners = "./parsed_output/IssueManagerReports/jsonContent/withowners_" + currTime + ".json"; FileOperations.writeObjectToFile(statusModuleSummary, FileWithOwners); String[] msgMultiPartContent = createMsgContentForMod_Count_Owner(statusModuleSummary); String htmlContent = msgMultiPartContent[0]; String fileWithHTMLContent = "./parsed_output/IssueManagerReports/htmlContent/" + currTime + ".html"; FileOperations.writeObjectToFile(htmlContent, fileWithHTMLContent); String subject = "MDM Issue Manager Reports"; System.out.println("Tickets processed..Going to send mail. This might take around 2 to 3 mins"); String mailsettingsConf = "./conf/IssueManagerReports/mailsettings.conf"; JSONObject mailSettings = FileOperations.mailSettingsToJO(mailsettingsConf); loggerObj.log(Level.INFO, "The mailsettings conf received from the file " + mailsettingsConf + " is " + mailSettings.toJSONString()); mailId = (String) mailSettings.get("Senderemailaddress"); if (mailId == null) { loggerObj.log(Level.SEVERE, "The mailId obtained from the conf file " + mailsettingsConf + " empty"); return; } String isMailSentProperly = MailOperations.sendMail(mailId, msgMultiPartContent, subject); if (isMailSentProperly != null) { System.out.println(isMailSentProperly); if (isMailSentProperly.contains("Could not connect to SMTP host") || isMailSentProperly.contains("Unknown SMTP host")) { System.out.println("Mail server not reachable"); } } System.out.println("***********************************************************"); }
From source file:i5.las2peer.services.mobsos.SurveyService.java
/** * TODO: write documentation/*from w w w . j a va 2 s . c o m*/ * * @param form * @param response * @return */ private JSONObject validateResponse(Document form, JSONObject response) { JSONObject result = new JSONObject(); JSONObject questions = extractQuestionInformation(form); // then iterate over all question items in the submitted answer and check, if // they fulfill all constraints. Iterator<String> ait = response.keySet().iterator(); while (ait.hasNext()) { String qid = ait.next(); String qval = (String) response.get(qid); //System.out.println("Submitted Question ID: "+q.getAttribute("qid")); // if question provided in answer is not contained in questionnaire, the answer does not match the questionnaire. if (!questions.keySet().contains(qid)) { throw new IllegalArgumentException("Questionnaire answer does not match form! Question ID " + qid + " is not defined in questionnaire."); } // if question provided in answer is contained in questionnaire, check further properties... JSONObject question = (JSONObject) questions.get(qid); // for each type check further constraints String type = (String) question.get("type"); if (type.equals("qu:DichotomousQuestionPageType")) { // for dichotomous questions the only two possible answers are 0 and 1. if (!qval.equals("0") && !qval.equals("1")) { throw new IllegalArgumentException( "Questionnaire answer does not match questionnaire! The value submitted for question " + qid + " is expected to be either 0 or 1, but was " + qval + "!"); } else { // everything is ok with this question answer. // remove entry from hashtable, write entry to result object questions.remove(qid); result.put(qid, qval); } } else if (type.equals("qu:OrdinalScaleQuestionPageType")) { // for ordinal scale questions the answer must be parseable as an integer, // which is try { int qvali = Integer.parseInt(qval); if (qvali > (int) question.get("maxval") || qvali < (int) question.get("minval")) { throw new IllegalArgumentException( "Questionnaire answer does not match questionnaire! The value submitted for question " + qid + " is expected to be between " + question.get("minval") + " and " + question.get("maxval") + ", but was " + qvali + "!"); } else { // everything is ok with this question answer. // remove entry from hashtable questions.remove(qid); result.put(qid, qval); } } catch (NumberFormatException e) { throw new IllegalArgumentException( "Questionnaire answer does not match questionnaire! The value submitted for question " + qid + " is expected to be parseable as an integer!"); } } else if (type.equals("qu:FreeTextQuestionPageType")) { // nothing to check for freetext question pages. Any text can be entered. questions.remove(qid); result.put(qid, qval); } } Iterator<String> remainingqids = questions.keySet().iterator(); while (remainingqids.hasNext()) { String qid = (String) remainingqids.next(); int requireds = (int) ((JSONObject) questions.get(qid)).get("required"); if (requireds == 1) { throw new IllegalArgumentException( "Questionnaire answer does not match questionnaire! The mandatory question " + qid + " was not answered!"); } } return result; }