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:com.dentinium.doctor.Doctor.java

public Doctor(BasicDBObject obj) {

    doctorID = obj.getString("userid");
    doctorName = obj.getString("name");
    email = obj.getString("email");

    if (obj.getString("phone") != null) {
        phone = obj.getString("phone");
    } else {/*from   ww  w.  j  a v a2  s.c  om*/
        phone = "not set";
    }

    if (obj.getString("wage") != null) {
        wage = obj.getInt("wage");
    } else {
        wage = 0;
    }
    BasicDBObject tmp = (BasicDBObject) obj.get("works");
    companyName = tmp.getString("companyname");

}

From source file:com.ebay.cloud.cms.config.CMSProperties.java

License:Apache License

private void loadProperties(Mongo mongo) {
    Map<String, Object> m = new ConcurrentHashMap<String, Object>();
    DBCollection collection = getPropertiesCollection(mongo);
    collection.setReadPreference(ReadPreference.primary());
    DBCursor cursor = collection.find();
    while (cursor.hasNext()) {
        BasicDBObject object = (BasicDBObject) cursor.next();
        String key = getKey(object);
        if (key != null) {
            m.put(key, object.get(key));
        }/*from   ww  w.  j  ava 2  s . co m*/
    }

    cachedConfigurations = m;
}

From source file:com.ebay.cloud.cms.config.CMSProperties.java

License:Apache License

public void updateConfig(Map<String, Object> configs) {
    DBCollection coll = getPropertiesCollection(ds.getMongoInstance());
    DBCursor cursor = coll.find();/*from   w  w w .  j a v  a2 s.  co  m*/
    // update existing
    while (cursor.hasNext()) {
        BasicDBObject dbo = (BasicDBObject) cursor.next();
        String key = getKey(dbo);
        if (!configs.containsKey(key)) {
            continue;
        }

        BasicDBObject qObject = new BasicDBObject();
        BasicDBObject vObject = new BasicDBObject();
        qObject.append("_id", dbo.get("_id"));
        vObject.append(key, configs.get(key));

        coll.update(qObject, vObject);
        configs.remove(key);
    }

    // insert new config
    if (!configs.isEmpty()) {
        List<DBObject> list = new ArrayList<DBObject>();
        for (Entry<String, Object> entry : configs.entrySet()) {
            DBObject dbo = new BasicDBObject();
            dbo.put(entry.getKey(), entry.getValue());

            list.add(dbo);
        }
        coll.insert(list);
    }

    loadProperties(ds.getMongoInstance());
}

From source file:com.ebay.cloud.cms.dal.entity.flatten.impl.NewBsonEntity.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
public List<?> getFieldValues(String fieldName) {
    // validate the field name
    MetaField metaField = getMetaClass().getFieldByName(fieldName);
    CheckConditions.checkArgument(metaField != null, "Can't find meta field %s", fieldName);
    CheckConditions.checkNotNull(metaField.getDbName(), "Meta field doesn't have db name set!");
    // get parent bson & db name
    BasicDBObject fieldBsonObject = null;
    String dbValName = null;/*ww w . j av a2 s.  c  o  m*/
    if (metaField.isInternal()) {
        dbValName = metaField.getDbName();
        fieldBsonObject = bsonObject;
    } else {
        dbValName = MetaField.VALUE_KEY;
        fieldBsonObject = bsonObject;
        dbValName = metaField.getFlattenValueDbName();
    }
    if (fieldBsonObject == null) {
        return Collections.EMPTY_LIST;
    }
    // get value from parent field
    CardinalityEnum cardinality = metaField.getCardinality();
    DataTypeEnum dataType = metaField.getDataType();
    IDataTypeHandler handler = BsonDataTypeHandlerFactory.getHandler(dataType);
    List<Object> result = Collections.EMPTY_LIST;
    if (fieldBsonObject.containsField(dbValName)) {
        if (cardinality == CardinalityEnum.One) {
            Object bsonValue = fieldBsonObject.get(dbValName);
            // for json type field, if data is Many while metatype changed to One,
            // it still can return not null bsonValue, but should ignore it
            if (!(bsonValue instanceof BasicDBList)) {
                result = new ArrayList<Object>(1);
                Object value = handler.read(this, bsonValue, metaField);
                addReadValue(result, value);
            }
        } else {
            List<Object> bsonList = null;
            if (fieldBsonObject.get(dbValName) instanceof List) {
                bsonList = (List<Object>) fieldBsonObject.get(dbValName);
            } else if (fieldBsonObject.get(dbValName) != null) {
                bsonList = new ArrayList<Object>();
                bsonList.add(fieldBsonObject.get(dbValName));
            }
            if (bsonList != null) {
                result = new ArrayList<Object>();
                for (Object bsonValue : bsonList) {
                    Object value = handler.read(this, bsonValue, metaField);
                    addReadValue(result, value);
                }
            }
        }
    }
    return result;
}

