List of usage examples for org.json.simple JSONArray equals
public boolean equals(Object o)
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; } } }