Example usage for org.json.simple JSONObject keySet

List of usage examples for org.json.simple JSONObject keySet

Introduction

In this page you can find the example usage for org.json.simple JSONObject keySet.

Prototype

Set<K> keySet();

Source Link

Document

Returns a Set view of the keys contained in this map.

Usage

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;
}