Example usage for org.json.simple JSONArray JSONArray

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

Introduction

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

Prototype

JSONArray

Source Link

Usage

From source file:gr.iit.demokritos.cru.cps.api.GetUserProfile.java

public JSONObject processRequest() throws IOException {
    String response_code = "e0";

    ArrayList<UserProperty> up = new ArrayList<UserProperty>();

    // String filename = "/WEB-INF/configuration.properties";
    String location = (String) properties.get("location");
    String database_name = (String) properties.get("database_name");
    String username = (String) properties.get("username");
    String password = (String) properties.get("password");

    MySQLConnector mysql = new MySQLConnector(location, database_name, username, password);
    Connection connection = mysql.connectToCPSDatabase();

    try {//from w  w  w  .j  a  va2s  .c  om
        CreativityUserModellingController cumc = new CreativityUserModellingController(
                Long.parseLong(application_key), Long.parseLong(user_id.trim()));
        boolean isvalid = cumc.validateClientApplication(mysql);
        if (isvalid == true) {
            isvalid = cumc.validateUser(mysql);
            if (isvalid == true) {
                cumc.retrieveUserProfile(mysql);
                up = cumc.getUserProperties();
                response_code = "OK";
            } else {
                response_code = "e102";
            }
        } else {
            response_code = "e101";
        }
    } catch (NumberFormatException ex) {
        response_code = "e101";
        Logger.getLogger(CreateUser.class.getName()).log(Level.SEVERE, null, ex);
    } catch (SQLException ex) {
        Logger.getLogger(GetUserProfile.class.getName()).log(Level.SEVERE, null, ex);
    }

    JSONArray list = new JSONArray();

    Iterator it = up.iterator();
    int window = 0;
    JSONObject obj = new JSONObject();

    JSONObject obj_temp = new JSONObject();
    while (it.hasNext()) {

        JSONObject obj_window = new JSONObject();
        UserProperty temp_up = (UserProperty) it.next();

        obj_window.put("window", temp_up.getWindow());
        obj_window.put(temp_up.getProperty_name(), temp_up.getProperty_value());
        obj_window.put("timestamp", temp_up.getTimestamp());

        list.add(obj_window);
        //System.out.println(obj_temp.toJSONString());
        //obj_window.clear();
    }

    //obj_temp.put("properties",list);
    JSONObject main_obj = new JSONObject();

    main_obj.put("application_key", application_key);
    main_obj.put("user_id", user_id);
    main_obj.put("profile", list);
    main_obj.put("response_code", response_code);

    return main_obj;
}

From source file:de.tuttas.restful.VertretungsManager.java

/**
 * Absenz Meldung abgeben//from  ww w  .  j  a  v  a2s. c  o  m
 * @param vo Vetretungsobjekt
 * @return Vertertungsobjekt mit ID oder NULL bei Fehlern
 */