From source file:com.ebay.cloud.cms.dal.entity.flatten.impl.NewBsonEntity.java

License:Apache License

private void putFieldValues(String fieldName, Object values, boolean setFlag) {
    // validate the field name      
    MetaField metaField = getMetaClass().getFieldByName(fieldName);
    CheckConditions.checkArgument(metaField != null, "Can't find meta field %s", fieldName);
    // get field bson & db name
    BasicDBObject fieldBsonObject = null;
    String dbValName = null;/*  ww w  . j  ava2 s.  c  o m*/
    if (metaField.isInternal()) {
        dbValName = metaField.getDbName();
        fieldBsonObject = bsonObject;
    } else {
        fieldBsonObject = bsonObject;
        dbValName = metaField.getFlattenValueDbName();
        //            dbValName = MetaField.VALUE_KEY;
        //            fieldBsonObject = new BasicDBObject();
    }
    // set value to the field bson
    DataTypeEnum dataType = metaField.getDataType();
    IDataTypeHandler handler = BsonDataTypeHandlerFactory.getHandler(dataType);
    CardinalityEnum cardinality = metaField.getCardinality();

    //        boolean updated = false;
    if (setFlag) {
        List<?> valuesList = (List<?>) values;
        if (cardinality == CardinalityEnum.Many) {
            List<Object> bsonList = new ArrayList<Object>();
            if (values != null) {
                for (Object val : valuesList) {
                    Object bsonValue = handler.write(this, val, metaField);
                    addWriteValue(bsonValue, bsonList);
                }
            }
            // for list set, force udpate ignore whethere entity added, since user might want to set empty
            //                updated = true;
            fieldBsonObject.put(dbValName, bsonList);
        } else {
            Object givenValue = (values == null || valuesList.isEmpty()) ? null : valuesList.get(0);
            Object bsonValue = handler.write(this, givenValue, metaField);
            addWriteValue(fieldBsonObject, dbValName, bsonValue);
        }
    } else {
        Object bsonValue = handler.write(this, values, metaField);
        if (cardinality == CardinalityEnum.Many) {
            @SuppressWarnings("unchecked")
            List<Object> bsonList = (List<Object>) (fieldBsonObject.get(dbValName));
            if (bsonList == null) {
                bsonList = new ArrayList<Object>();
                fieldBsonObject.put(dbValName, bsonList);
            }
            addWriteValue(bsonValue, bsonList);
        } else {
            addWriteValue(fieldBsonObject, dbValName, bsonValue);
        }
    }

    //        if (updated && !metaField.isInternal() && fieldBsonObject != bsonObject) {
    //            bsonObject.putAll((BSONObject)fieldBsonObject);
    ////            bsonObject.put(metaField.getDbName(), fieldBsonObject);
    //        }
}

From source file:com.ebay.cloud.cms.dal.entity.flatten.impl.NewBsonEntity.java

License:Apache License

public Object getFieldProperty(String fieldName, String propertyName) {
    FieldProperty property = FieldProperty.fromQueryName(propertyName);
    CheckConditions.checkArgument(property != null,
            MessageFormat.format("field property %s not found!", propertyName));
    MetaField metaField = getMetaClass().getFieldByName(fieldName);
    String propertyDbName = metaField.getDbName() + MetaField.VALUE_KEY_CONNECTOR + property.getDbName();
    BasicDBObject fieldBsonObject = bsonObject;
    return fieldBsonObject.get(propertyDbName);
}

