List of usage examples for com.mongodb BasicDBObject get
public Object get(final String key)
From source file:mx.edu.cide.justiciacotidiana.v1.model.Comentario.java
License:Open Source License
/** * Genera un BasicDBObject a partir de una cadena JSON que representa un comentario. * @param content Cadena con el JSON del comentario. * @return BasicDBObject si el comentario es vlido y contiene al menos los campos requeridos, null en otro caso. *//*from ww w.j av a 2s. co m*/ public static BasicDBObject parse(String content) { BasicDBObject obj = (BasicDBObject) JSON.parse(content); BasicDBObject from = (BasicDBObject) obj.get(FIELDS.FROM); String checkedVal = ""; List<String> params = new ArrayList<String>(); params.add(FIELDS.MESSAGE); params.add(FIELDS.PROPOSALID); if (!Utils.validateEmptyStringFields(obj, params)) { return null; } if (null == from) { return null; } checkedVal = from.getString(FIELDS.FACEBOOKUSER); if (null == checkedVal || checkedVal.length() == 0) return null; //Remove unmodifiable fields checkedVal = obj.getString(FIELDS.CREATED); if (null != checkedVal) obj.remove(FIELDS.CREATED); checkedVal = obj.getString(FIELDS.UPDATED); if (null != checkedVal) obj.remove(FIELDS.UPDATED); checkedVal = obj.getString(FIELDS.SWBPAGE); if (null != checkedVal) obj.remove(FIELDS.SWBPAGE); return obj; }
From source file:mx.edu.cide.justiciacotidiana.v1.mongo.MongoInterface.java
License:Open Source License
/** * @param collectionName Nombre de la coleccin donde se actualizar el elemento. * @param query Objeto de consulta para recuperar el elemento a actualizar. * @param newData Objeto con los nuevos datos. * @return true si la insercin fue exitosa. false en otro caso. *//*from w w w . j a v a 2 s . c o m*/ public boolean updateItem(String collectionName, BasicDBObject query, BasicDBObject newData) { DBCollection tCol = mongoDB.getCollection(collectionName); newData.put(FIELD_CREATED, query.get(FIELD_CREATED)); newData.put(FIELD_UPDATED, new Date()); //Eliminar id, si es que viene en el documento. newData.remove(FIELD_ID); try { tCol.update(query, newData); } catch (MongoException ex) { return false; } return true; }
From source file:mx.edu.cide.justiciacotidiana.v1.services.Propuestas.java
License:Open Source License
private String getProposalsJSON(String categoryId) { StringBuilder ret = new StringBuilder(); BasicDBObject query = null;/*w ww . j a v a 2 s . c o m*/ if (null != categoryId && categoryId.length() > 0) { query = new BasicDBObject(Propuesta.FIELDS.CATEGORYID, categoryId); } long count = 0; DBCursor propuestas = Utils.mongo.findItems(MongoInterface.COLLECTIONS.PROPUESTAS, query); propuestas.sort(new BasicDBObject(Propuesta.FIELDS.CREATED, -1)); if (null != propuestas && propuestas.hasNext()) { count = propuestas.size(); } ret.append("{\"count\":").append(count); if (count > 0) { ret.append(", \"items\": ["); try { while (propuestas.hasNext()) { BasicDBObject propuesta = (BasicDBObject) propuestas.next(); ObjectId pId = (ObjectId) propuesta.get(Propuesta.FIELDS.MONGOID); String key = pId.toString(); BasicDBList comments = getCommentsList(key); BasicDBList likes = getLikes(key); BasicDBList dislikes = getDisLikes(key); BasicDBList refrains = getRefrains(key); BasicDBObject commentsContainer = new BasicDBObject("data", comments); propuesta.put(Propuesta.FIELDS.COMMENTS, commentsContainer); BasicDBObject votes = new BasicDBObject(); //Muy verbose y con muchos niveles, se puede simplificar la estructura BasicDBObject _likes = new BasicDBObject(Voto.PARTICIPANTS, likes); votes.put(Voto.LIKE, _likes); //Muy verbose y con muchos niveles, se puede simplificar la estructura BasicDBObject _dislikes = new BasicDBObject(Voto.PARTICIPANTS, dislikes); votes.put(Voto.DISLIKE, _dislikes); //Muy verbose y con muchos niveles, se puede simplificar la estructura BasicDBObject _refrains = new BasicDBObject(Voto.PARTICIPANTS, refrains); votes.put(Voto.REFRAIN, _refrains); propuesta.append(Propuesta.FIELDS.VOTES, votes); ret.append(Utils.JSON.toJSON(propuesta)); if (propuestas.hasNext()) ret.append(","); } } catch (MongoException ex) { System.out.println("Error al genera lista de comentarios asociada a propuesta"); } ret.append("]"); } ret.append("}"); return ret.toString(); }
From source file:mx.org.cedn.avisosconagua.engine.Controler.java
License:Open Source License
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods./*w w w .ja v a2 s. co m*/ * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String currentId = (String) request.getSession(true).getAttribute(ADVICE_ID); String[] parts = request.getRequestURI().split("/"); if (parts.length > 3 && control.containsKey(parts[2])) { List<String> flujo = control.get(parts[2]); BasicDBObject datos = null; if (flujo.contains(parts[3])) { if ("capgen".equals(parts[2])) { processors.get(parts[3]).invokeForm(request, response, null, parts); return; } if (parts.length > 4 && !"new".equals(parts[4])) { datos = MongoInterface.getInstance().getAdvice(parts[4]); if (null != datos) { currentId = parts[4]; request.getSession(true).setAttribute(ADVICE_ID, currentId); response.sendRedirect("/" + parts[1] + "/" + parts[2] + "/" + parts[3]); return; } } if ((null == currentId && parts[3].equals(flujo.get(0))) || (parts.length > 4 && "new".equals(parts[4]))) { currentId = UUID.randomUUID().toString(); request.getSession(true).setAttribute(ADVICE_ID, currentId); MongoInterface.getInstance().createNewAdvice(currentId, parts[2]); response.sendRedirect("/" + parts[1] + "/" + parts[2] + "/" + parts[3]); return; } if (null == datos) { datos = MongoInterface.getInstance().getAdvice(currentId); } cleanAttributes(request); processors.get(parts[3]).invokeForm(request, response, (BasicDBObject) datos.get(parts[3]), parts); } } }
From source file:mx.org.cedn.avisosconagua.engine.processors.CapInfo.java
License:Open Source License
@Override public void invokeForm(HttpServletRequest request, HttpServletResponse response, BasicDBObject data, String[] parts) throws ServletException, IOException { HashMap<String, String> datos = new HashMap<>(); if (null != data) { for (String key : data.keySet()) { datos.put(key, data.getString(key)); }/*from ww w . ja v a 2s . c o m*/ } //Put max sustained winds in map BasicDBObject advice = MongoInterface.getInstance() .getAdvice((String) request.getSession(true).getAttribute("internalId")); if (null != advice) { //Get wind speed from init section BasicDBObject section = (BasicDBObject) advice.get("init"); if (null != section) { datos.put("eventWindSpeedSust", section.getString("eventWindSpeedSust")); datos.put("eventCoastDistance", section.getString("eventCoastDistance")); } } request.setAttribute("data", datos); request.setAttribute("bulletinType", parts[2]); String url = "/jsp/bulletinInfo.jsp"; if (parts[2].endsWith("dp")) { url = "/jsp/bulletinInfoDp.jsp"; } RequestDispatcher rd = request.getRequestDispatcher(url); rd.forward(request, response); }
From source file:mx.org.cedn.avisosconagua.engine.processors.Generate.java
License:Open Source License
@Override public void invokeForm(HttpServletRequest request, HttpServletResponse response, BasicDBObject data, String[] parts) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); String adviceID = (String) request.getSession(true).getAttribute(ADVICE_ID); CAPFileGenerator capFile = new CAPFileGenerator(adviceID); capFile.generate();//from ww w. j av a 2s.co m if (capFile.isOK()) { request.setAttribute("capURL", capFile.getLink()); } // MAPS74 - no html generation // HtmlZipGenerator htmlFile = new HtmlZipGenerator(adviceID); // htmlFile.generate(); // if (htmlFile.isOK()){ // request.setAttribute("htmlUrl",htmlFile.getLink()); // } BasicDBObject aviso = MongoInterface.getInstance().getAdvice(adviceID); BasicDBObject init = (BasicDBObject) aviso.get("init"); BasicDBObject capInfo = (BasicDBObject) aviso.get("capInfo"); BasicDBObject precapture = (BasicDBObject) aviso.get("precapture"); String previous = precapture != null ? precapture.getString("previousIssue") : null; String titulo = Utils.getTituloBoletinHtml(aviso.getString(MongoInterface.ADVICE_TYPE), init.getString("eventCoastDistance")); String title = capInfo.getString("issueDate") + " " + capInfo.getString("issueTime") + " - " + capInfo.getString("issueNumber") + " " + titulo; // request.setAttribute("titulo", Utils.getTituloBoletin(parts[2])); MongoInterface.getInstance().setGenerated(adviceID, previous, title, parts[2], capFile.getDate()); request.setAttribute("isdp", parts[2].endsWith("dp")); request.setAttribute("bulletinType", parts[2]); request.setAttribute("hasAreas", Utils.canIHasAreaz(aviso)); RequestDispatcher rd = request.getRequestDispatcher("/jsp/finish.jsp"); rd.forward(request, response); }
From source file:mx.org.cedn.avisosconagua.engine.processors.Init.java
License:Open Source License
@Override public void invokeForm(HttpServletRequest request, HttpServletResponse response, BasicDBObject data, String parts[]) throws ServletException, IOException { HashMap<String, String> datos = new HashMap<>(); String prevIssue = null;// w w w . j a va 2 s . co m if (null != data) { for (String key : data.keySet()) { datos.put(key, data.getString(key)); } } //Put nhcLinks in map and get advisory for tracking BasicDBObject advice = mi.getAdvice((String) request.getSession(true).getAttribute("internalId")); if (null != advice) { //Get nhcLinks BasicDBObject section = (BasicDBObject) advice.get("precapture"); if (null != section) { datos.put("nhcForecastLink", section.getString("nhcForecastLink")); datos.put("nhcPublicLink", section.getString("nhcPublicLink")); prevIssue = section.getString("previousIssue"); } } //Advice without init saved and for tracking if (advice != null && advice.get("init") == null) { if (prevIssue != null) { BasicDBObject previous = mi.getAdvice(prevIssue); if (previous != null) { //System.out.println("Putting previous data from "+prevIssue); BasicDBObject initSection = (BasicDBObject) previous.get("init"); if (initSection != null) { //Set current values to previous values datos.put("eventDescriptionHTML", initSection.getString("eventDescriptionHTML", "")); datos.put("areaDescription", initSection.getString("areaDescription", "")); datos.put("eventRisk", initSection.getString("eventRisk", "")); datos.put("eventComments", initSection.getString("eventComments", "")); } } } } request.setAttribute("data", datos); request.setAttribute("bulletinType", parts[2]); String url = "/jsp/init.jsp"; if (parts[2].endsWith("dp")) { url = "/jsp/initdp.jsp"; } RequestDispatcher rd = request.getRequestDispatcher(url); rd.forward(request, response); }
From source file:mx.org.cedn.avisosconagua.engine.processors.Init.java
License:Open Source License
/** * Updates selected areas in the google map displayed in the web form. * @param nuevo new advice properties//from w ww . ja v a2s .co m * @param anterior previous advice properties */ private void procesaAreas(HashMap<String, String> nuevo, BasicDBObject anterior) { if (null != anterior) { HashMap<String, String> cambios = new HashMap<>(); for (String key : nuevo.keySet()) { if (key.startsWith("area-")) { String states = "states" + key.substring(4); String municipalities = "municipalities" + key.substring(4); if (null == nuevo.get(states) || null == nuevo.get(municipalities)) { if (((String) nuevo.get(key)).equals(anterior.get(key))) { if (null != anterior.get(states)) { cambios.put(states, (String) anterior.get(states)); } if (null != anterior.get(municipalities)) { cambios.put(municipalities, (String) anterior.get(municipalities)); } } } } } if (!cambios.isEmpty()) { nuevo.putAll(cambios); } } }
From source file:mx.org.cedn.avisosconagua.engine.processors.Pronostico.java
License:Open Source License
@Override public void invokeForm(HttpServletRequest request, HttpServletResponse response, BasicDBObject data, String parts[]) throws ServletException, IOException { HashMap<String, String> datos = new HashMap<>(); String prevIssue = null;//from w w w . j a va 2 s .c om if (null != data) { for (String key : data.keySet()) { datos.put(key, data.getString(key)); //System.out.println("colocando: "+key+" : "+datos.get(key)); } } //Put nhcLinks in map BasicDBObject advice = MongoInterface.getInstance() .getAdvice((String) request.getSession(true).getAttribute("internalId")); if (null != advice) { //Get nhcLinks BasicDBObject section = (BasicDBObject) advice.get("precapture"); if (null != section) { datos.put("nhcForecastLink", section.getString("nhcForecastLink")); datos.put("nhcPublicLink", section.getString("nhcPublicLink")); prevIssue = section.getString("previousIssue"); } } //Advice without pronostico saved and for tracking if (advice != null && advice.get("pronostico") == null) { if (prevIssue != null) { BasicDBObject previous = MongoInterface.getInstance().getAdvice(prevIssue); if (previous != null) { //System.out.println("Putting previous data from "+prevIssue); BasicDBObject forecastSection = (BasicDBObject) previous.get("pronostico"); if (forecastSection != null) { //Set current values to previous values datos.put("issueSateliteLocationImgFooter", forecastSection.getString("issueSateliteLocationImgFooter", "")); } } } } request.setAttribute("data", datos); request.setAttribute("bulletinType", parts[2]); String url = "/jsp/forecast.jsp"; RequestDispatcher rd = request.getRequestDispatcher(url); rd.forward(request, response); }
From source file:mx.org.cedn.avisosconagua.engine.processors.Seguimiento.java
License:Open Source License
@Override public void invokeForm(HttpServletRequest request, HttpServletResponse response, BasicDBObject data, String parts[]) throws ServletException, IOException { MongoInterface mi = MongoInterface.getInstance(); HashMap<String, String> datos = new HashMap<>(); if (null != data) { for (String key : data.keySet()) { datos.put(key, data.getString(key)); //System.out.println("colocando: "+key+" : "+datos.get(key)); }// ww w. j ava 2 s.co m } //Get previously saved data to populate first row HashMap<String, String> seguimiento = new HashMap<>(); BasicDBObject advice = mi.getAdvice((String) request.getSession(true).getAttribute("internalId")); if (null != advice) { //Add data from init section BasicDBObject section = (BasicDBObject) advice.get("init"); if (null != section) { for (String key : section.keySet()) { seguimiento.put(key, section.getString(key)); } } //Add data from tracking section section = (BasicDBObject) advice.get("seguimiento"); if (null != section) { for (String key : section.keySet()) { seguimiento.put(key, section.getString(key)); } } } request.setAttribute("data", datos); request.setAttribute("trackData", seguimiento); request.setAttribute("advicesList", mi.getPublisedAdvicesList()); request.setAttribute("bulletinType", parts[2]); String url = "/jsp/tracking.jsp"; RequestDispatcher rd = request.getRequestDispatcher(url); rd.forward(request, response); }