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:edu.vt.vbi.patric.portlets.TranscriptomicsGene.java

public void serveResource(ResourceRequest request, ResourceResponse response)
        throws PortletException, IOException {
    String callType = request.getParameter("callType");

    if (callType != null) {
        switch (callType) {
        case "saveParams": {

            String keyword = request.getParameter("keyword");
            DataApiHandler dataApi = new DataApiHandler(request);

            Map<String, String> key = new HashMap<>();
            key.put("keyword", "locus_tag:(" + keyword + ") OR refseq_locus_tag:(" + keyword + ") ");
            key.put("fields", "pid");

            SolrQuery query = dataApi.buildSolrQuery(key, null, null, 0, -1, false);

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

            Map resp = jsonReader.readValue(apiResponse);
            Map respBody = (Map) resp.get("response");

            List<Map> sdl = (List<Map>) respBody.get("docs");

            Set<String> sampleIds = new HashSet<>();

            for (Map doc : sdl) {
                sampleIds.add(doc.get("pid").toString());
            }//ww  w .  j av a 2s.  com

            String sId = StringUtils.join(sampleIds, ",");

            key = new HashMap();
            if (!keyword.equals("")) {
                key.put("keyword", keyword);
            }

            response.setContentType("text/html");
            PrintWriter writer = response.getWriter();

            if (!sId.equals("")) {
                key.put("sampleId", sId);
                long pk = (new Random()).nextLong();

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

                writer.write("" + pk);
            } else {
                writer.write("");
            }
            writer.close();

            break;
        }
        case "getTables": {

            String expId = request.getParameter("expId");
            String sampleId = request.getParameter("sampleId");
            String wsExperimentId = request.getParameter("wsExperimentId");
            String wsSampleId = request.getParameter("wsSampleId");
            String keyword = request.getParameter("keyword");
            DataApiHandler dataApi = new DataApiHandler(request);

            JSONArray sample = new JSONArray();

            if ((sampleId != null && !sampleId.equals("")) || (expId != null && !expId.equals(""))) {

                String query_keyword = "";

                if (expId != null && !expId.equals("")) {
                    query_keyword += "eid:(" + expId.replaceAll(",", " OR ") + ")";
                }

                if (sampleId != null && !sampleId.equals("")) {
                    if (query_keyword.length() > 0) {
                        query_keyword += " AND ";
                    }
                    query_keyword += "pid:(" + sampleId.replaceAll(",", " OR ") + ")";
                }

                Map<String, String> key = new HashMap<>();
                key.put("keyword", query_keyword);
                key.put("fields", "pid,expname,expmean,timepoint,mutant,strain,condition");

                SolrQuery query = dataApi.buildSolrQuery(key, null, null, 0, -1, false);

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

                Map resp = jsonReader.readValue(apiResponse);
                Map respBody = (Map) resp.get("response");

                List<Map> sdl = (List<Map>) respBody.get("docs");

                for (final Map doc : sdl) {
                    final JSONObject item = new JSONObject(doc);
                    sample.add(item);
                }
            }

            // Read from JSON if collection parameter is there
            ExpressionDataCollection parser = null;
            if (wsExperimentId != null && !wsExperimentId.equals("")) {
                String token = getAuthorizationToken(request);

                parser = new ExpressionDataCollection(wsExperimentId, token);
                parser.read(ExpressionDataCollection.CONTENT_SAMPLE);
                if (wsSampleId != null && !wsSampleId.equals("")) {
                    parser.filter(wsSampleId, ExpressionDataCollection.CONTENT_SAMPLE);
                }
                // Append samples from collection to samples from DB
                sample = parser.append(sample, ExpressionDataCollection.CONTENT_SAMPLE);
            }

            String sampleList = "";
            sampleList += ((JSONObject) sample.get(0)).get("pid");

            for (int i = 1; i < sample.size(); i++) {
                sampleList += "," + ((JSONObject) sample.get(i)).get("pid");
            }

            JSONObject jsonResult = new JSONObject();
            jsonResult.put(ExpressionDataCollection.CONTENT_SAMPLE + "Total", sample.size());
            jsonResult.put(ExpressionDataCollection.CONTENT_SAMPLE, sample);
            JSONArray expression = new JSONArray();

            if ((sampleId != null && !sampleId.equals("")) || (expId != null && !expId.equals(""))) {

                String query_keyword = "";

                if (keyword != null && !keyword.equals("")) {
                    query_keyword += "(alt_locus_tag:(" + keyword + ") OR refseq_locus_tag:(" + keyword + ")) ";
                }

                if (expId != null && !expId.equals("")) {
                    if (query_keyword.length() > 0) {
                        query_keyword += " AND ";
                    }
                    query_keyword += "eid:(" + expId.replaceAll(",", " OR ") + ")";
                }

                if (sampleId != null && !sampleId.equals("")) {
                    if (query_keyword.length() > 0) {
                        query_keyword += " AND ";
                    }
                    query_keyword += "pid:(" + sampleId.replaceAll(",", " OR ") + ")";
                }

                Map<String, String> key = new HashMap<>();
                key.put("keyword", query_keyword);
                key.put("fields", "pid,refseq_locus_tag,feature_id,log_ratio,z_score");

                SolrQuery query = dataApi.buildSolrQuery(key, null, null, 0, -1, false);

                LOGGER.trace("getTables: [{}] {}", SolrCore.TRANSCRIPTOMICS_GENE.getSolrCoreName(), query);

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

                Map resp = jsonReader.readValue(apiResponse);
                Map respBody = (Map) resp.get("response");

                List<Map> sdl = (List<Map>) respBody.get("docs");

                for (final Map doc : sdl) {
                    final JSONObject item = new JSONObject(doc);
                    expression.add(item);
                }

                // TODO: re-implement when data API removes limit 25k records
                int start = 0;
                int fetchedSize = sdl.size();
                while (fetchedSize == 25000) {
                    start += 25000;
                    query.setStart(start);

                    LOGGER.trace("getTables: [{}] {}", SolrCore.TRANSCRIPTOMICS_GENE.getSolrCoreName(), query);

                    final String apiResponseSub = dataApi.solrQuery(SolrCore.TRANSCRIPTOMICS_GENE, query);
                    final Map respSub = jsonReader.readValue(apiResponseSub);
                    final Map respBodySub = (Map) respSub.get("response");

                    sdl = (List<Map>) respBodySub.get("docs");
                    fetchedSize = sdl.size();

                    for (final Map doc : sdl) {
                        final JSONObject item = new JSONObject(doc);
                        expression.add(item);
                    }
                }
            }

            if (wsExperimentId != null && !wsExperimentId.equals("")) {

                parser.read(ExpressionDataCollection.CONTENT_EXPRESSION);
                if (wsSampleId != null && !wsSampleId.equals(""))
                    parser.filter(wsSampleId, ExpressionDataCollection.CONTENT_EXPRESSION);

                // Append expression from collection to expression from DB
                expression = parser.append(expression, ExpressionDataCollection.CONTENT_EXPRESSION);
            }

            JSONArray stats = getExperimentStats(dataApi, expression, sampleList, sample);
            jsonResult.put(ExpressionDataCollection.CONTENT_EXPRESSION + "Total", stats.size());
            jsonResult.put(ExpressionDataCollection.CONTENT_EXPRESSION, stats);

            response.setContentType("application/json");
            PrintWriter writer = response.getWriter();
            jsonResult.writeJSONString(writer);
            writer.close();

            break;
        }
        case "doClustering": {

            String data = request.getParameter("data");
            String g = request.getParameter("g");
            String e = request.getParameter("e");
            String m = request.getParameter("m");
            String ge = request.getParameter("ge");
            String pk = request.getParameter("pk");
            String action = request.getParameter("action");

            String folder = "/tmp/";
            String filename = folder + "tmp_" + pk + ".txt";
            String output_filename = folder + "cluster_tmp_" + pk;
            try {

                PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(filename, true)));
                out.write(data);
                out.close();

            } catch (Exception es) {
                LOGGER.error(es.getMessage(), es);
            }

            response.setContentType("text/html");
            PrintWriter writer = response.getWriter();
            if (action.equals("Run"))
                writer.write(doCLustering(filename, output_filename, g, e, m, ge).toString());

            writer.close();

            break;
        }
        case "saveState": {

            String keyType = request.getParameter("keyType");
            String pageAt = request.getParameter("pageAt");
            String sampleFilter = request.getParameter("sampleFilter");
            String regex = request.getParameter("regex");
            String regexGN = request.getParameter("regexGN");
            String upFold = request.getParameter("upFold");
            String downFold = request.getParameter("downFold");
            String upZscore = request.getParameter("upZscore");
            String downZscore = request.getParameter("downZscore");
            String significantGenes = request.getParameter("significantGenes");
            String ClusterColumnOrder = request.getParameter("ClusterColumnOrder");
            String ClusterRowOrder = request.getParameter("ClusterRowOrder");
            String heatmapState = request.getParameter("heatmapState");
            String heatmapAxis = request.getParameter("heatmapAxis");
            String colorScheme = request.getParameter("colorScheme");
            String filterOffset = request.getParameter("filterOffset");

            Map<String, String> key = new HashMap<>();
            key.put("sampleFilter", (sampleFilter == null) ? "" : sampleFilter);
            key.put("pageAt", (pageAt == null) ? "" : pageAt);
            key.put("regex", (regex == null) ? "" : regex);
            key.put("regexGN", (regexGN == null) ? "" : regexGN);
            key.put("upFold", (upFold == null) ? "" : upFold);
            key.put("downFold", (downFold == null) ? "" : downFold);
            key.put("upZscore", (upZscore == null) ? "" : upZscore);
            key.put("downZscore", (downZscore == null) ? "" : downZscore);
            key.put("significantGenes", (significantGenes == null) ? "" : significantGenes);
            key.put("ClusterRowOrder", (ClusterRowOrder == null) ? "" : ClusterRowOrder);
            key.put("ClusterColumnOrder", (ClusterColumnOrder == null) ? "" : ClusterColumnOrder);
            key.put("heatmapState", (heatmapState == null) ? "" : heatmapState);
            key.put("heatmapAxis", (heatmapAxis == null) ? "" : heatmapAxis);
            key.put("colorScheme", (colorScheme == null) ? "" : colorScheme);
            key.put("filterOffset", (filterOffset == null) ? "" : filterOffset);

            long pk = (new Random()).nextLong();
            SessionHandler.getInstance().set(SessionHandler.PREFIX + pk, jsonWriter.writeValueAsString(key));

            response.setContentType("text/html");
            PrintWriter writer = response.getWriter();
            writer.write("" + pk);
            writer.close();

            break;
        }
        case "getState": {

            String keyType = request.getParameter("keyType");
            String pk = request.getParameter("random");

            if ((pk != null) && (keyType != null)) {
                JSONArray results = new JSONArray();
                JSONObject a = new JSONObject();
                Map<String, String> key = jsonReader
                        .readValue(SessionHandler.getInstance().get(SessionHandler.PREFIX + pk));
                if (key != null) {
                    a.put("sampleFilter", key.get("sampleFilter"));
                    a.put("pageAt", key.get("pageAt"));
                    a.put("regex", key.get("regex"));
                    a.put("regexGN", key.get("regexGN"));
                    a.put("upFold", key.get("upFold"));
                    a.put("downFold", key.get("downFold"));
                    a.put("upZscore", key.get("upZscore"));
                    a.put("downZscore", key.get("downZscore"));
                    a.put("significantGenes", key.get("significantGenes"));
                    a.put("ClusterRowOrder", key.get("ClusterRowOrder"));
                    a.put("ClusterColumnOrder", key.get("ClusterColumnOrder"));
                    a.put("heatmapState", key.get("heatmapState"));
                    a.put("heatmapAxis", key.get("heatmapAxis"));
                    a.put("colorScheme", key.get("colorScheme"));
                    a.put("filterOffset", key.get("filterOffset"));
                }
                results.add(a);
                response.setContentType("application/json");
                PrintWriter writer = response.getWriter();
                results.writeJSONString(writer);
                writer.close();
            }
            break;
        }
        case "downloadFeatures": {
            String featureIds = request.getParameter("featureIds");
            String fileFormat = request.getParameter("fileFormat");
            String fileName = "Table_Gene";

            List<String> tableHeader = DownloadHelper.getHeaderForFeatures();
            List<String> tableField = DownloadHelper.getFieldsForFeatures();
            JSONArray tableSource = new JSONArray();

            DataApiHandler dataApi = new DataApiHandler(request);

            SolrQuery query = new SolrQuery("feature_id:(" + featureIds.replaceAll(",", " OR ") + ")");
            query.setFields(StringUtils.join(DownloadHelper.getFieldsForFeatures(), ","));
            query.setRows(dataApi.MAX_ROWS);

            LOGGER.trace("downloadFeatures: [{}] {}", SolrCore.FEATURE.getSolrCoreName(), query);

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

            final Map resp = jsonReader.readValue(apiResponse);
            final Map respBody = (Map) resp.get("response");

            final List<GenomeFeature> features = (List) dataApi.bindDocuments((List) respBody.get("docs"),
                    GenomeFeature.class);

            for (final GenomeFeature feature : features) {
                tableSource.add(feature.toJSONObject());
            }

            final 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 {
                response.setContentType("application/octetstream");
                response.addProperty("Content-Disposition",
                        "attachment; filename=\"" + fileName + "." + fileFormat + "\"");

                response.getWriter().write(excel.writeToTextFile());
            }
        }
        }
    }
}

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