From source file:com.ebay.cloud.cms.dal.entity.impl.BsonEntity.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
public List<?> getFieldValues(String fieldName) {
    // validate the field name
    MetaField metaField = getMetaClass().getFieldByName(fieldName);
    CheckConditions.checkArgument(metaField != null, "Can't find meta field %s", fieldName);
    CheckConditions.checkNotNull(metaField.getDbName(), "Meta field doesn't have db name set!");
    // get parent bson & db name
    BasicDBObject fieldBsonObject = null;
    String dbValName = null;/*from   www  .  j  ava2  s.co  m*/
    if (metaField.isInternal()) {
        dbValName = metaField.getDbName();
        fieldBsonObject = bsonObject;
    } else {
        dbValName = MetaField.VALUE_KEY;
        fieldBsonObject = getBsonField(metaField.getDbName());
    }
    if (fieldBsonObject == null) {
        return Collections.EMPTY_LIST;
    }
    // get value from parent field
    CardinalityEnum cardinality = metaField.getCardinality();
    DataTypeEnum dataType = metaField.getDataType();
    IDataTypeHandler handler = BsonDataTypeHandlerFactory.getHandler(dataType);
    List<Object> result = Collections.EMPTY_LIST;
    // when has field
    if (fieldBsonObject.containsField(dbValName)) {
        if (cardinality == CardinalityEnum.One) {
            Object bsonValue = fieldBsonObject.get(dbValName);
            // for json type field, if data is Many while metatype changed to One,
            // it still can return not null bsonValue, but should ignore it
            if (!(bsonValue instanceof BasicDBList)) {
                result = new ArrayList<Object>(1);
                Object value = handler.read(this, bsonValue, metaField);
                addReadValue(result, value);
            }
        } else {
            // cardinality = many. If there is a given non-list-value, wrapper it as list
            List<Object> bsonList = null;
            if (fieldBsonObject.get(dbValName) instanceof List) {
                bsonList = (List<Object>) fieldBsonObject.get(dbValName);
            } else if (fieldBsonObject.get(dbValName) != null) {
                bsonList = new ArrayList<Object>();
                bsonList.add(fieldBsonObject.get(dbValName));
            }
            if (bsonList != null) {
                result = new ArrayList<Object>();
                for (Object bsonValue : bsonList) {
                    Object value = handler.read(this, bsonValue, metaField);
                    addReadValue(result, value);
                }
            }
        }
    }
    return result;
}

From source file:com.ebay.cloud.cms.dal.entity.impl.BsonEntity.java

License:Apache License

private void putFieldValues(String fieldName, Object values, boolean setFlag) {
    // validate the field name      
    MetaField metaField = getMetaClass().getFieldByName(fieldName);
    CheckConditions.checkArgument(metaField != null, "Can't find meta field %s", fieldName);
    // get field bson & db name
    BasicDBObject fieldBsonObject = null;
    String dbValName = null;//from   w  ww.j ava 2s .co  m
    if (metaField.isInternal()) {
        dbValName = metaField.getDbName();
        fieldBsonObject = bsonObject;
    } else {
        dbValName = MetaField.VALUE_KEY;
        fieldBsonObject = getOrNewBsonField(metaField.getDbName());
    }
    // set value to the field bson
    DataTypeEnum dataType = metaField.getDataType();
    IDataTypeHandler handler = BsonDataTypeHandlerFactory.getHandler(dataType);
    CardinalityEnum cardinality = metaField.getCardinality();

    boolean updated = false;
    if (setFlag) {
        List<?> valuesList = (List<?>) values;
        if (cardinality == CardinalityEnum.Many) {
            List<Object> bsonList = new ArrayList<Object>();
            if (values != null) {
                for (Object val : valuesList) {
                    Object bsonValue = handler.write(this, val, metaField);
                    addWriteValue(bsonValue, bsonList);
                }
            }
            // for list set, force udpate ignore whethere entity added, since user might want to set empty
            updated = true;
            fieldBsonObject.put(dbValName, bsonList);
        } else {
            Object givenValue = (values == null || valuesList.isEmpty()) ? null : valuesList.get(0);
            Object bsonValue = handler.write(this, givenValue, metaField);
            updated |= addWriteValue(fieldBsonObject, dbValName, bsonValue);
        }
    } else {
        Object bsonValue = handler.write(this, values, metaField);
        if (cardinality == CardinalityEnum.Many) {
            @SuppressWarnings("unchecked")
            List<Object> bsonList = (List<Object>) (fieldBsonObject.get(dbValName));
            if (bsonList == null) {
                bsonList = new ArrayList<Object>();
                fieldBsonObject.put(dbValName, bsonList);
            }
            addWriteValue(bsonValue, bsonList);
            updated = true;
        } else {
            updated |= addWriteValue(fieldBsonObject, dbValName, bsonValue);
        }
    }

    if (updated && !metaField.isInternal()) {
        bsonObject.put(metaField.getDbName(), fieldBsonObject);
    }
}

