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:ch.agent.crnickl.mongodb.AccessMethodsForNumber.java

License:Apache License

private Observation<Double> extractFirstValue(BasicDBObject obj, TimeDomain domain, TimeIndex t)
        throws Exception {
    long first = obj.getLong(MongoDatabase.FLD_SER_FIRST);
    long last = obj.getLong(MongoDatabase.FLD_SER_LAST);
    Observation<Double> obs = null;
    long time = t == null ? first : t.asLong();
    if (last >= first && time <= last) {
        @SuppressWarnings("unchecked")
        Map<String, Double> values = (Map<String, Double>) obj.get(MongoDatabase.FLD_SER_VALUES);
        String key = null;/*from   w w w  . j a  v a2  s. c o  m*/
        if (time <= first)
            key = Long.toString(first);
        else {
            TreeMap<String, Double> sorted = new TreeMap<String, Double>(values);
            key = sorted.tailMap(Long.toString(time)).firstKey();
        }
        obs = new Observation<Double>(domain.time(Long.valueOf(key)), values.get(key));
    }
    return obs;
}

From source file:ch.agent.crnickl.mongodb.ReadMethodsForSchema.java

License:Apache License

private UpdatableSchema unpack(Database db, BasicDBObject obj, Set<ObjectId> cycleDetector)
        throws T2DBException {
    if (cycleDetector == null)
        cycleDetector = new HashSet<ObjectId>();
    try {/*from w  ww.  ja  v a  2s  . c  o  m*/
        ObjectId id = obj.getObjectId(MongoDatabase.FLD_ID);
        Surrogate s = makeSurrogate(db, DBObjectType.SCHEMA, new MongoDBObjectId(id));
        boolean cycleDetected = !cycleDetector.add(id);
        String name = obj.getString(MongoDatabase.FLD_SCHEMA_NAME);
        UpdatableSchema base = null;
        ObjectId baseId = obj.getObjectId(MongoDatabase.FLD_SCHEMA_BASE);
        if (baseId != null && !cycleDetected) {
            Surrogate baseSurr = makeSurrogate(db, DBObjectType.SCHEMA, new MongoDBObjectId(baseId));
            base = getSchema(baseSurr, cycleDetector);
        }
        Collection<AttributeDefinition<?>> attribs = attributeDefinitions(s, 0, db,
                (BasicDBList) obj.get(MongoDatabase.FLD_SCHEMA_ATTRIBS));
        Collection<SeriesDefinition> series = seriesDefinitions(s, db,
                (BasicDBList) obj.get(MongoDatabase.FLD_SCHEMA_SERIES));
        return new UpdatableSchemaImpl(name, base, attribs, series, s);
    } catch (ClassCastException e) {
        throw T2DBMMsg.exception(e, J.J81010, obj.toString());
    }
}

From source file:ch.agent.crnickl.mongodb.ReadMethodsForSchema.java

License:Apache License

private SeriesDefinition seriesDefinition(Surrogate schemaSurrogate, Database db, BasicDBObject bo)
        throws T2DBException {
    int number = bo.getInt(MongoDatabase.FLD_SERIESDEF_NUM);
    boolean era = bo.getBoolean(MongoDatabase.FLD_SERIESDEF_ERASING);
    SeriesDefinitionImpl def = null;//from   w w w.  ja  v  a  2s .  c  o m
    if (era) {
        def = new SeriesDefinitionImpl(number, null, null);
        def.edit();
        def.setErasing(true);
    } else {
        String desc = bo.getString(MongoDatabase.FLD_SERIESDEF_DESC);
        BasicDBList list = (BasicDBList) bo.get(MongoDatabase.FLD_SERIESDEF_ATTRIBS);
        Collection<AttributeDefinition<?>> attribs = attributeDefinitions(schemaSurrogate, number, db, list);
        def = new SeriesDefinitionImpl(number, desc, attribs);
    }
    return def;
}

From source file:ch.agent.crnickl.mongodb.ReadMethodsForValueType.java

License:Apache License

