List of usage examples for com.mongodb BasicDBObject get
public Object get(final String key)
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; }