@POST
public VertretungsObject addVertretung(VertretungsObject vo) {
    Log.d("POST Vertretungsmanager");
    Vertretung v = new Vertretung(vo.getEingereichtVon(), null, vo.getAbsenzLehrer(),
            new Timestamp(vo.getAbsenzAm().getTime()), "");
    v.setKommentar(vo.getKommentar());
    v.setEingereichtAm(new Timestamp(System.currentTimeMillis()));
    Log.d("setVertertung " + v.toString());
    JSONArray ja = new JSONArray();
    if (vo.getEintraege() != null) {
        String vorschlag = "";
        klassenlehrerStorage.clear();
        vertertungslehrerStorage.clear();
        String content = loadTemplate();

        Lehrer absender = em.find(Lehrer.class, vo.getEingereichtVon());
        if (absender == null) {
            vo.setSuccess(false);
            vo.setMsg("Kann Absender Lehrer mit Krzel " + vo.getEingereichtVon() + " nicht finden!");
            return vo;
        }
        if (absender.getEMAIL() == null) {
            vo.setSuccess(false);
            vo.setMsg("Absender keine EMail Adresse hinterlegt!");
            return vo;
        }
        MailObject mo;
        try {
            mo = new MailObject(absender.getEMAIL(), null, null);
        } catch (MailFormatException ex) {
            vo.setSuccess(false);
            vo.setMsg(ex.getMessage());
            return vo;
        }
        Lehrer absentLehrer = em.find(Lehrer.class, vo.getAbsenzLehrer());
        if (absentLehrer == null) {
            vo.setSuccess(false);
            vo.setMsg("Kann Lehrer mit Krzel " + vo.getAbsenzLehrer() + " nicht finden!");
            return vo;
        }
        if (absentLehrer.getEMAIL() == null) {
            vo.setWarning(true);
            vo.getWarningMsg().add("Fr absenten Lehrer mit ID " + absentLehrer.getId()
                    + " ist keine EMail Adresse hinterlegt!");
        } else {
            try {
                mo.addCC(absentLehrer.getEMAIL());
            } catch (AddressException ex) {
                vo.setWarning(true);
                vo.getWarningMsg().add(ex.getMessage());
            } catch (MailFormatException ex) {
                vo.setWarning(true);
                vo.getWarningMsg().add(ex.getMessage());
            }
        }

        String subject = "Vertretungsvorschlag fr " + absentLehrer.getVNAME() + " " + absentLehrer.getNNAME()
                + "(" + absentLehrer.getId() + ") am " + vo.getAbsenzAm().toString();
        mo.setSubject(subject);
        content = content.replace("[[ABSENZ]]", absentLehrer.getVNAME() + " " + absentLehrer.getNNAME());
        content = content.replace("[[DATUM]]", vo.getAbsenzAm().toString());
        content = content.replace("[[ABS]]", absender.getVNAME() + " " + absender.getNNAME());
        if (vo.getKommentar() != null) {
            content = content.replace("[[KOMMENTAR]]", vo.getKommentar());
        } else {
            content = content.replace("[[KOMMENTAR]]", "");
        }

        for (Vetretungseintrag e : vo.getEintraege()) {
            ja.add(e.toJson());

            Klasse klasse = em.find(Klasse.class, e.getIdKlasse());
            if (klasse == null) {
                vo.setWarning(true);
                vo.getWarningMsg().add("Kann Klasse mit ID " + e.getIdKlasse() + " nicht finden!");
            } else {
                String bem = "Vetretungsregelung fr " + vo.getAbsenzLehrer() + ":";
                String von = "";
                if (e.getAktion().equals("entfllt")) {
                    bem += e.getAktion() + " " + e.getKommentar();
                    von = vo.getEingereichtVon();
                } else {
                    bem += e.getAktion() + " durch " + e.getVertreter() + " " + e.getKommentar();
                    von = e.getVertreter();
                }
                String std = "";
                if (e.getStunde() <= 9) {
                    std += "0" + e.getStunde();
                } else {
                    std += "" + e.getStunde();
                }
                Verlauf ver = new Verlauf(e.getIdKlasse(), new Timestamp(vo.getAbsenzAm().getTime()), std, von,
                        "LF19", "N.N", bem, "");
                em.merge(ver);
                em.flush();

                if (klasse.getID_LEHRER() == null) {
                    vo.setWarning(true);
                    vo.getWarningMsg()
                            .add("Der Klasse " + e.getKlasse() + " ist kein Klassenlehrer zugeordnet!");
                } else {
                    Lehrer klassenlehrer = em.find(Lehrer.class, klasse.getID_LEHRER());
                    if (klassenlehrer == null) {
                        vo.setWarning(true);
                        vo.getWarningMsg().add("Kann Klassenlehrer der Klasse " + klasse.getKNAME()
                                + " mit Krzel " + klasse.getID_LEHRER() + " nicht finden!");
                    } else {
                        if (klassenlehrer.getEMAIL() == null) {
                            vo.setWarning(true);
                            vo.getWarningMsg().add("Dem Klassenlehrer der Klasse " + klasse.getKNAME()
                                    + " mit Krzel " + klasse.getID_LEHRER() + " ist keine EMail zugeordnet!");
                        } else {
                            if (!klassenlehrerStorage.containsKey(klassenlehrer.getId())) {
                                klassenlehrerStorage.put(klassenlehrer.getId(), klassenlehrer.getEMAIL());
                                try {
                                    mo.addCC(klassenlehrer.getEMAIL());
                                } catch (AddressException ex) {
                                    vo.setSuccess(false);
                                    vo.setMsg(ex.getMessage());
                                    return vo;
                                } catch (MailFormatException ex) {
                                    vo.setWarning(true);
                                    vo.getWarningMsg().add(ex.getMessage());
                                }
                            }
                        }
                    }
                }
            }

            if (e.getVertreter() != null && !e.getVertreter().equals("")) {
                Lehrer vertreter = em.find(Lehrer.class, e.getVertreter());
                if (vertreter == null) {
                    vo.setWarning(true);
                    vo.getWarningMsg()
                            .add("Kann Vertretungslehrer mit Krzel " + e.getVertreter() + " nicht finden!");
                } else {
                    vorschlag += " Stunde:" + e.getStunde() + " Klasse:" + e.getKlasse() + " ("
                            + klasse.getID_LEHRER() + ") [" + e.getAktion() + "] " + vertreter.getVNAME() + " "
                            + vertreter.getNNAME() + " (" + vertreter.getId() + ") " + e.getKommentar() + "\n";
                    if (vertreter.getEMAIL() == null) {
                        vo.setWarning(true);
                        vo.getWarningMsg().add("Dem Vertretungslehrer mit Krzel " + vertreter.getId()
                                + " ist keine EMail zugeordnet!");
                    } else {
                        if (!vertertungslehrerStorage.containsKey(vertreter.getEMAIL())) {
                            vertertungslehrerStorage.put(vertreter.getId(), vertreter.getEMAIL());
                        }
                        try {
                            mo.addCC(vertreter.getEMAIL());
                        } catch (AddressException ex) {
                            Logger.getLogger(VertretungsManager.class.getName()).log(Level.SEVERE, null, ex);
                        } catch (MailFormatException ex) {
                            vo.setWarning(true);
                            vo.getWarningMsg().add(ex.getMessage());
                        }
                    }
                }
            } else {
                vorschlag += " Stunde:" + e.getStunde() + " Klasse:" + e.getKlasse() + " ("
                        + klasse.getID_LEHRER() + ") [" + e.getAktion() + "] " + e.getKommentar() + "\n";
            }
        }
        content = content.replace("[[VOSCHLAEGE]]", vorschlag);
        mo.setContent(content);
        v.setJsonString(ja.toJSONString());
        em.merge(v);
        em.flush();

        try {
            mo.addRecipient("stundenplan@mmbbs.de");
        } catch (AddressException ex) {
            Logger.getLogger(VertretungsManager.class.getName()).log(Level.SEVERE, null, ex);
        } catch (MailFormatException ex) {
            Logger.getLogger(VertretungsManager.class.getName()).log(Level.SEVERE, null, ex);
        }

        MailSender.getInstance().sendMail(mo);
        vo.setSuccess(true);
        vo.setMsg(
                "Vertretung eingereicht! EMail vesrendet an stundenplan@mmbbs.de und Kollegen und Kolleginnen benachtichtig!");

    } else {
        vo.setSuccess(false);
        vo.setMsg("Keine Vertretungseintrge");
    }
    return vo;
}

