Example usage for com.mongodb BasicDBObject get

List of usage examples for com.mongodb BasicDBObject get

Introduction

In this page you can find the example usage for com.mongodb BasicDBObject get.

Prototype

public Object get(final String key) 

Source Link

Document

Gets a value from this object

Usage

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