@SuppressWarnings("unchecked")
private <T> ValueType<T> unpack(Database db, BasicDBObject obj) throws T2DBException {
    try {//from  w w w.  j  av  a  2  s  .c  om
        ObjectId id = obj.getObjectId(MongoDatabase.FLD_ID);
        String name = obj.getString(MongoDatabase.FLD_VT_NAME);
        String type = obj.getString(MongoDatabase.FLD_VT_TYPE);
        Object values = obj.get(MongoDatabase.FLD_VT_VALUES);
        boolean restricted = values != null;
        Map<String, String> valueMap = null;
        if (restricted)
            valueMap = (Map<String, String>) ((BasicDBObject) values).toMap();
        Surrogate s = makeSurrogate(db, DBObjectType.VALUE_TYPE, new MongoDBObjectId(id));
        return new ValueTypeImpl<T>(name, restricted, type, valueMap, s);
    } catch (ClassCastException e) {
        throw T2DBMMsg.exception(e, J.J81010, obj.toString());
    }
}

From source file:ch.windmobile.server.mongo.MongoDataSource.java

License:Open Source License

private StationInfo createStationInfo(BasicDBObject stationJson) {
    StationInfo stationInfo = new StationInfo();

    stationInfo.setId(stationJson.getString("_id"));
    stationInfo.setShortName(stationJson.getString("short"));
    stationInfo.setName(stationJson.getString("name"));
    stationInfo.setDataValidity(getDataValidity(new DateTime()));
    stationInfo.setStationLocationType(StationLocationType.TAKEOFF);
    BasicDBList locationJson = (BasicDBList) stationJson.get("loc");
    stationInfo.setWgs84Longitude((Double) locationJson.get(0));
    stationInfo.setWgs84Latitude((Double) locationJson.get(1));
    ;/*from  w  w  w .j  ava2  s .c om*/
    stationInfo.setAltitude(stationJson.getInt("alt"));
    stationInfo.setMaintenanceStatus(Status.fromValue(stationJson.getString("status")));

    return stationInfo;
}

From source file:ch.windmobile.server.mongo.MongoDataSource.java

License:Open Source License

private StationData createStationData(String stationId) throws DataSourceException {
    BasicDBObject stationJson = findStationJson(stationId);
    BasicDBObject lastDataJson = (BasicDBObject) stationJson.get("last");
    if (lastDataJson == null) {
        throw new DataSourceException(DataSourceException.Error.INVALID_DATA,
                "No last data for station '" + stationId + "'");
    }//  w w  w.  ja  v  a 2s .co  m

    StationData stationData = new StationData();
    stationData.setStationId(stationId);

    DateTime lastUpdate = getLastUpdateDateTime(lastDataJson);
    stationData.setLastUpdate(lastUpdate);
    DateTime now = new DateTime();
    DateTime expirationDate = getExpirationDate(now, lastUpdate);
    stationData.setExpirationDate(expirationDate);

    // Status
    stationData.setStatus(getDataStatus(stationJson.getString("status"), now, expirationDate));

    // Wind average
    stationData.setWindAverage((float) lastDataJson.getDouble(DataTypeConstant.windAverage.getJsonKey()));

    // Wind max
    stationData.setWindMax((float) lastDataJson.getDouble(DataTypeConstant.windMax.getJsonKey()));

    List<BasicDBObject> datas = getHistoricData(stationId, lastUpdate, getHistoricDuration());
    if (datas.size() > 0) {
        // Wind direction chart
        Serie windDirectionSerie = createSerie(datas, DataTypeConstant.windDirection.getJsonKey());
        windDirectionSerie.setName(DataTypeConstant.windDirection.getName());
        Chart windDirectionChart = new Chart();
        windDirectionChart.setDuration(getHistoricDuration());
        windDirectionChart.getSeries().add(windDirectionSerie);
        stationData.setWindDirectionChart(windDirectionChart);

        // Wind history min/average
        double minValue = Double.MAX_VALUE;
        double maxValue = Double.MIN_VALUE;
        double sum = 0;
        double[][] windTrendMaxDatas = new double[datas.size()][2];
        // double[][] windTrendAverageDatas = new double[windAverageDatas.size()][2];
        for (int i = 0; i < datas.size(); i++) {
            BasicDBObject data = datas.get(i);
            // JDC unix-time is in seconds, windmobile java-time in millis
            long millis = data.getLong("_id") * 1000;
            double windAverage = data.getDouble(DataTypeConstant.windAverage.getJsonKey());
            double windMax = data.getDouble(DataTypeConstant.windMax.getJsonKey());
            minValue = Math.min(minValue, windAverage);
            maxValue = Math.max(maxValue, windMax);
            sum += windAverage;
            windTrendMaxDatas[i][0] = millis;
            windTrendMaxDatas[i][1] = windMax;
        }
        stationData.setWindHistoryMin((float) minValue);
        stationData.setWindHistoryAverage((float) (sum / datas.size()));
        stationData.setWindHistoryMax((float) maxValue);

        // Wind trend
        LinearRegression linearRegression = new LinearRegression(windTrendMaxDatas);
        linearRegression.compute();
        double slope = linearRegression.getBeta1();
        double angle = Math.toDegrees(Math.atan(slope * getWindTrendScale()));
        stationData.setWindTrend((int) Math.round(angle));
    }

    // Air temperature
    stationData.setAirTemperature(
            (float) lastDataJson.getDouble(DataTypeConstant.airTemperature.getJsonKey(), -1));

    // Air humidity
    stationData.setAirHumidity((float) lastDataJson.getDouble(DataTypeConstant.airHumidity.getJsonKey(), -1));

    // Air pressure
    String key = DataTypeConstant.airPressure.getJsonKey();
    if (lastDataJson.containsField(key)) {
        stationData.setAirPressure((float) lastDataJson.getDouble(key));
    }

    // Rain
    key = DataTypeConstant.rain.getJsonKey();
    if (lastDataJson.containsField(key)) {
        stationData.setRain((float) lastDataJson.getDouble(key));
    }

    return stationData;
}