From source file:jp.aegif.nemaki.rest.UserResource.java

@SuppressWarnings("unchecked")
@GET//  www  .j  a v a2 s.  c o  m
@Path("/list")
@Produces(MediaType.APPLICATION_JSON)
public String list(@PathParam("repositoryId") String repositoryId) {
    boolean status = true;
    JSONObject result = new JSONObject();
    JSONArray listJSON = new JSONArray();
    JSONArray errMsg = new JSONArray();

    // Get all users list
    List<User> userList;
    try {
        userList = principalService.getUsers(repositoryId);
        for (User user : userList) {
            JSONObject userJSON = convertUserToJson(user);
            listJSON.add(userJSON);
        }
        result.put("users", listJSON);
    } catch (Exception e) {
        status = false;
        e.printStackTrace();
        addErrMsg(errMsg, ITEM_ALLUSERS, ErrorCode.ERR_LIST);
    }
    result = makeResult(status, result, errMsg);
    return result.toJSONString();
}

From source file:co.edu.UNal.ArquitecturaDeSoftware.Bienestar.Vista.App.Admin.CUDEventos.java

protected static void consultarDocentesEnTallerId(HttpServletRequest request, HttpServletResponse response)
        throws IOException {
    ArrayList<UsuarioEntity> usuarios = new ArrayList<>();
    usuarios = CtrlAdmin.obtenerUsuariosEnTaller(Integer.parseInt(request.getParameter("1")),
            Integer.parseInt(request.getParameter("2")), Integer.parseInt(request.getParameter("3")));

    response.setContentType("application/json;charset=UTF-8");
    PrintWriter out = response.getWriter();

    JSONArray list1 = new JSONArray();
    for (UsuarioEntity usuario : usuarios) {
        JSONObject obj = new JSONObject();
        obj.put("id", usuario.getIdUsuario());
        obj.put("titulo", usuario.getNombres() + " " + usuario.getApellidos());
        list1.add(obj);//from   ww w . ja  v  a2  s .  c om
    }
    out.print(list1);
}

