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