private void processFeatureIds(ResourceRequest request, ResourceResponse response) throws IOException {
    String cId = request.getParameter("cId");
    String cType = request.getParameter("cType");
    String map = request.getParameter("map");
    String algorithm = request.getParameter("algorithm");
    String ec_number = request.getParameter("ec_number");
    String featureList = request.getParameter("featureList");

    DataApiHandler dataApi = new DataApiHandler(request);
    JSONArray items = new JSONArray();

    try {/*from  w w  w  .  j av a2s. c  om*/
        SolrQuery query = new SolrQuery("*:*");

        if (cType != null && cType.equals("taxon")) {
            query.addFilterQuery(
                    SolrCore.GENOME.getSolrCoreJoin("genome_id", "genome_id", "taxon_lineage_ids:" + cId));
        } else if (cType != null && cType.equals("genome")) {
            query.addFilterQuery(
                    SolrCore.GENOME.getSolrCoreJoin("genome_id", "genome_id", "genome_id:(" + cId + ")"));
        }

        if (map != null && !map.equals("")) {
            query.addFilterQuery("pathway_id:(" + map.replaceAll(",", " OR ") + ")");
        }

        if (algorithm != null && !algorithm.equals("")) {
            query.addFilterQuery("annotation:(" + algorithm + ")");
        }

        if (ec_number != null && !ec_number.equals("")) {
            query.addFilterQuery("ec_number:(" + ec_number.replaceAll(",", " OR ") + ")");
        }

        if (featureList != null && !featureList.equals("")) {
            query.addFilterQuery("feature_id:(" + featureList.replaceAll(",", " OR ") + ")");
        }

        query.setRows(dataApi.MAX_ROWS).setFields("feature_id");

        LOGGER.debug("processFeatureIds: [{}]{}", SolrCore.PATHWAY.getSolrCoreName(), query);

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

        Map resp = jsonReader.readValue(apiResponse);
        Map respBody = (Map) resp.get("response");

        List<Map> features = (List<Map>) respBody.get("docs");

        for (Map feature : features) {
            items.add(feature.get("feature_id").toString());
        }
    } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
    }

    items.writeJSONString(response.getWriter());
}

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