From source file:ch.windmobile.server.mongo.MongoDataSource.java

License:Open Source License

private Serie createSerie(List<BasicDBObject> datas, String key) {
    Serie serie = new Serie();
    for (BasicDBObject data : datas) {
        Point newPoint = new Point();
        // JDC unix-time is in seconds, windmobile java-time in millis
        newPoint.setDate(data.getLong("_id") * 1000);
        newPoint.setValue(((Number) data.get(key)).floatValue());
        serie.getPoints().add(newPoint);
    }// www  . j  ava 2 s . c o m
    return serie;
}

From source file:com.avanza.ymer.FakeDocumentCollection.java

License:Apache License

@Override
public void delete(BasicDBObject dbObject) {
    BasicDBObject idOBject = new BasicDBObject();
    idOBject.put("_id", dbObject.get("_id"));
    if (idOBject.equals(dbObject)) {
        removeById(idOBject);//w w  w.  j ava2s.  c  om
    } else {
        removeByTemplate(dbObject);
    }

}

From source file:com.avanza.ymer.FakeDocumentCollection.java

License:Apache License

private void removeById(BasicDBObject dbObject) {
    Iterator<DBObject> it = collection.iterator();
    while (it.hasNext()) {
        DBObject next = it.next();/*from  w ww  .  j ava 2  s .com*/
        if (next.get("_id").equals(dbObject.get("_id"))) {
            it.remove();
            return;
        }
    }
}

From source file:com.aw.app.action.BuildingAction.java

/**
 * /*from w  ww.j ava2s.c o  m*/
 * @param buildingConfiguration
 * @param data
 * @param isRegister
 * @return
 * @throws JSONException 
 */
