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