@SuppressWarnings("unchecked")
public void serveResource(ResourceRequest request, ResourceResponse response)
        throws PortletException, IOException {
    String action_type = request.getParameter("action_type");
    String action = request.getParameter("action");

    if (action_type != null && action != null) {

        if (action_type.equals("WSSupport")) {

            switch (action) {
            case "inlinestatus": {

                String linkWorkspace = "";
                if (isLoggedIn(request)) {
                    linkWorkspace = "<a class=\"arrow-white-e\" href=\"/workspace/\">WORKSPACE: HOME</a>";
                }//from  w w  w. j a va2s  . c  o  m

                response.setContentType("text/plain");
                PrintWriter writer = response.getWriter();
                writer.write(linkWorkspace);
                writer.close();
                break;
            }
            case "getGenomeGroupList": {
                JSONArray res = new JSONArray();

                if (isLoggedIn(request)) {
                    String token = getAuthorizationToken(request);
                    String pathGenomeGroup = getUserWorkspacePath(request, DEFAULT_WORKSPACE_NAME)
                            + "/Genome Groups";

                    try {
                        DataApiHandler dataApi = new DataApiHandler(request);
                        Workspace serviceWS = new Workspace(WORKSPACE_API_URL, token);
                        list_params params = new list_params();
                        params.paths = Arrays.asList(pathGenomeGroup);
                        Map<String, List<ObjectMeta>> resp = serviceWS.ls(params);

                        List<ObjectMeta> groupList = resp.get(pathGenomeGroup);

                        // sort by name
                        Comparator comparator = new GenomeGroupNameComparator();
                        Collections.sort(groupList, comparator);

                        JSONParser jsonParser = new JSONParser();

                        for (ObjectMeta group : groupList) {
                            LOGGER.trace("reading: {},{},{},{},{},{},{}", group.e_1, group.e_2, group.e_3,
                                    group.e_5, group.e_7, group.e_8, group.e_9);

                            if ("genome_group".equals(group.e_2)) {
                                JSONObject grp = new JSONObject();
                                String genomeGroupId = group.e_5; // e_5, object id
                                grp.put("id", genomeGroupId);
                                grp.put("name", group.e_1); // e_1, object name
                                grp.put("leaf", false);
                                grp.put("collapsed", true);

                                JSONArray children = new JSONArray();
                                // get genome associated in this group
                                get_params gp = new get_params();
                                gp.objects = Arrays.asList(group.e_3 + group.e_1); // e_3, path
                                gp.metadata_only = 0;
                                gp.adminmode = 0;

                                LOGGER.trace("requesting.. {}", group.e_3 + group.e_1);

                                try {
                                    List<Workspace_tuple_2> r = serviceWS.get(gp);

                                    for (Workspace_tuple_2 item : r) {
                                        if (item.e_2 != null) {

                                            JSONObject groupInfo = (JSONObject) jsonParser.parse(item.e_2); // objectMeta
                                            List<String> genomeIdList = (List<String>) ((JSONObject) groupInfo
                                                    .get("id_list")).get("genome_id");
                                            Set<String> genomeIdSet = new HashSet<>(genomeIdList);
                                            genomeIdSet.remove("");

                                            SolrQuery query = new SolrQuery("genome_id:("
                                                    + StringUtils.join(genomeIdSet, " OR ") + ")");
                                            query.setRows(10000).addField("genome_id,genome_name,taxon_id");

                                            LOGGER.trace("[{}] {}", SolrCore.GENOME.getSolrCoreName(), query);
                                            String apiResponse = dataApi.solrQuery(SolrCore.GENOME, query);
                                            Map respApi = jsonReader.readValue(apiResponse);
                                            Map respBody = (Map) respApi.get("response");
                                            List<Genome> genomes = dataApi.bindDocuments(
                                                    (List<Map>) respBody.get("docs"), Genome.class);

                                            Map<String, Genome> genomeHash = new LinkedHashMap<>();
                                            for (Genome g : genomes) {
                                                genomeHash.put(g.getId(), g);
                                            }

                                            for (String genomeId : genomeIdSet) {
                                                Genome genome = genomeHash.get(genomeId);

                                                if (genome != null) {
                                                    JSONObject leafGenome = new JSONObject();
                                                    leafGenome.put("id", genomeId);
                                                    leafGenome.put("parentID", genomeGroupId);
                                                    leafGenome.put("name", genome.getGenomeName());
                                                    leafGenome.put("leaf", true);
                                                    leafGenome.put("genome_id", genomeId);
                                                    leafGenome.put("taxon_id", genome.getTaxonId());

                                                    children.add(leafGenome);
                                                }
                                            }
                                        }
                                    }

                                    grp.put("children", children);
                                    res.add(grp);
                                } catch (Exception ex) {
                                    LOGGER.error(ex.getMessage(), ex);
                                }
                            }
                        }
                    } catch (Exception e) {
                        LOGGER.error(e.getMessage(), e);
                    }
                }

                response.setContentType("application/json");
                PrintWriter writer = response.getWriter();
                res.writeJSONString(writer);
                writer.close();
                break;
            }
            case "getGroupList": {
                String grp_type = request.getParameter("group_type");
                JSONArray res = new JSONArray();

                String grp_path = getUserWorkspacePath(request, DEFAULT_WORKSPACE_NAME);
                String grp_obj_type;
                switch (grp_type) {
                case "Genome":
                    grp_path += "/Genome Groups";
                    grp_obj_type = "genome_group";
                    break;
                case "Feature":
                    grp_path += "/Feature Groups";
                    grp_obj_type = "feature_group";
                    break;
                case "ExpressionExperiment":
                    grp_path += "/Experiment Groups";
                    grp_obj_type = "experiment_group";
                    break;
                default:
                    grp_obj_type = "";
                    //
                }

                String token = getAuthorizationToken(request);
                Workspace serviceWS = new Workspace(WORKSPACE_API_URL, token);
                list_params params = new list_params();
                params.paths = Arrays.asList(grp_path);

                try {
                    Map<String, List<ObjectMeta>> resp = serviceWS.ls(params);
                    List<ObjectMeta> groupList = resp.get(grp_path);

                    for (ObjectMeta group : groupList) {
                        String groupId = group.e_5; // e_5, object id
                        String groupName = group.e_1; // e_1, object name
                        // TODO: how to read group description???

                        if (grp_obj_type.equals(group.e_2)) {
                            JSONObject grp = new JSONObject();
                            grp.put("name", groupName);
                            grp.put("description", "");
                            grp.put("tag", "");
                            grp.put("id", groupId);

                            res.add(grp);
                        }
                    }
                } catch (Exception e) {
                    LOGGER.error(e.getMessage(), e);
                }

                response.setContentType("application/json");
                PrintWriter writer = response.getWriter();
                res.writeJSONString(writer);
                writer.close();
                break;
            }
            default:
                response.setContentType("application/json");
                response.getWriter().write("sorry");
                response.getWriter().close();
                break;
            }
        } else if (action_type.equals("GSESupport")) {
            //            if (action.equals("group_list")) {
            //               // PersistentCartGroup group = null;
            //               JSONArray groups = ws.getGroups();
            //               StringBuilder output = new StringBuilder();
            //
            //               output.append("<group_set>\n");
            //               for (Object aGroup : groups) {
            //                  JSONObject group = (JSONObject) aGroup;
            //
            //                  output.append("\t<group>\n");
            //                  output.append("\t\t<idx>").append(group.get("tagId")).append("</idx>\n");
            //                  output.append("\t\t<name>").append(group.get("name")).append("</name>\n");
            //                  output.append("\t</group>\n");
            //               }
            //               output.append("</group_set>");
            //
            //               response.setContentType("text/xml");
            //               response.getWriter().write(output.toString());
            //               response.getWriter().close();
            //            }
            //            else if (action.equals("groups")) {
            //               String strTagIds = request.getParameter("groupIds");
            //               JSONObject filter = new JSONObject();
            //               filter.put("key", "tagId");
            //               filter.put("value", strTagIds);
            //
            //               JSONArray groups = ws.getGroups(filter);
            //               StringBuilder o = new StringBuilder();
            //
            //               o.append("<group_set>\n");
            //
            //               for (Object aGroup : groups) {
            //                  JSONObject group = (JSONObject) aGroup;
            //
            //                  o.append("\t<group>\n");
            //                  o.append("\t\t<name>").append(group.get("name")).append("</name>\n");
            //                  o.append("\t\t<description>").append(((group.get("desc") != null) ? group.get("desc") : "")).append("</description>\n");
            //                  o.append("\t\t<members>\n");
            //
            //                  List<JSONObject> members = ws.findMappingByTagId(Integer.parseInt(group.get("tagId").toString()));
            //
            //                  Set<Integer> trackIds = new HashSet<>();
            //                  for (JSONObject member : members) {
            //                     trackIds.add(Integer.parseInt(member.get("trackId").toString()));
            //                  }
            //                  JSONArray tracks = ws.getTracks(trackIds);
            //                  for (Object track : tracks) {
            //                     JSONObject member = (JSONObject) track;
            //                     o.append(member.get("internalId")).append("\n");
            //                  }
            //
            //                  o.append("\t\t</members>\n");
            //                  o.append("\t</group>\n");
            //               }
            //               o.append("</group_set>");
            //
            //               //
            //               response.setContentType("text/xml");
            //               response.getWriter().write(o.toString());
            //               response.getWriter().close();
            //            }
            //            else if (action.equals("items")) {
            //
            //               Set<Integer> trackIds = new HashSet<>();
            //               String strTagIds = request.getParameter("groupIds");
            //               String groupType;
            //               String _tagId = null;
            //
            //               if (strTagIds.contains(",")) {
            //                  for (String tagId : strTagIds.split(",")) {
            //                     List<JSONObject> mappings = ws.findMappingByTagId(Integer.parseInt(tagId));
            //                     for (JSONObject mapping : mappings) {
            //                        trackIds.add(Integer.parseInt(mapping.get("trackId").toString()));
            //                     }
            //                     _tagId = tagId;
            //                  }
            //               }
            //               else {
            //                  List<JSONObject> mappings = ws.findMappingByTagId(Integer.parseInt(strTagIds));
            //                  for (JSONObject mapping : mappings) {
            //                     trackIds.add(Integer.parseInt(mapping.get("trackId").toString()));
            //                  }
            //                  _tagId = strTagIds;
            //               }
            //
            //               JSONArray tracks = ws.getTracks(trackIds);
            //
            //               // get group type
            //               JSONObject filter = new JSONObject();
            //               filter.put("key", "tagId");
            //               filter.put("value", _tagId);
            //               JSONArray gr = ws.getTags(filter);
            //               groupType = ((JSONObject) gr.get(0)).get("type").toString();
            //
            //               JSONObject res;
            //               Map<String, Object> key = new HashMap<>();
            //               key.put("tracks", tracks);
            //
            //               StringBuilder out_sb = new StringBuilder();
            //
            //               if (groupType.equals("Feature")) {
            //                  res = solr.getFeaturesByID(key);
            //                  JSONArray items = (JSONArray) res.get("results");
            //
            //                  out_sb.append(
            //                        "Feature ID\tGenome Name\tAccession\tPATRIC ID\tRefSeq Locus Tag\tAlt Locus Tag\tAnnotation\tFeature Type\tStart\tEnd\tLength(NT)\tStrand\t");
            //                  out_sb.append("Protein Id\tLength(AA)\tGene Symbol\tProduct\n");
            //
            //                  for (Object aItem : items) {
            //                     JSONObject item = (JSONObject) aItem;
            //                     out_sb.append(item.get("feature_id")).append("\t");
            //                     out_sb.append(item.get("genome_name")).append("\t");
            //                     out_sb.append(item.get("accession")).append("\t");
            //                     out_sb.append(item.get("seed_id")).append("\t");
            //                     out_sb.append((item.get("refseq_locus_tag") != null ? item.get("refseq_locus_tag") : "")).append("\t");
            //                     out_sb.append((item.get("alt_locus_tag") != null ? item.get("alt_locus_tag") : "")).append("\t");
            //                     out_sb.append(item.get("annotation")).append("\t");
            //                     out_sb.append(item.get("feature_type")).append("\t");
            //                     out_sb.append(item.get("start")).append("\t");
            //                     out_sb.append(item.get("end")).append("\t");
            //                     out_sb.append(item.get("na_length")).append("\t");
            //                     out_sb.append(item.get("strand")).append("\t");
            //                     out_sb.append((item.get("protein_id") != null ? item.get("protein_id") : "")).append("\t");
            //                     out_sb.append(item.get("aa_length")).append("\t");
            //                     out_sb.append((item.get("gene") != null ? item.get("gene") : "")).append("\t");
            //                     out_sb.append(item.get("product")).append("\n");
            //                  }
            //               }
            //               else if (groupType.equals("Genome")) {
            //                  res = solr.getGenomesByID(key);
            //                  JSONArray items = (JSONArray) res.get("results");
            //
            //                  out_sb.append("Genome ID\tGenome Name\tStatus\tHost\tDisease\tIsolation Country\tCollection Date\tCompletion Date\n");
            //
            //                  for (Object aItem : items) {
            //                     JSONObject item = (JSONObject) aItem;
            //                     out_sb.append(item.get("genome_id")).append("\t");
            //                     out_sb.append(item.get("genome_name")).append("\t");
            //                     out_sb.append(item.get("genome_status")).append("\t");
            //                     out_sb.append((item.get("host_name") != null ? item.get("host_name") : "")).append("\t");
            //                     out_sb.append((item.get("disease") != null ? item.get("disease") : "")).append("\t");
            //                     out_sb.append((item.get("isolation_country") != null ? item.get("isolation_country") : "")).append("\t");
            //                     out_sb.append((item.get("collection_date") != null ? item.get("collection_date") : "")).append("\t");
            //                     out_sb.append((item.get("completion_date") != null ? item.get("completion_date") : "")).append("\n");
            //                  }
            //               }
            //               else if (groupType.equals("ExpressionExperiment")) {
            //                  List<String> collectionIds = new ArrayList<>();
            //
            //                  JSONArray exptracks;
            //                  JSONArray tracksPATRIC = new JSONArray();
            //
            //                  if (key.containsKey("tracks")) {
            //                     exptracks = (JSONArray) key.get("tracks");
            //
            //                     if (exptracks.size() > 0) {
            //                        for (Object exptrack : exptracks) {
            //                           JSONObject tr = (JSONObject) exptrack;
            //                           try {
            //                              Integer.parseInt(tr.get("internalId").toString());
            //                              tracksPATRIC.add(tr);
            //                           }
            //                           catch (NumberFormatException nfe) {
            //                              collectionIds.add(tr.get("internalId").toString());
            //                           }
            //                        }
            //                     }
            //                  }
            //
            //                  out_sb.append("Experiment Id\tSource\tTitle\tData Type\tAccession\n");
            //
            //                  if (tracksPATRIC.size() > 0) {
            //                     Map<String, Object> keyPATRIC = new HashMap<>();
            //                     keyPATRIC.put("tracks", tracksPATRIC);
            //                     res = solr.getExperimentsByID(keyPATRIC);
            //
            //                     JSONArray items = (JSONArray) res.get("results");
            //                     for (Object aItem : items) {
            //                        JSONObject item = (JSONObject) aItem;
            //                        out_sb.append(item.get("expid")).append("\t");
            //                        out_sb.append("PATRIC\t");
            //                        out_sb.append(item.get("title")).append("\t");
            //                        out_sb.append("Transcriptomics\t"); // TODO: modify later
            //                        out_sb.append((item.get("accession") != null ? item.get("accession") : "")).append("\n");
            //                     }
            //                  }
            //
            //                  if (collectionIds.size() > 0) {
            //                     PolyomicHandler polyomic = getPolyomicHandler(request);
            //                     res = polyomic.getExperiments(collectionIds);
            //
            //                     JSONArray items = (JSONArray) res.get("results");
            //                     for (Object aItem : items) {
            //                        JSONObject item = (JSONObject) aItem;
            //                        out_sb.append(item.get("expid")).append("\t");
            //                        out_sb.append("me\t");
            //                        out_sb.append(item.get("title")).append("\t");
            //                        out_sb.append((item.get("data_type") != null ? item.get("data_type") : "")).append("\t");
            //                        out_sb.append((item.get("accession") != null ? item.get("accession") : "")).append("\n");
            //                     }
            //                  }
            //               }
            //               else {
            //                  // error
            //               }
            //
            //               response.setContentType("text/plain");
            //               response.getWriter().write(out_sb.toString());
            //               response.getWriter().close();
            //            }
        } else if (action_type.equals("LoginStatus")) {
            if (action.equals("getLoginStatus")) {
                if (!isLoggedIn(request)) {
                    response.setContentType("text/plain");
                    response.getWriter().write("false");
                    response.getWriter().close();
                } else {
                    response.setContentType("text/plain");
                    response.getWriter().write("true");
                    response.getWriter().close();
                }
            }
        } else if (action_type.equals("HTTPProvider")) {

            UIPreference uiPref = getValidUIPreference(request);

            switch (action) {
            case "storage":
                if (request.getMethod().equals("GET")) {

                    String strUIPref = uiPref.getStateList().toJSONString();

                    response.getWriter().write(strUIPref);
                    response.getWriter().close();
                } else if (request.getMethod().equals("POST")) {

                    JSONParser parser = new JSONParser();
                    JSONObject param;
                    JSONArray params;
                    try {
                        Object rt = parser.parse(request.getReader());
                        if (rt instanceof JSONObject) {
                            param = (JSONObject) rt;
                            uiPref.setState(param);
                        } else if (rt instanceof JSONArray) {
                            params = (JSONArray) rt;
                            uiPref.setStateList(params);
                        } else {
                            LOGGER.error(rt.toString());
                        }

                        this.saveUIPreference(request, uiPref);
                    } catch (ParseException e) {
                        LOGGER.error(e.getMessage(), e);
                    }

                    response.getWriter().write("");
                    response.getWriter().close();
                }
                break;
            case "remove":
                if (request.getParameter("name") != null) {
                    uiPref.resetState(request.getParameter("name"));
                    this.saveUIPreference(request, uiPref);
                }

                response.getWriter().write("");
                response.getWriter().close();
                break;
            case "reset":
                uiPref.reset();
                this.saveUIPreference(request, uiPref);

                response.getWriter().write("");
                response.getWriter().close();
                break;
            }
        }
    }
}