public static Map addBuildingFromConfiguration(DBObject buildingConfiguration, JSONObject data,
        boolean isRegister) throws JSONException {
    Map statusData = new HashMap();
    if (buildingConfiguration != null && data != null) {
        BasicDBObject buildingBase = new BasicDBObject();
        long time = new Date().getTime();
        if (data.has("position_x")) {
            buildingBase.put("position_x", data.get("position_x"));
            if (data.has("position_y"))
                buildingBase.put("position_y", data.get("position_y"));

            buildingBase.put("created", time);
            String tid = (String) buildingConfiguration.get("tid");
            if (!tid.equals("TID_BUILDING_TOWN_HALL")) {
                buildingBase.put("construction_start_time", time);
                buildingBase.put("is_constructing", 1);
            }
            long lastCollectionTime = time + ApplicationSettings.convertToTimeStamp(buildingConfiguration);
            buildingBase.put("uid", data.get("uid"));
            buildingBase.put("attributes", buildingConfiguration.get("attributes"));
            boolean price = false;
            if (!isRegister) {
                UserAction userAction = new UserAction();
                if (!TownHallAction.isAllowedBuilding(buildingConfiguration.get("tid"), data.get("uid"),
                        buildingConfiguration.get("level"))) {
                    statusData.put("status", false);
                } else if (!isBuildAddAllow(data.get("uid"), buildingConfiguration.get("build_resource"),
                        buildingConfiguration.get("build_cost"))) {
                    statusData.put("status", false);
                    statusData.put("errorMessage", "Not enough resource available in storage.");
                }
                long buildCost = (Long) buildingConfiguration.get("build_cost");
                if (buildCost > 0) {
                    price = userAction.updateUserResource(data.get("uid"),
                            buildingConfiguration.get("build_cost"),
                            (String) buildingConfiguration.get("build_resource"), "decrease");
                } else {
                    price = true;
                }
            } else {
                price = true;
            }
            if (!price) {
                statusData.put("errorMessage", "Not enough resource available in storage.");
                statusData.put("status", false);
            }
            WriteResult result = MongoDbUtil.saveCollection("aw_building_base", buildingBase);
            if (result.getLastError().ok()) {
                String collectionName = "aw_building_base";
                BasicDBObject buildingObject = null;
                String buildingClass = (String) buildingConfiguration.get("building_class");
                if ("Defense".equalsIgnoreCase(buildingClass)) {
                    collectionName = "aw_building_defense";
                    buildingObject = new BuildingDefense();
                    buildingObject.put("attributes", buildingConfiguration.get("attributes"));
                } else if ("Resource".equalsIgnoreCase(buildingClass)) {
                    collectionName = "aw_building_resource";
                    buildingObject = new BuildingResource();
                    buildingObject.put("attributes", buildingConfiguration.get("attributes"));
                    if (containString(collectionResource, buildingConfiguration.get(tid).toString())) {
                        buildingObject.put("last_collection_time", lastCollectionTime);

                    } else
                        buildingObject.put("last_collection_time", 0);
                    buildingObject.put("resource_stored", 0);
                } else if ("Army".equalsIgnoreCase(buildingClass)) {
                    collectionName = "aw_building_army";
                    buildingObject = new BuildingArmy();
                    buildingObject.put("attributes", buildingConfiguration.get("attributes"));
                } else if ("Town Hall".equalsIgnoreCase(buildingClass)) {
                    collectionName = "aw_building_townhall";
                    buildingObject = new BuildingTownhall();
                    buildingObject.put("attributes", buildingConfiguration.get("attributes"));
                    buildingObject.put("gold_stored", buildingConfiguration.get("gold_stored"));
                    buildingObject.put("mithril_stored", buildingConfiguration.get("mithril_stored"));
                } else {
                    statusData.put("status", true);
                    statusData.put("building_id", buildingBase.get("building_id"));
                }
                if (buildingObject != null) {
                    buildingObject.put("building_id", buildingBase.get("building_id"));
                    WriteResult r = MongoDbUtil.saveCollection(collectionName, buildingObject);
                    if (r.getLastError().ok()) {
                        String buildingConfigTid = (String) buildingConfiguration.get("tid");
                        if (buildingConfigTid.equalsIgnoreCase("TID_BUILDING_BARRACK")) {
                            new UserAction().unlockUserTroops(data.get("uid"),
                                    buildingConfiguration.get("level"));
                        }
                        statusData.put("status", true);
                    }

                }
            } else {
                price = new UserAction().updateUserResource(data.get("uid"),
                        buildingConfiguration.get("build_cost"),
                        (String) buildingConfiguration.get("build_resource"), "increase");
            }
        }
    }
    return statusData;
}