Example usage for org.json.simple JSONArray writeJSONString

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

Introduction

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

Prototype

public void writeJSONString(Writer out) throws IOException 

Source Link

Usage

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