From source file:org.jitsi.videobridge.rest.HandlerImpl.java

/**
 * Lists the <tt>Conference</tt>s of (the associated) <tt>Videobridge</tt>.
 *
 * @param baseRequest the original unwrapped {@link Request} object
 * @param request the request either as the {@code Request} object or a
 * wrapper of that request/* ww  w.  j  a v  a 2 s  . c  o m*/
 * @param response the response either as the {@code Response} object or a
 * wrapper of that response
 * @throws IOException
 * @throws ServletException
 */
private void doGetConferencesJSON(Request baseRequest, HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {
    Videobridge videobridge = getVideobridge();

    if (videobridge == null) {
        response.setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
    } else {
        Conference[] conferences = videobridge.getConferences();
        List<ColibriConferenceIQ> conferenceIQs = new ArrayList<>();

        for (Conference conference : conferences) {
            ColibriConferenceIQ conferenceIQ = new ColibriConferenceIQ();

            conferenceIQ.setID(conference.getID());
            conferenceIQs.add(conferenceIQ);
        }

        JSONArray conferencesJSONArray = JSONSerializer.serializeConferences(conferenceIQs);

        if (conferencesJSONArray == null)
            conferencesJSONArray = new JSONArray();

        response.setStatus(HttpServletResponse.SC_OK);
        conferencesJSONArray.writeJSONString(response.getWriter());
    }
}

From source file:org.pentaho.di.trans.steps.salesforce.SalesforceConnection.java

@SuppressWarnings("unchecked")
private String buildJsonQueryResult(QueryResult queryResult) throws KettleException {
    JSONArray list = new JSONArray();
    for (SObject sobject : queryResult.getRecords()) {
        list.add(buildJSONSObject(sobject));
    }/*from   www .  jav  a2  s. c o m*/
    StringWriter sw = new StringWriter();
    try {
        list.writeJSONString(sw);
    } catch (IOException e) {
        throw new KettleException(e);
    }
    return sw.toString();
}

From source file:servlets.StudentsServlet.java

/**
 * Handles the HTTP <code>GET</code> method.
 *
 * @param request servlet request/*from w ww.  j ava2s  . c  o m*/
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try (PrintWriter out = response.getWriter()) {
        try {
            StudentDAO stDao = new StudentDAO();
            List<Student> students = stDao.getAllStudents();
            JSONArray arr = new JSONArray();
            for (Student st : students) {
                JSONObject obj = new JSONObject();
                obj.put("id", st.getId());
                obj.put("name", st.getName());
                IdCard idCard = st.getIdCard();
                JSONObject cardObj = new JSONObject();
                cardObj.put("id", idCard.getId());
                cardObj.put("idCardNumber", idCard.getIdNumber());
                obj.put("idCard", cardObj);
                arr.add(obj);
            }
            arr.writeJSONString(out);
        } catch (Exception e) {
            out.println(e.getMessage());
        }
    }
}