From source file:com.avatarproject.core.storage.UserCache.java

private static JSONArray getUserCache() {
    BufferedReader reader = null;
    JSONParser parser = new JSONParser();
    JSONArray array = new JSONArray(); //Create new JSON array.
    try {/*w  w w.  ja v a2 s.c om*/
        reader = new BufferedReader(new FileReader(usercache));
        if (reader.readLine() != null) { //Check if file is empty.
            Object obj = parser.parse(new FileReader(usercache));
            array = (JSONArray) obj;
        }
        reader.close(); //Close the reader.
    } catch (Exception e) {
        e.printStackTrace();
    }
    return array;
}

From source file:gwap.rest.NewPicture.java

@GET
@Path("/newpicture")
@Produces(MediaType.APPLICATION_JSON)/*from  w w w . j  av  a  2  s. c  om*/
public Response getRandomNewPictures(@QueryParam("count") String count, @QueryParam("userid") String deviceId) {
    List<ArtResource> artResources = getRandomPictures(count, deviceId, ArtResource.ORIGIN_APP_USER);
    JSONArray jsonArray = new JSONArray();
    for (ArtResource artResource : artResources) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("id", artResource.getId());
        //         jsonObject.put("latitude", artResource.getShownLocation().getGeoRepresentation().get(0).getGeoPoint().getLatitude());
        //         jsonObject.put("longitude", artResource.getShownLocation().getGeoRepresentation().get(0).getGeoPoint().getLongitude());
        jsonObject.put("name", artResource.getShownLocation().getName());
        jsonObject.put("likes", 0);
        jsonObject.put("dislikes", 0);
        jsonObject.put("imageData",
                "/9j/4AAQSkZJRgABAQEBLAEsAAD/+0AAAAAABABLAAAAAEAAgEsAAAAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA0UAAAAGAAAAAAAAAAAAAAXcAAAI2QAAAAgASQBNAEcAXwAwADEAMAA5AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAjZAAAF3AAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAF3AAAAABSZ2h0bG9uZwAACNkAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAABdwAAAAAU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XN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhhcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB0aWZmOk9yaWVudGF0aW9uPSIxIiB0aWZmOllDYkNyUG9zaXRpb25pbmc9IjIiIHRpZmY6WFJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIHRpZmY6TWFrZT0iQ2Fub24iIHRpZmY6TW9kZWw9IkNhbm9uIEVPUyA0MDBEIERJR0lUQUwiIHRpZmY6TmF0aXZlRGlnZXN0PSIyNTYsMjU3LDI1OCwyNTksMjYyLDI3NCwyNzcsMjg0LDUzMCw1MzEsMjgyLDI4MywyOTYsMzAxLDMxOCwzMTksNTI5LDUzMiwzMDYsMjcwLDI3MSwyNzIsMzA1LDMxNSwzMzQzMjtDNkNGMjVFQjExNDk2NTY5QzI3QjcxRTNDQzU3MzM4MSIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDctMTVUMTM6NDM6MDgrMDI6MDAiIHhhcDpDcmVhdGVEYXRlPSIyMDA5LTA3LTE1VDEzOjQzOjA4KzAyOjAwIiB4YXA6TWV0YWRhdGFEYXRlPSIyMDA5LTA3LTE1VDEzOjQzOjA4KzAyOjAwIiB4YXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzMgV2luZG93cyIgZXhpZjpFeGlmVmVyc2lvbj0iMDIyMSIgZXhpZjpGbGFzaHBpeFZlcnNpb249IjAxMDAiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjIyNjUiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIxNTAwIiBleGlmOkRhdGVUaW1lT3JpZ2luYWw9IjIwMDktMDctMTNUMDk6NTg6NTArMDI6MDAiIGV4aWY6RGF0ZVRpbWVEaWdpdGl6ZWQ9IjIwMDktMDctMTNUMDk6NTg6NTArMDI6MDAiIGV4aWY6RXhwb3N1cmVUaW1lPSIxLzE2MCIgZXhpZjpGTnVtYmVyPSIyMi8xIiBleGlmOkV4cG9zdXJlUHJvZ3JhbT0iMSIgZXhpZjpTaHV0dGVyU3BlZWRWYWx1ZT0iNDc5ODUwLzY1NTM2IiBleGlmOkFwZXJ0dXJlVmFsdWU9IjU4NDUwNy82NTUzNiIgZXhpZjpFeHBvc3VyZUJpYXNWYWx1ZT0iMC8zIiBleGlmOk1ldGVyaW5nTW9kZT0iNSIgZXhpZjpGb2NhbExlbmd0aD0iNDIvMSIgZXhpZjpGb2NhbFBsYW5lWFJlc29sdXRpb249IjM4ODgwMDAvODc3IiBleGlmOkZvY2FsUGxhbmVZUmVzb2x1dGlvbj0iMjU5MjAwMC81ODIiIGV4aWY6Rm9jYWxQbGFuZVJlc29sdXRpb25Vbml0PSIyIiBleGlmOkN1c3RvbVJlbmRlcmVkPSIwIiBleGlmOkV4cG9zdXJlTW9kZT0iMSIgZXhpZjpXaGl0ZUJhbGFuY2U9IjAiIGV4aWY6U2NlbmVDYXB0dXJlVHlwZT0iMCIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDswRTA0N0U4NDAxNDM0REEwRjJGNzI2QzgzN0IwQkM5RiIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHBob3Rvc2hvcDpIaXN0b3J5PSIiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6N0NDMTI0OTAzNDcxREUxMUI3MzE4RkMwQ0VEQkFDQjYiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6N0JDMTI0OTAzNDcxREUxMUI3MzE4RkMwQ0VEQkFDQjYiPiA8ZXhpZjpJU09TcGVlZFJhdGluZ3M+IDxyZGY6U2VxPiA8cmRmOmxpPjEwMDwvcmRmOmxpPiA8L3JkZjpTZXE+IDwvZXhpZjpJU09TcGVlZFJhdGluZ3M+IDxleGlmOkZsYXNoIGV4aWY6RmlyZWQ9IkZhbHNlIiBleGlmOlJldHVybj0iMCIgZXhpZjpNb2RlPSIyIiBleGlmOkZ1bmN0aW9uPSJGYWxzZSIgZXhpZjpSZWRFeWVNb2RlPSJGYWxzZSIvPiA8eGFwTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZ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");
        jsonArray.add(jsonObject);
    }

    return Response.ok(jsonArray.toString(), MediaType.APPLICATION_JSON).build();
}

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

