List of usage examples for com.mongodb BasicDBObject get
public Object get(final String key)
From source file:com.ebay.cloud.cms.dal.persistence.flatten.impl.embed.EmbedFieldModifyCommand.java
License:Apache License
void buildRepalceBody(BasicDBObject embedObject, MetaField field) { BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); Object fieldObject = (Object) enityObject.get(field.getFlattenValueDbName()); embedObject.put(field.getFlattenValueDbName(), fieldObject); // field property for (FieldProperty fp : FieldProperty.values()) { String fpValueDbName = field.getFlattenPropertyValueDbName(fp); if (enityObject.containsField(fpValueDbName)) { embedObject.put(fpValueDbName, enityObject.get(fpValueDbName)); }/*from ww w .j a v a 2 s . c om*/ } }
From source file:com.ebay.cloud.cms.dal.persistence.flatten.impl.embed.EmbedFieldModifyCommand.java
License:Apache License
void buildJsonBody(BasicDBObject embedObject, MetaField field) { // incremental $set BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); BasicDBObject fieldObject = (BasicDBObject) enityObject.get(field.getFlattenValueDbName()); if (fieldObject != null) { DBObject valueObj = (DBObject) embedObject.get(field.getFlattenValueDbName()); if (valueObj == null) { valueObj = new BasicDBObject(); embedObject.put(field.getFlattenValueDbName(), valueObj); }/*from ww w.j a v a2 s . c o m*/ BasicDBObject givenValue = fieldObject; if (givenValue != null) { for (String key : givenValue.keySet()) { valueObj.put(key, givenValue.get(key)); } // update field property embedObject.put(field.getFlattenPropertyValueDbName(FieldProperty.TIMESTAMP), getEntity().getFieldTimestamp(field.getName())); } } }
From source file:com.ebay.cloud.cms.dal.persistence.flatten.impl.embed.EmbedFieldModifyCommand.java
License:Apache License
@SuppressWarnings({ "rawtypes", "unchecked" }) void buildArrayBody(BasicDBObject embedObject, MetaField field) { BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); List<?> fieldObject = (List<?>) enityObject.get(field.getFlattenValueDbName()); if (fieldObject != null) { List givenValue = fieldObject; if (givenValue != null) { List targetFieldList = new ArrayList(); BasicDBList list = (BasicDBList) embedObject.get(field.getFlattenValueDbName()); if (list != null) { targetFieldList.addAll(list); }//from w w w.ja v a2s . c o m targetFieldList.addAll(givenValue); BasicDBList valueList = new BasicDBList(); valueList.addAll(targetFieldList); // field value embedObject.put(field.getFlattenValueDbName(), valueList); // field property embedObject.put(field.getFlattenPropertyValueDbName(FieldProperty.LENGTH), targetFieldList.size()); embedObject.put(field.getFlattenPropertyValueDbName(FieldProperty.TIMESTAMP), new Date()); } } }
From source file:com.ebay.cloud.cms.dal.persistence.flatten.impl.root.RootFieldDeleteCommand.java
License:Apache License
private void buildFieldBody(BasicDBObject modifyBody) { MetaField field = getField();/* w ww. jav a 2 s . c o m*/ BasicDBObject unsetBody = deleteFieldAndFieldProperty(field); modifyBody.put("$unset", unsetBody); // need to update the expression fields MetaClass meta = getEntity().getMetaClass(); if (meta.hasExpressionFields()) { BasicDBObject setBody = null; // find the $set object if (!modifyBody.containsField("$set")) { setBody = new BasicDBObject(); modifyBody.put("$set", setBody); } else { setBody = (BasicDBObject) modifyBody.get("$set"); } List<MetaAttribute> expFields = meta.getExpressionFields(); // update field value and properties accordingly for (MetaAttribute expField : expFields) { updateExpressFieldAndProperty(setBody, expField); } } }
From source file:com.ebay.cloud.cms.dal.persistence.flatten.impl.root.RootFieldModifyCommand.java
License:Apache License
private void buildSetFieldBody(DBObject modifyBody) { MetaField field = getField();//from www . j av a 2s . c om BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); Object fieldObject = enityObject.get(field.getFlattenValueDbName()); if (fieldObject != null) { BasicDBObject set = (BasicDBObject) modifyBody.get("$set"); set.put(field.getFlattenValueDbName(), fieldObject); // need update the field property for (FieldProperty fp : FieldProperty.values()) { String propertyValueDbName = field.getFlattenPropertyValueDbName(fp); if (enityObject.containsField(propertyValueDbName)) { set.put(propertyValueDbName, enityObject.get(propertyValueDbName)); } } } }
From source file:com.ebay.cloud.cms.dal.persistence.flatten.impl.root.RootFieldModifyCommand.java
License:Apache License
private void buildArrayBody(DBObject modifyBody) { MetaField field = getField();// w ww . j av a 2 s. c om BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); Object givenValue = enityObject.get(field.getFlattenValueDbName()); if (givenValue != null) { BasicDBObject eachDbo = new BasicDBObject(); eachDbo.put("$each", givenValue); BasicDBObject addToSetDbo = new BasicDBObject(); addToSetDbo.put(field.getFlattenValueDbName(), eachDbo); modifyBody.put("$addToSet", addToSetDbo); // field length, only update when we do have updates BasicDBObject inc = (BasicDBObject) modifyBody.get("$inc"); inc.put(field.getFlattenPropertyValueDbName(FieldProperty.LENGTH), getEntity().getFieldLength(fieldName)); // field time stamp BasicDBObject set = (BasicDBObject) modifyBody.get("$set"); set.put(field.getFlattenPropertyValueDbName(FieldProperty.TIMESTAMP), getEntity().getFieldTimestamp(fieldName)); } }
From source file:com.ebay.cloud.cms.dal.persistence.flatten.impl.root.RootFieldModifyCommand.java
License:Apache License
private void buildJsonBody(DBObject modifyBody) { BasicDBObject set = (BasicDBObject) modifyBody.get("$set"); MetaField field = getField();/*from w w w. jav a2 s . com*/ BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); BasicDBObject fieldObject = (BasicDBObject) enityObject.get(field.getFlattenValueDbName()); if (fieldObject != null) { BasicDBObject givenValue = fieldObject; if (givenValue != null) { for (String key : givenValue.keySet()) { set.put(field.getFlattenValueDbName() + DOT + key, givenValue.get(key)); } // field properties // no length here set.put(field.getFlattenPropertyValueDbName(FieldProperty.TIMESTAMP), getEntity().getFieldTimestamp(field.getName())); } } }
From source file:com.ebay.cloud.cms.dal.persistence.impl.embed.EmbedCreateCommand.java
License:Apache License
public DBObject buildCreateBody(MetaRelationship lastField, String parentPath, BsonEntity 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); }//from w w w . j a va 2 s . co m embedParentObject.remove("_id"); if (lastField.getCardinality() == CardinalityEnum.Many) { BasicDBObject obj = (BasicDBObject) embedParentObject.get(lastField.getDbName()); BasicDBList valueList = null; if (obj != null) { valueList = (BasicDBList) obj.get(MetaField.VALUE_KEY); } if (valueList == null) { if (obj == null) { obj = new BasicDBObject(); embedParentObject.put(lastField.getDbName(), obj); } valueList = new BasicDBList(); valueList.add(entity.getNode()); obj.put(FieldProperty.LENGTH.getDbName(), 1); obj.put(FieldProperty.TIMESTAMP.getDbName(), new Date()); obj.put(MetaField.VALUE_KEY, valueList); } else { int size = valueList.size(); valueList.add(entity.getNode()); obj.put(FieldProperty.LENGTH.getDbName(), size + 1); obj.put(FieldProperty.TIMESTAMP.getDbName(), new Date()); obj.put(MetaField.VALUE_KEY, valueList); } } else { DBObject vObj = new BasicDBObject(); vObj.put(MetaField.VALUE_KEY, entity.getNode()); embedParentObject.put(lastField.getDbName(), vObj); } BasicDBObject setModifyObject = new BasicDBObject(); BasicDBObject obj = (BasicDBObject) rootObject.get(embedFieldName); if (obj == null) { throw new CmsDalException(DalErrCodeEnum.ENTITY_NOT_FOUND, "Create, can not find embed field with Id: " + this.entity.getId()); } 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; }
From source file:com.ebay.cloud.cms.dal.persistence.impl.embed.EmbedFieldModifyCommand.java
License:Apache License
@Override @SuppressWarnings({ "rawtypes", "unchecked" }) protected DBObject buildModifyBody(BitSet arrayBits, DBObject rootObject, MetaClass rootMetaClass) { BasicDBObject embedObject = (BasicDBObject) EmbedDBObjectFilter.filter(entity.getId(), rootObject, rootMetaClass, null, helper); MetaField field = getField();//from w ww . j a va2s . c om if (field.getCardinality() == CardinalityEnum.Many) { BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); BasicDBObject fieldObject = (BasicDBObject) enityObject.get(field.getDbName()); if (fieldObject != null) { List givenValue = (List) fieldObject.get(V); if (givenValue != null) { // merge with exsiting fields FIXME:: keep the same with RootFieldModifyCommand of using delta List targetFilterList = new ArrayList(); BasicDBObject existingFieldObject = (BasicDBObject) embedObject.get(field.getDbName()); if (existingFieldObject != null) { BasicDBList list = (BasicDBList) existingFieldObject.get(V); if (list != null) { targetFilterList.addAll(list); } } targetFilterList.addAll(givenValue); BasicDBList valueList = new BasicDBList(); valueList.addAll(targetFilterList); DBObject obj = (DBObject) embedObject.get(field.getDbName()); if (obj == null) { obj = new BasicDBObject(); embedObject.put(field.getDbName(), obj); } obj.put(V, valueList); obj.put(FieldProperty.LENGTH.getDbName(), targetFilterList.size()); obj.put(FieldProperty.TIMESTAMP.getDbName(), new Date()); } } } else if (field.getDataType().equals(DataTypeEnum.JSON)) { // incremental $set // buildJsonBody(parentPath, modifyBody); BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); BasicDBObject fieldObject = (BasicDBObject) enityObject.get(field.getDbName()); if (fieldObject != null) { DBObject obj = (DBObject) embedObject.get(field.getDbName()); if (obj == null) { obj = new BasicDBObject(); embedObject.put(field.getDbName(), obj); } DBObject valueObj = (DBObject) obj.get(V); if (valueObj == null) { valueObj = new BasicDBObject(); obj.put(V, valueObj); } BasicDBObject givenValue = (BasicDBObject) (fieldObject).get(V); if (givenValue != null) { for (String key : givenValue.keySet()) { valueObj.put(key, givenValue.get(key)); } valueObj.put(FieldProperty.TIMESTAMP.getDbName(), getEntity().getFieldTimestamp(field.getName())); } } } else { // non-array: replace the whole field BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); BasicDBObject fieldObject = (BasicDBObject) enityObject.get(field.getDbName()); embedObject.put(field.getDbName(), fieldObject); // buildSetFieldBody(parentPath, modifyBody); } embedObject.put(InternalFieldEnum.MODIFIER.getDbName(), entity.getModifier()); embedObject.put(InternalFieldEnum.LASTMODIFIED.getDbName(), entity.getLastModified()); return buildSetBody(rootObject); }
From source file:com.ebay.cloud.cms.dal.persistence.impl.root.RootFieldDeleteCommand.java
License:Apache License
private void buildFieldBody(BasicDBObject modifyBody) { MetaField field = getField();/*from w ww. j a v a 2 s. c o m*/ BasicDBObject unsetBody = new BasicDBObject(); unsetBody.put(field.getDbName(), ""); modifyBody.put("$unset", unsetBody); MetaClass meta = getEntity().getMetaClass(); if (meta.hasExpressionFields()) { BasicDBObject setBody = null; if (!modifyBody.containsField("$set")) { setBody = new BasicDBObject(); modifyBody.put("$set", setBody); } else { setBody = (BasicDBObject) modifyBody.get("$set"); } List<MetaAttribute> expFields = meta.getExpressionFields(); for (MetaAttribute expField : expFields) { String fieldDbName = expField.getDbName(); setBody.put(fieldDbName, getEntity().getNode().get(fieldDbName)); } } }