From source file:smops.dao.BusinessManager.java

public static void prepareReport(int offset, int limit) {
    JSONArray all_json = new JSONArray();
    final List<Business> bizs = getBusinesses(offset, limit);
    for (Business biz : bizs) {
        if (getValidFormsCount(biz) == 0) {
            continue;
        }/*  w w w .jav  a2  s.c o  m*/
        //            System.out.println("");
        //            System.out.println("[" + biz.getName() + "] " + biz.getUrl());
        JSONObject biz_json = new JSONObject();
        biz_json.put("name", biz.getName());
        //            biz_json.put("url", biz.getUrl());
        JSONArray forms_json = new JSONArray();
        for (Object f : biz.getForms()) {
            Form form = (Form) f;
            if (form.getPurpose().equals("unknown")) {
                continue;
            }
            JSONObject f_json = new JSONObject();
            f_json.put("page_url", " " + form.getPageUrl() + " ");
            f_json.put("purpose", form.getPurpose());
            //                System.out.println("\t" + form.getPageUrl());
            //                System.out.print("\t[" + form.getPurpose() + "]: ");
            String fields_str = "";
            for (Object inp : form.getFields()) {
                Field field = (Field) inp;
                if (field.getInfoType().equals("unknown")) {
                    continue;
                }
                fields_str += field.getInfoType() + " ";
            }
            f_json.put("fields", fields_str);
            forms_json.add(f_json);
            //                System.out.println(fields_str);
        }
        if (!forms_json.isEmpty()) {
            biz_json.put("forms", forms_json);
        }
        if (!biz_json.isEmpty()) {
            all_json.add(biz_json);
        }
    }
    StringWriter out = new StringWriter();
    try {
        all_json.writeJSONString(out);
    } catch (IOException ex) {
        Logger.getLogger(BusinessManager.class.getName()).log(Level.SEVERE, null, ex);
    }
    String jsonText = out.toString();
    System.out.print(jsonText.replaceAll("/", ""));
}