public void serveResource(ResourceRequest request, ResourceResponse response)
        throws PortletException, IOException {

    String need = request.getParameter("need");

    switch (need) {
    case "search":
        processGlobalSearch(request, response);
        break;//from w  w  w.  j a  va  2 s.c  om
    case "download": {

        String category = request.getParameter("cat");

        DataApiHandler dataApi = new DataApiHandler(request);
        List<String> tableHeader = new ArrayList<>();
        List<String> tableField = new ArrayList<>();
        JSONArray tableSource = new JSONArray();

        String fileFormat = request.getParameter("fileformat");
        String fileName = "GlobalSearch";

        switch (category) {
        case "0": {
            tableHeader.addAll(DownloadHelper.getHeaderForFeatures());
            tableField.addAll(DownloadHelper.getFieldsForFeatures());

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

            for (GenomeFeature feature : features) {
                tableSource.add(feature.toJSONObject());
            }
            break;
        }
        case "1": {
            tableHeader.addAll(DownloadHelper.getHeaderForGenomes());
            tableField.addAll(DownloadHelper.getFieldsForGenomes());

            Map resp = processGlobalSearchGenome(request);
            Map respBody = (Map) resp.get("response");
            List<Genome> genomes = dataApi.bindDocuments((List<Map>) respBody.get("docs"), Genome.class);

            for (Genome genome : genomes) {
                tableSource.add(genome.toJSONObject());
            }
            break;
        }
        case "2": {
            tableHeader.addAll(Arrays.asList("Taxon ID", "Taxon Name", "# of Genomes"));
            tableField.addAll(Arrays.asList("taxon_id", "taxon_name", "genomes"));

            Map resp = processGlobalSearchTaxonomy(request);
            Map respBody = (Map) resp.get("response");
            List<Taxonomy> taxonomies = dataApi.bindDocuments((List<Map>) respBody.get("docs"), Taxonomy.class);

            for (Taxonomy taxonomy : taxonomies) {
                tableSource.add(taxonomy.toJSONObject());
            }
            break;
        }
        case "3": {
            tableHeader.addAll(DownloadHelper.getHeaderForTranscriptomicsExperiment());
            tableField.addAll(DownloadHelper.getFieldsForTranscriptomicsExperiment());

            Map resp = processGlobalSearchExperiment(request);
            Map respBody = (Map) resp.get("response");
            List<Map> docs = (List<Map>) respBody.get("docs");

            for (Map doc : docs) {
                JSONObject item = new JSONObject();
                item.putAll(doc);

                tableSource.add(item);
            }
            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:com.valygard.aohruthless.player.PlayerStats.java

/**
 * The Constructor requires a player and an arena parameter.
 * //from www .ja va  2 s  .  co  m
 * @param player
 * @param arena
 * @throws IOException
 */
public PlayerStats(Player player, Arena arena) throws IOException {
    this.player = player;
    this.arena = arena;
    this.name = arena.getName();

    this.tracking = arena.getSettings().getBoolean("player-stats");

    this.dir = new File(arena.getPlugin().getDataFolder(), "stats");
    this.dir.mkdir();

    // Go no further if the arena is not meant to track results.
    if (!tracking) {
        return;
    }

    // create JSON disk file
    this.config = new JsonConfiguration(dir, player.getUniqueId().toString());

    this.arenaArray = (JSONArray) config.getValue("_" + name);
    this.arenaContents = new JSONObject();
    this.classData = new JSONObject();

    // update initialization based on file status
    if (arenaArray == null) {
        arenaArray = new JSONArray();
    } else {
        arenaContents = (JSONObject) arenaArray.get(0);
        if (arenaArray.size() > 1) {
            classData = (JSONObject) arenaArray.get(1);
        }
    }

    this.kills = parseValue("kills");
    this.deaths = parseValue("deaths");

    this.wins = parseValue("wins");
    this.losses = parseValue("losses");
    this.draws = parseValue("draws");

    this.kdr = calculateRatio(kills, deaths);
    this.wlr = calculateRatio(wins, draws + losses);

    this.killstreak = parseValue("killstreak");
    this.winstreak = parseValue("winstreak");

    this.timespent = parseValue("timeSpent");

    config.writeString("playerName", player.getName());
    if (config.getValue("mmr") == null) {
        config.writeInt("mmr", arena.getPlugin().getConfig().getInt("global.starting-mmr", 1000));
    }
    this.mmr = (int) config.getValue("mmr");

    config.writeObject("_" + name, reload());
}

From source file:com.saludtec.web.PlanesDeTratamientoWeb.java

private JSONArray guardarPlanTratamiento(HttpServletRequest request) {
    PlanesDeTratamiento planTratamiento = new PlanesDeTratamiento();
    Pacientes paciente = ejbPacientes.traer(Integer.parseInt(request.getParameter("idPaciente")));
    planTratamiento.setIdPaciente(paciente);
    planTratamiento.setFechaPlanTratamiento(request.getParameter("fechaPlanTratamiento"));
    planTratamiento.setImpuestoPlanTratamiento(request.getParameter("impuestoPlanTratamiento"));
    planTratamiento.setValorPlanTratamiento(request.getParameter("valorPlanTratamiento"));
    planTratamiento.setPagadoPlanTratamiento(request.getParameter("pagadoPlanTratamiento"));
    planTratamiento.setIdUsuario(Integer.parseInt(request.getSession().getAttribute("usuario").toString()));//RECORDAR QUE ESTE VALOR ESTA QUEMADO Y HAY QUE CAMBIARLO CUANDO SE CREE LA TABLA USUARIOS
    planTratamiento = ejbPlanesDeTratamiento.crear(planTratamiento);
    obj = new JSONObject();
    objArray = new JSONArray();
    if (planTratamiento != null) {
        obj.put("idTratamiento", planTratamiento.getIdPlanDeTratamiento());
        objArray.add(obj);//from  w  w w .j  av a2 s  .  c om
    } else {
        obj.put("error", "no se pudo guardar el plan de tratamiento");
        objArray.add(obj);
    }
    return objArray;
}

From source file:edu.usc.polar.CoreNLP.java

public static void StanfordCoreNLP(String doc, String args[]) {
    try {//  www.  j  a va2s  .  c  o m
        String text;
        AutoDetectParser parser = new AutoDetectParser();
        BodyContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();

        if (args.length > 0) {
            serializedClassifier = args[0];
        }

        if (args.length > 1) {
            String fileContents = IOUtils.slurpFile(args[1]);
            List<List<CoreLabel>> out = classifier.classify(fileContents);
            for (List<CoreLabel> sentence : out) {
                for (CoreLabel word : sentence) {
                    System.out
                            .print(word.word() + '/' + word.get(CoreAnnotations.AnswerAnnotation.class) + ' ');
                }
                System.out.println();
            }

            out = classifier.classifyFile(args[1]);
            for (List<CoreLabel> sentence : out) {
                for (CoreLabel word : sentence) {
                    System.out
                            .print(word.word() + '/' + word.get(CoreAnnotations.AnswerAnnotation.class) + ' ');
                }
                System.out.println();
            }

        } else {

            InputStream stream = new FileInputStream(doc);
            //ParsingExample.class.getResourceAsStream(doc) ;
            //   System.out.println(stream.toString());
            parser.parse(stream, handler, metadata);
            // return handler.toString();
            text = handler.toString();
            String metaValue = metadata.toString();
            // System.out.println("Desc:: "+metadata.get("description"));

            String[] example = new String[1];
            example[0] = text;
            String name = doc.replace("C:\\Users\\Snehal\\Documents\\TREC-Data\\Data", "polar.usc.edu")
                    .replace("\\", ".");
            List<Triple<String, Integer, Integer>> list = classifier.classifyToCharacterOffsets(text);
            JSONObject jsonObj = new JSONObject();
            jsonObj.put("DOI", name);
            jsonObj.put("metadata", metaValue.replaceAll("\\s\\s+|\n|\t", " "));
            JSONArray tempArray = new JSONArray();
            JSONObject tempObj = new JSONObject();
            for (Triple<String, Integer, Integer> item : list) {
                //          String jsonOut="{ DOI:"+name+"  ,"
                //                + ""+item.first() + "\": \"" + text.substring(item.second(), item.third()).replaceAll("\\s\\s+|\n|\t"," ")+"\""
                //                + "\"metadata\":\""+metaValue+"\""
                //                + "}";
                // System.out.println(jsonOut);
                tempObj.put(item.first(),
                        text.substring(item.second(), item.third()).replaceAll("\\s\\s+|\n|\t", " "));
            }
            tempArray.add(tempObj);
            jsonObj.put("NER", tempArray);
            jsonArray.add(jsonObj);
        }
        // System.out.println("---");

    } catch (Exception e) {
        System.out.println("ERROR : CoreNLP" + "|File Name"
                + doc.replaceAll("C:\\Users\\Snehal\\Documents\\TREC-Data", "") + " direct" + e.toString());
    }
}