List of usage examples for org.json.simple JSONArray writeJSONString
public void writeJSONString(Writer out) throws IOException
From source file:biomine.bmvis2.pipeline.GraphOperationSerializer.java
public static void saveList(Collection<GraphOperation> ops, File f, Map<String, Double> queryNodes) throws IOException { FileWriter wr = new FileWriter(f); JSONArray arr = new JSONArray(); for (GraphOperation op : ops) { JSONObject obj = op.toJSON();/* w w w .j a v a 2s. com*/ JSONObject mark = new JSONObject(); mark.put("class", op.getClass().getName()); mark.put("object", obj); arr.add(mark); } JSONArray noi = new JSONArray(); for (String z : queryNodes.keySet()) { JSONObject jo = new JSONObject(); jo.put("node", z); Double val = queryNodes.get(z); jo.put("value", val); noi.add(jo); } arr.add(noi); arr.writeJSONString(wr); wr.close(); }
From source file:dk.magenta.rm.scripts.datalists.LayoutManager.java
@Override public void execute(WebScriptRequest webScriptRequest, WebScriptResponse webScriptResponse) throws IOException { Map<String, Object> model = new HashMap<>(); org.json.simple.JSONArray result = this.getCustomTypes(); model.put("hej", "The Layout of all custom datalists has been reloaded "); try {/* w w w. ja v a 2s . c o m*/ result.writeJSONString(webScriptResponse.getWriter()); } catch (IOException e) { e.printStackTrace(); } }
From source file:edu.vt.vbi.patric.portlets.CompareRegionViewer.java
@SuppressWarnings("unchecked") private void printRefSeqInfo(ResourceRequest request, ResourceResponse response) throws IOException { String contextType = request.getParameter("cType"); String contextId = request.getParameter("cId"); String pinFeatureSeedId = request.getParameter("feature"); // pin feature String windowSize = request.getParameter("window"); // window size // if pin feature is not given, retrieve from the database based on na_feature_id if (pinFeatureSeedId == null && (contextType != null && contextType.equals("feature") && contextId != null)) { DataApiHandler dataApi = new DataApiHandler(request); GenomeFeature feature = dataApi.getFeature(contextId); pinFeatureSeedId = feature.getPatricId(); }/* w w w .j a v a2 s .c o m*/ if (pinFeatureSeedId != null && !pinFeatureSeedId.equals("") && windowSize != null) { JSONObject seq = new JSONObject(); seq.put("length", (Integer.parseInt(windowSize))); seq.put("name", pinFeatureSeedId); seq.put("seqDir", ""); seq.put("start", 1); seq.put("end", (Integer.parseInt(windowSize))); seq.put("seqChunkSize", 20000); JSONArray json = new JSONArray(); json.add(seq); response.setContentType("application/json"); json.writeJSONString(response.getWriter()); response.getWriter().close(); } else { response.getWriter().write("[]"); } }
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 av a2s . c o m 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; } } }
From source file:de.mpg.imeji.presentation.servlet.autocompleter.java
/** * Parse a CoNE Vocabulary (read the title value) * /*from ww w.ja va 2s. c o m*/ * @param cone * @return * @throws IOException */ @SuppressWarnings("unchecked") private String parseConeVocabulary(String cone) throws IOException { Object obj = JSONValue.parse(cone); JSONArray array = (JSONArray) obj; JSONArray result = new JSONArray(); for (int i = 0; i < array.size(); ++i) { JSONObject parseObject = (JSONObject) array.get(i); JSONObject sendObject = new JSONObject(); sendObject.put("label", parseObject.get("http_purl_org_dc_elements_1_1_title")); sendObject.put("value", parseObject.get("http_purl_org_dc_elements_1_1_title")); result.add(sendObject); } StringWriter out = new StringWriter(); result.writeJSONString(out); return out.toString(); }
From source file:de.mpg.imeji.presentation.servlet.autocompleter.java
/** * Parse a json input from Google Geo API * //from w w w . j av a 2 s . c om * @param google * @return * @throws IOException */ @SuppressWarnings("unchecked") private String parseGoogleGeoAPI(String google) throws IOException { JSONObject obj = (JSONObject) JSONValue.parse(google); JSONArray array = (JSONArray) obj.get("results"); JSONArray result = new JSONArray(); for (int i = 0; i < array.size(); ++i) { JSONObject parseObject = (JSONObject) array.get(i); JSONObject sendObject = new JSONObject(); sendObject.put("label", parseObject.get("formatted_address")); sendObject.put("value", parseObject.get("formatted_address")); JSONObject location = (JSONObject) ((JSONObject) parseObject.get("geometry")).get("location"); sendObject.put("latitude", location.get("lat")); sendObject.put("longitude", location.get("lng")); result.add(sendObject); } StringWriter out = new StringWriter(); result.writeJSONString(out); return out.toString(); }
From source file:edu.vt.vbi.patric.portlets.ProteomicsListPortlet.java
@SuppressWarnings("unchecked") public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException { String sraction = request.getParameter("sraction"); if (sraction != null && sraction.equals("save_params")) { Map<String, String> key = new HashMap<>(); String taxonId = ""; String cType = request.getParameter("context_type"); String cId = request.getParameter("context_id"); if (cType != null && cId != null && cType.equals("taxon") && !cId.equals("")) { taxonId = cId;/*from w w w.j a va2s . co m*/ } String keyword = request.getParameter("keyword"); String state = request.getParameter("state"); if (!taxonId.equalsIgnoreCase("")) { key.put("taxonId", taxonId); } if (keyword != null) { key.put("keyword", keyword.trim()); } if (state != null) { key.put("state", state); } long pk = (new Random()).nextLong(); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); PrintWriter writer = response.getWriter(); writer.write("" + pk); writer.close(); } else { String need = request.getParameter("need"); switch (need) { case "0": { String pk = request.getParameter("pk"); // Map data = processExperimentTab(request); Map<String, String> key = (Map) data.get("key"); int numFound = (Integer) data.get("numFound"); List<Map> sdl = (List<Map>) data.get("experiments"); JSONArray docs = new JSONArray(); for (Map doc : sdl) { JSONObject item = new JSONObject(); item.putAll(doc); docs.add(item); } if (data.containsKey("facets")) { JSONObject facets = FacetHelper.formatFacetTree((Map) data.get("facets")); key.put("facets", facets.toJSONString()); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); } JSONObject jsonResult = new JSONObject(); jsonResult.put("results", docs); jsonResult.put("total", numFound); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); jsonResult.writeJSONString(writer); writer.close(); break; } case "1": { String pk = request.getParameter("pk"); // Map data = processProteinTab(request); Map<String, String> key = (Map) data.get("key"); int numFound = (Integer) data.get("numFound"); List<Map> sdl = (List<Map>) data.get("proteins"); JSONArray docs = new JSONArray(); for (Map doc : sdl) { JSONObject item = new JSONObject(doc); docs.add(item); } if (data.containsKey("facets")) { JSONObject facets = FacetHelper.formatFacetTree((Map) data.get("facets")); key.put("facets", facets.toJSONString()); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); } JSONObject jsonResult = new JSONObject(); jsonResult.put("results", docs); jsonResult.put("total", numFound); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); writer.write(jsonResult.toString()); writer.close(); break; } case "tree": { String pk = request.getParameter("pk"); String state; Map<String, String> key = jsonReader .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk)); if (key.containsKey("state")) state = key.get("state"); else state = request.getParameter("state"); key.put("state", state); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); JSONArray tree = new JSONArray(); try { if (!key.containsKey("facets") && !key.get("facets").isEmpty()) { JSONObject facet_fields = (JSONObject) new JSONParser().parse(key.get("facets")); DataApiHandler dataApi = new DataApiHandler(request); tree = FacetHelper.processStateAndTree(dataApi, SolrCore.PROTEOMICS_EXPERIMENT, key, need, facet_fields, key.get("facet"), state, null, 4); } } catch (ParseException e) { LOGGER.error(e.getMessage(), e); } response.setContentType("application/json"); PrintWriter writer = response.getWriter(); tree.writeJSONString(writer); writer.close(); break; } case "getFeatureIds": { String keyword = request.getParameter("keyword"); Map<String, String> key = new HashMap<>(); key.put("keyword", keyword); DataApiHandler dataApi = new DataApiHandler(request); SolrQuery query = dataApi.buildSolrQuery(key, null, null, 0, -1, false); String apiResponse = dataApi.solrQuery(SolrCore.PROTEOMICS_PROTEIN, query); Map resp = jsonReader.readValue(apiResponse); Map respBody = (Map) resp.get("response"); JSONObject object = new JSONObject(respBody); // solr.setCurrentInstance(SolrCore.PROTEOMICS_PROTEIN); // JSONObject object = null; //solr.getData(key, null, facet, 0, -1, false, false, false); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); object.writeJSONString(writer); // writer.write(object.get("response").toString()); writer.close(); break; } case "getPeptides": { String experiment_id = request.getParameter("experiment_id"); String na_feature_id = request.getParameter("na_feature_id"); Map<String, String> key = new HashMap<>(); key.put("keyword", "na_feature_id:" + na_feature_id + " AND experiment_id:" + experiment_id); key.put("fields", "peptide_sequence"); DataApiHandler dataApi = new DataApiHandler(request); SolrQuery query = dataApi.buildSolrQuery(key, null, null, 0, -1, false); String apiResponse = dataApi.solrQuery(SolrCore.PROTEOMICS_PEPTIDE, query); Map resp = jsonReader.readValue(apiResponse); Map respBody = (Map) resp.get("response"); JSONObject object = new JSONObject(); object.putAll(respBody); // solr.setCurrentInstance(SolrCore.PROTEOMICS_PEPTIDE); // JSONObject object = solr.getData(key, null, facet, 0, -1, false, false, false); // object = (JSONObject) object.get("response"); object.put("aa", FASTAHelper.getFASTASequence(request, Arrays.asList(na_feature_id), "protein")); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); object.writeJSONString(writer); writer.close(); break; } } } }
From source file:edu.vt.vbi.patric.portlets.ExperimentListPortlet.java
@SuppressWarnings("unchecked") public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException { String sraction = request.getParameter("sraction"); if (sraction != null && sraction.equals("save_params")) { Map<String, String> key = new HashMap<>(); String genomeId = request.getParameter("genomeId"); String taxonId = ""; String cType = request.getParameter("context_type"); String cId = request.getParameter("context_id"); if (cType != null && cId != null && cType.equals("taxon") && !cId.equals("")) { taxonId = cId;/*from w w w. j a v a 2 s . c om*/ } String keyword = request.getParameter("keyword"); String state = request.getParameter("state"); String ncbi_taxon_id = request.getParameter("ncbi_taxon_id"); if (genomeId != null && !genomeId.equalsIgnoreCase("")) { key.put("genomeId", genomeId); } if (!taxonId.equalsIgnoreCase("")) { key.put("taxonId", taxonId); } if (keyword != null) { key.put("keyword", keyword.trim()); } if (ncbi_taxon_id != null) { key.put("ncbi_taxon_id", ncbi_taxon_id); } if (state != null) { key.put("state", state); } long pk = (new Random()).nextLong(); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); PrintWriter writer = response.getWriter(); writer.write("" + pk); writer.close(); } else { String need = request.getParameter("need"); JSONObject jsonResult = new JSONObject(); switch (need) { case "0": { // Experiments String pk = request.getParameter("pk"); Map data = processExperimentTab(request); Map<String, String> key = (Map) data.get("key"); int numFound = (Integer) data.get("numFound"); List<Map> experiments = (List<Map>) data.get("experiments"); JSONArray docs = new JSONArray(); for (Map item : experiments) { JSONObject doc = new JSONObject(); doc.putAll(item); docs.add(doc); } if (data.containsKey("facets")) { JSONObject facets = FacetHelper.formatFacetTree((Map) data.get("facets")); key.put("facets", facets.toJSONString()); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); } jsonResult.put("results", docs); jsonResult.put("total", numFound); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); writer.write(jsonResult.toString()); writer.close(); break; } case "1": { // Comparisons Map data = processComparisonTab(request); int numFound = (Integer) data.get("numFound"); List<Map> comparisons = (List<Map>) data.get("comparisons"); JSONArray docs = new JSONArray(); for (Map item : comparisons) { JSONObject doc = new JSONObject(); doc.putAll(item); docs.add(doc); } // key.put("keyword", orig_keyword); jsonResult.put("results", docs); jsonResult.put("total", numFound); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); jsonResult.writeJSONString(writer); writer.close(); break; } case "tree": { String pk = request.getParameter("pk"); Map<String, String> key = jsonReader .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk)); String state; if (key.containsKey("state")) { state = key.get("state"); } else { state = request.getParameter("state"); } key.put("state", state); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); JSONArray tree = new JSONArray(); try { if (key.containsKey("facets") && !key.get("facets").equals("{}")) { JSONObject facet_fields = (JSONObject) new JSONParser().parse(key.get("facets")); DataApiHandler dataApi = new DataApiHandler(request); tree = FacetHelper.processStateAndTree(dataApi, SolrCore.TRANSCRIPTOMICS_EXPERIMENT, key, need, facet_fields, key.get("facet"), state, null, 4); } } catch (ParseException e) { LOGGER.error(e.getMessage(), e); } response.setContentType("application/json"); PrintWriter writer = response.getWriter(); tree.writeJSONString(writer); writer.close(); break; } case "download": { List<String> tableHeader = new ArrayList<>(); List<String> tableField = new ArrayList<>(); JSONArray tableSource = new JSONArray(); String fileName = "Transcriptomics"; String fileFormat = request.getParameter("fileformat"); String aT = request.getParameter("aT"); switch (aT) { case "0": { // experiments Map data = processExperimentTab(request); List<Map> experiments = (List<Map>) data.get("experiments"); for (Map item : experiments) { JSONObject doc = new JSONObject(); doc.putAll(item); tableSource.add(doc); } tableHeader.addAll(DownloadHelper.getHeaderForTranscriptomicsExperiment()); tableField.addAll(DownloadHelper.getFieldsForTranscriptomicsExperiment()); break; } case "1": { // comparisons Map data = processComparisonTab(request); List<Map> comparisons = (List<Map>) data.get("comparisons"); for (Map item : comparisons) { JSONObject doc = new JSONObject(); doc.putAll(item); tableSource.add(doc); } tableHeader.addAll(DownloadHelper.getHeaderForTranscriptomicsComparison()); tableField.addAll(DownloadHelper.getFieldsForTranscriptomicsComparison()); break; } } ExcelHelper excel = new ExcelHelper("xssf", tableHeader, tableField, tableSource); excel.buildSpreadsheet(); if (fileFormat.equalsIgnoreCase("xlsx")) { response.setContentType("application/octetstream"); response.addProperty("Content-Disposition", "attachment; filename=\"" + fileName + "." + fileFormat + "\""); excel.writeSpreadsheettoBrowser(response.getPortletOutputStream()); } else if (fileFormat.equalsIgnoreCase("txt")) { response.setContentType("application/octetstream"); response.addProperty("Content-Disposition", "attachment; filename=\"" + fileName + "." + fileFormat + "\""); response.getPortletOutputStream().write(excel.writeToTextFile().getBytes()); } break; } } } }
From source file:edu.vt.vbi.patric.portlets.GenomeFinder.java
@SuppressWarnings("unchecked") public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException { String sraction = request.getParameter("sraction"); if (sraction != null) { if (sraction.equals("save_params")) { Map<String, String> key = new HashMap<>(); String genomeId = request.getParameter("genomeId"); String taxonId = request.getParameter("taxonId"); String cType = request.getParameter("cType"); String cId = request.getParameter("cId"); if (cType != null && cId != null && cType.equals("taxon") && !cId.equals("")) { taxonId = cId;//from w ww .ja va 2s . c o m } String keyword = request.getParameter("keyword"); String state = request.getParameter("state"); String exact_search_term = request.getParameter("exact_search_term"); String search_on = request.getParameter("search_on"); if (genomeId != null && !genomeId.equals("")) { key.put("genomeId", genomeId); } if (taxonId != null && !taxonId.equals("")) { key.put("taxonId", taxonId); } if (keyword != null) { key.put("keyword", keyword.trim()); } if (state != null) { key.put("state", state); } if (exact_search_term != null) { key.put("exact_search_term", exact_search_term); } if (search_on != null) { key.put("search_on", search_on); } if (!key.containsKey("genomeId") && cType != null && cType.equals("genome") && cId != null && !cId.equals("")) { key.put("genomeId", cId); } if (!key.containsKey("taxonId") && cType != null && cType.equals("taxon") && cId != null && !cId.equals("")) { key.put("taxonId", cId); } long pk = (new Random()).nextLong(); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); PrintWriter writer = response.getWriter(); writer.write("" + pk); writer.close(); } else if (sraction.equals("get_params")) { String ret = ""; String pk = request.getParameter("pk"); String json = SessionHandler.getInstance().get(SessionHandler.PREFIX + pk); if (json != null) { Map<String, String> key = jsonReader.readValue(json); ret = key.get("keyword"); } PrintWriter writer = response.getWriter(); writer.write("" + ret); writer.close(); } } else { String need = request.getParameter("need"); JSONObject jsonResult = new JSONObject(); switch (need) { case "0": { // Getting Genome List String pk = request.getParameter("pk"); Map data = processGenomeTab(request); Map<String, String> key = (Map) data.get("key"); int numFound = (Integer) data.get("numFound"); List<Genome> records = (List<Genome>) data.get("genomes"); JSONArray docs = new JSONArray(); for (Genome item : records) { docs.add(item.toJSONObject()); } if (data.containsKey("facets")) { JSONObject facets = FacetHelper.formatFacetTree((Map) data.get("facets")); key.put("facets", facets.toJSONString()); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); } jsonResult.put("results", docs); jsonResult.put("total", numFound); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); jsonResult.writeJSONString(writer); writer.close(); break; } case "1": { // getting Genome Sequence List Map data = processSequenceTab(request); int numFound = (Integer) data.get("numFound"); List<GenomeSequence> sequences = (List<GenomeSequence>) data.get("sequences"); JSONArray docs = new JSONArray(); for (GenomeSequence item : sequences) { docs.add(item.toJSONObject()); } jsonResult.put("results", docs); jsonResult.put("total", numFound); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); jsonResult.writeJSONString(writer); writer.close(); break; } case "tree": { String pk = request.getParameter("pk"); String state; Map<String, String> key = jsonReader .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk)); if (key.containsKey("state")) { state = key.get("state"); } else { state = request.getParameter("state"); } key.put("state", state); SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key)); JSONArray tree = new JSONArray(); try { if (key.containsKey("facets") && !key.get("facets").isEmpty()) { JSONObject facet_fields = (JSONObject) (new JSONParser()).parse(key.get("facets")); DataApiHandler dataApi = new DataApiHandler(request); tree = FacetHelper.processStateAndTree(dataApi, SolrCore.GENOME, key, need, facet_fields, key.get("facet"), state, key.get("join"), 4); } } catch (ParseException e) { LOGGER.error(e.getMessage(), e); } response.setContentType("application/json"); PrintWriter writer = response.getWriter(); tree.writeJSONString(writer); writer.close(); break; } case "tree_for_taxon": { // This is called by Taxon Overview page to faceted summary of genome under a specific taxa. String facet = request.getParameter("facet"); String keyword = request.getParameter("keyword"); Map<String, String> key = new HashMap<>(); key.put("keyword", keyword); DataApiHandler dataApi = new DataApiHandler(request); SolrQuery query = dataApi.buildSolrQuery(key, null, facet, 0, 0, false); // build solr query LOGGER.debug("tree_for_taxon: [{}] {}", SolrCore.GENOME.getSolrCoreName(), query.toString()); String apiResponse = dataApi.solrQuery(SolrCore.GENOME, query); Map resp = jsonReader.readValue(apiResponse); JSONObject facet_fields = FacetHelper.formatFacetTree((Map) resp.get("facet_counts")); JSONArray tree = FacetHelper.processStateAndTree(dataApi, SolrCore.GENOME, key, need, facet_fields, facet, "", null, 4); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); tree.writeJSONString(writer); writer.close(); break; } case "getGenome": { // This is called by Genome Overview page to display genome metadata. DataApiHandler dataApi = new DataApiHandler(request); Genome genome = dataApi.getGenome(request.getParameter("id")); response.setContentType("application/json"); PrintWriter writer = response.getWriter(); if (genome != null) { genome.toJSONObject().writeJSONString(writer); } writer.close(); break; } case "download": { List<String> tableHeader = new ArrayList<>(); List<String> tableField = new ArrayList<>(); JSONArray tableSource = new JSONArray(); String fileName = "GenomeFinder"; String fileFormat = request.getParameter("fileformat"); // String _tablesource = request.getParameter("tablesource"); String aT = request.getParameter("aT"); switch (aT) { case "0": { // genome Map data = processGenomeTab(request); List<Genome> genomes = (List<Genome>) data.get("genomes"); for (Genome genome : genomes) { tableSource.add(genome.toJSONObject()); } tableHeader.addAll(DownloadHelper.getHeaderForGenomes()); tableField.addAll(DownloadHelper.getFieldsForGenomes()); break; } case "1": { // sequence Map data = processSequenceTab(request); List<GenomeSequence> sequences = (List<GenomeSequence>) data.get("sequences"); for (GenomeSequence sequence : sequences) { tableSource.add(sequence.toJSONObject()); } tableHeader.addAll(DownloadHelper.getHeaderForGenomeSequence()); tableField.addAll(DownloadHelper.getFieldsForGenomeSequence()); break; } } ExcelHelper excel = new ExcelHelper("xssf", tableHeader, tableField, tableSource); excel.buildSpreadsheet(); if (fileFormat.equalsIgnoreCase("xlsx")) { response.setContentType("application/octetstream"); response.addProperty("Content-Disposition", "attachment; filename=\"" + fileName + "." + fileFormat + "\""); excel.writeSpreadsheettoBrowser(response.getPortletOutputStream()); } else if (fileFormat.equalsIgnoreCase("txt")) { response.setContentType("application/octetstream"); response.addProperty("Content-Disposition", "attachment; filename=\"" + fileName + "." + fileFormat + "\""); response.getPortletOutputStream().write(excel.writeToTextFile().getBytes()); } } } } }
From source file:analysers.ExportValidated.java
/** * Write the validated lineages as JSON files * /*from w w w .j a v a 2 s.co m*/ * @param f the file name */ @SuppressWarnings("unchecked") private void writeJSON(File f) { HashMap<String, Integer> lineagesDone = new HashMap<String, Integer>(); int nlin = 1; int linsWritten = 0; int cellsWritten = 0; JSONArray jsa = new JSONArray(); FilterValidatedDialog fvd = new FilterValidatedDialog(); fvd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); fvd.setCells(cells); for (Cell c : cells) { if (c.isValidated()) { Cell a = findFirstAncestor(c); if (lineagesDone.get("" + a.getCellID()) == null) { lineagesDone.put("" + a.getCellID(), new Integer(nlin++)); if (fvd.accepts(a)) { JSONObject lino = makeLineageJSON(a, nlin); jsa.add(lino); cellsWritten += ((JSONArray) lino.get("cells")).size(); linsWritten++; } } } } IJ.log("Done, " + linsWritten + " lineages, and " + cellsWritten + " cells were exported."); fvd.dispose(); try { FileWriter fw = new FileWriter(f); jsa.writeJSONString(fw); fw.close(); } catch (IOException e) { IJ.log("Failed to write file!"); e.printStackTrace(); } }