From source file:smops.dao.BusinessManager.java

public static void prepareTableReport(List<Business> bizs) {
    JSONArray all_json = new JSONArray();
    for (Business biz : bizs) {
        //            if (getValidFormsCount(biz) == 0) {
        //                continue;
        //            }
        //            System.out.println("");
        //            System.out.println("[" + biz.getName() + "] " + biz.getUrl());
        JSONObject biz_json = new JSONObject();
        biz_json.put("name", biz.getName());
        //            biz_json.put("url", biz.getUrl());
        JSONArray forms_json = new JSONArray();
        for (Object f : biz.getForms()) {
            Form form = (Form) f;//w w w.j ava2s  . c o  m
            //                if (!form.getPurpose().equals("unknown")) {
            //                    continue;
            //                }
            JSONObject f_json = new JSONObject();
            f_json.put("page_url", " " + form.getPageUrl() + " ");
            f_json.put("purpose", form.getPurpose());
            System.out.print(biz.getName() + "\t");
            System.out.print(form.getPageUrl() + "\t");
            System.out.print(form.getPurpose() + "\t");
            //                System.out.println("\t" + form.getPageUrl());
            //                System.out.print("\t[" + form.getPurpose() + "]: ");
            String fields_str = "";
            List<String> fields_infoType = new ArrayList<>();
            for (Object inp : form.getFields()) {
                Field field = (Field) inp;
                fields_infoType.add(field.getInfoType());
            }
            for (String inftype : Constants.infoType_keywords.keySet()) {
                if (fields_infoType.contains(inftype)) {
                    System.out.print("1\t");
                } else {
                    System.out.print(" \t");
                }

            }
            for (Object inp : form.getFields()) {
                Field field = (Field) inp;
                if (field.getInfoType().equals("unknown")) {
                    continue;
                }
                fields_str += field.getInfoType() + " ";
            }
            f_json.put("fields", fields_str);
            forms_json.add(f_json);
            //                System.out.println(fields_str);
            System.out.println();
        }
        if (!forms_json.isEmpty()) {
            biz_json.put("forms", forms_json);
        }
        if (!biz_json.isEmpty()) {
            all_json.add(biz_json);
        }
    }
    StringWriter out = new StringWriter();
    try {
        all_json.writeJSONString(out);
    } catch (IOException ex) {
        Logger.getLogger(BusinessManager.class.getName()).log(Level.SEVERE, null, ex);
    }
    String jsonText = out.toString();
    //        System.out.print(jsonText.replaceAll("/", ""));
}