From source file:com.ebay.cloud.cms.dal.entity.impl.BsonEntity.java

License:Apache License

public Object getFieldProperty(String fieldName, String propertyName) {
    FieldProperty property = FieldProperty.fromQueryName(propertyName);
    CheckConditions.checkArgument(property != null,
            MessageFormat.format("field property %s not found!", propertyName));
    MetaField metaField = getMetaClass().getFieldByName(fieldName);
    BasicDBObject fieldBsonObject = getBsonField(metaField.getDbName());
    if (fieldBsonObject != null) {
        return fieldBsonObject.get(property.getDbName());
    } else {//ww w  .j  av  a 2  s  . c o  m
        return null;
    }
}

From source file:com.ebay.cloud.cms.dal.persistence.flatten.impl.embed.EmbedCreateCommand.java

License:Apache License

public DBObject buildCreateBody(MetaRelationship lastField, String parentPath, NewBsonEntity entity,
        int newVersion, MetaClass rootMetaClass, DBObject rootObject, String parentId) {
    BasicDBObject embedParentObject = (BasicDBObject) EmbedDBObjectFilter.filter(parentId, rootObject,
            rootMetaClass, null, helper);
    if (embedParentObject == null) {
        throw new CmsDalException(DalErrCodeEnum.ENTITY_NOT_FOUND,
                "Create, can not find embed field with Id: " + parentId);
    }//  ww  w  . j  a v a 2s .c  o  m

    embedParentObject.remove("_id");

    // for flatten storage, the length change might differ between the embed under root and multiple level embed  
    List<String> embedSegList = helper.getEmbedPathSegs(entity.getId(), rootMetaClass);
    boolean justUnderRoot = embedSegList.size() == 1;

    BasicDBObject setModifyObject = new BasicDBObject();
    if (lastField.getCardinality() == CardinalityEnum.Many) {
        BasicDBList valueList = (BasicDBList) embedParentObject.get(lastField.getFlattenValueDbName());
        if (valueList == null) {
            // creation
            valueList = new BasicDBList();
            valueList.add(entity.getNode());
            // set the value 
            embedParentObject.put(lastField.getFlattenValueDbName(), valueList);
            // set the field properties
            setFieldProperties(lastField, setModifyObject, embedParentObject, 1, new Date(), justUnderRoot);
        } else {
            // append
            int size = valueList.size();
            valueList.add(entity.getNode());
            setFieldProperties(lastField, setModifyObject, embedParentObject, size + 1, new Date(),
                    justUnderRoot);
        }
    } else {
        embedParentObject.put(lastField.getFlattenValueDbName(), entity.getNode());
        setFieldProperties(lastField, setModifyObject, embedParentObject, null, new Date(), justUnderRoot);
    }

    DBObject obj = (DBObject) rootObject.get(embedFieldName);
    if (obj == null) {
        throw new CmsDalException(DalErrCodeEnum.ENTITY_NOT_FOUND,
                "Create, can not find embed field with Id: " + this.entity.getId());
    }
    // update root field last modified
    MetaField rootEmbedfield = rootMetaClass.getFieldByFlattenValueDbName(embedFieldName);
    setModifyObject.put(rootEmbedfield.getFlattenPropertyValueDbName(FieldProperty.TIMESTAMP), new Date());

    setModifyObject.put(embedFieldName, obj);
    BasicDBObject modifyBody = new BasicDBObject();
    modifyBody.put("$set", setModifyObject);

    // increase version on root document
    BasicDBObject versionObject = new BasicDBObject();
    versionObject.put(InternalFieldEnum.VERSION.getDbName(), 1);
    modifyBody.put("$inc", versionObject);

    buildRootUpdateObject(entity, null, modifyBody, rootMetaClass);

    return modifyBody;
}