Example usage for org.json.simple JSONArray equals

List of usage examples for org.json.simple JSONArray equals

Introduction

In this page you can find the example usage for org.json.simple JSONArray equals.

Prototype

public boolean equals(Object o) 

Source Link

Usage

From source file:edu.vt.vbi.patric.portlets.TranscriptomicsEnrichment.java

@SuppressWarnings("unchecked")
public void serveResource(ResourceRequest request, ResourceResponse response)
        throws PortletException, IOException {

    response.setContentType("text/html");
    String callType = request.getParameter("callType");

    switch (callType) {
    case "saveParams": {

        Map<String, String> key = new HashMap<>();
        key.put("feature_id", request.getParameter("feature_id"));

        long pk = (new Random()).nextLong();

        SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key));

        PrintWriter writer = response.getWriter();
        writer.write("" + pk);
        writer.close();//from   w  w w.j a  v a 2  s .  c  om
        break;
    }
    case "getFeatureIds": {
        String pathwayId = request.getParameter("map");
        String featureList = request.getParameter("featureList");
        String algorithm = request.getParameter("algorithm");

        DataApiHandler dataApi = new DataApiHandler(request);

        SolrQuery query = new SolrQuery("pathway_id:(" + pathwayId.replaceAll(",", " OR ")
                + ") AND feature_id:(" + featureList.replaceAll(",", " OR ") + ")");
        query.addFilterQuery("annotation:" + algorithm).setRows(dataApi.MAX_ROWS).addField("feature_id");

        LOGGER.trace("getFeatureIds: [{}] {}", SolrCore.PATHWAY.getSolrCoreName(), query);
        String apiResponse = dataApi.solrQuery(SolrCore.PATHWAY, query);

        Map resp = jsonReader.readValue(apiResponse);
        Map respBody = (Map) resp.get("response");
        List<GenomeFeature> features = dataApi.bindDocuments((List<Map>) respBody.get("docs"),
                GenomeFeature.class);

        JSONArray featureIds = new JSONArray();
        for (GenomeFeature feature : features) {
            featureIds.add(feature.getId());
        }

        response.setContentType("application/json");
        featureIds.writeJSONString(response.getWriter());
        break;
    }
    case "getGenomeIds": {

        String featureIds = request.getParameter("feature_id");
        String pathwayId = request.getParameter("map");

        DataApiHandler dataApi = new DataApiHandler(request);

        String genomeId = "";
        if (featureIds != null && !featureIds.equals("") && pathwayId != null && !pathwayId.equals("")) {
            String[] listFeatureId = featureIds.split(",");

            SolrQuery query = new SolrQuery("pathway_id:(" + pathwayId + ") AND feature_id:("
                    + StringUtils.join(listFeatureId, " OR ") + ")");
            query.addField("genome_id").setRows(listFeatureId.length);

            String apiResponse = dataApi.solrQuery(SolrCore.PATHWAY, query);

            Map resp = jsonReader.readValue(apiResponse);
            Map respBody = (Map) resp.get("response");
            List<Map> sdl = (List<Map>) respBody.get("docs");

            Set<String> listGenomeId = new HashSet<>();
            for (Map doc : sdl) {
                listGenomeId.add(doc.get("genome_id").toString());
            }
            genomeId = StringUtils.join(listGenomeId, ",");
        }
        PrintWriter writer = response.getWriter();
        writer.write(genomeId);
        writer.close();
        break;
    }
    case "download": {

        String _filename = "PathwaySummary";
        String _fileformat = request.getParameter("fileformat");
        String pk = request.getParameter("pk");
        Map<String, String> key = jsonReader
                .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk));

        if (key != null && key.containsKey("feature_id")) {
            List<String> featureIDs = Arrays.asList(key.get("feature_id").split(","));
            JSONObject jsonResult = getEnrichmentPathway(request, featureIDs);

            List<String> _tbl_header = new ArrayList<>();
            List<String> _tbl_field = new ArrayList<>();
            JSONArray _tbl_source = (JSONArray) jsonResult.get("results");

            _tbl_header.addAll(Arrays.asList("Pathway Name", "# of Genes Selected   ", "# of Genes Annotated",
                    "% Coverage"));
            _tbl_field.addAll(Arrays.asList("pathway_name", "ocnt", "ecnt", "percentage"));

            ExcelHelper excel = new ExcelHelper("xssf", _tbl_header, _tbl_field, _tbl_source);
            excel.buildSpreadsheet();

            if (_fileformat.equalsIgnoreCase("xlsx")) {

                response.setContentType("application/octetstream");
                response.setProperty("Content-Disposition",
                        "attachment; filename=\"" + _filename + "." + _fileformat + "\"");

                excel.writeSpreadsheettoBrowser(response.getPortletOutputStream());
            } else if (_fileformat.equalsIgnoreCase("txt")) {

                response.setContentType("application/octetstream");
                response.setProperty("Content-Disposition",
                        "attachment; filename=\"" + _filename + "." + _fileformat + "\"");

                response.getWriter().write(excel.writeToTextFile());
            }
        }
        break;
    }
    case "getFeatureTable": {

        String pk = request.getParameter("pk");
        Map<String, String> key = jsonReader
                .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk));

        response.setContentType("application/json");
        if (key != null && key.containsKey("feature_id")) {

            List<String> featureIDs = Arrays.asList(key.get("feature_id").split(","));
            JSONObject jsonResult = getEnrichmentPathway(request, featureIDs);

            PrintWriter writer = response.getWriter();
            jsonResult.writeJSONString(writer);
            writer.close();
        } else {
            PrintWriter writer = response.getWriter();
            writer.write("{}");
            writer.close();
        }
        break;
    }
    }
}