From source file:spms.server.controller.ActiveGame.java

public void sendGames() { //Through this method server can send game that client can join it  

    try {//w w w . j  ava 2  s  .  c o  m

        Session dbconn = HibernateUtil.getSessionFactory().openSession();
        dbconn.beginTransaction();
        Query q = dbconn.createQuery(
                "Select g from  ActiveGames a,GameType g where a.gameType.gameId=g.gameId order by a.createdTime");
        Query q2 = dbconn.createQuery(
                "Select a from  ActiveGames a,GameType g where a.gameType.gameId=g.gameId order by a.createdTime");
        List<ActiveGames> agames = q2.list();
        List<GameType> games = q.list();
        dbconn.close();

        JSONArray list = new JSONArray();
        Iterator<GameType> gi = games.iterator();
        Iterator<ActiveGames> ai = agames.iterator();
        while (gi.hasNext()) {
            GameType g = gi.next();
            ActiveGames a = ai.next();
            JSONObject obj = new JSONObject();
            obj.put("gameId", a.getActiveGameId());
            obj.put("gameDesc", g.getGameDesc());
            obj.put("gameName", g.getGameName());
            obj.put("gameLavel", g.getGameLavel());
            list.add(obj);

        }

        StringWriter out = new StringWriter();
        list.writeJSONString(out);

        String jsonText = out.toString();
        if (games.size() > 0)
            session.send(jsonText);
        else {
            session.send(SysConst.NO_DATA);
        }

    } catch (IOException ex) {
        Logger.getLogger(ActiveGame.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:spms.server.controller.CreateGame.java

public void sendGames() {

    try {//  w  w w . ja v a2s . c  om
        //Through this method it's called Method send which in class TCPServer and it's send the game data that chosen by client
        Session dbconn = HibernateUtil.getSessionFactory().openSession();
        dbconn.beginTransaction();
        Query q = dbconn.createQuery("Select g from GameType g");
        games = q.list();
        dbconn.close();

        JSONArray list = new JSONArray();
        Iterator<GameType> gi = games.iterator();
        while (gi.hasNext()) {
            GameType g = gi.next();
            JSONObject obj = new JSONObject();
            obj.put("gameId", g.getGameId());
            obj.put("gameDesc", g.getGameDesc());
            obj.put("gameName", g.getGameName());
            obj.put("gameLavel", g.getGameLavel());
            list.add(obj);

        }

        StringWriter out = new StringWriter();
        list.writeJSONString(out);

        String jsonText = out.toString();

        session.send(jsonText);
        // System.out.println(jsonText);

    } catch (IOException ex) {
        Logger.getLogger(CreateGame.class.getName()).log(Level.SEVERE, null, ex);
    }

}