@Override public String getFieldPropertyName(MetaField field, FieldProperty property) { StringBuilder sb = new StringBuilder(); sb.append(field.getDbName()); sb.append('.'); sb.append(property.getDbName()); return sb.toString(); }
private void init(){ Map<String, MetaField> internals = InternalFieldFactory.getInternalMetaFields(); for (MetaField f : internals.values()) { fieldNameIndex.put(f.getName(), f); dbNameIndex.put(f.getDbName(), f); flattenValueDbNameIndex.put(f.getFlattenValueDbName(), f); } }
public void setFieldTimestamp(String fieldName, Date date) { MetaField metaField = getMetaClass().getFieldByName(fieldName); BasicDBObject fieldBsonObject = getOrNewBsonField(metaField.getDbName()); fieldBsonObject.put(FieldProperty.TIMESTAMP.getDbName(), date); bsonObject.put(metaField.getDbName(), fieldBsonObject); }
@Override public String getFieldPropertyName(MetaField field, FieldProperty property) { StringBuilder sb = new StringBuilder(); sb.append(field.getDbName()); sb.append('.'); sb.append(property.getDbName()); return sb.toString(); }
public void setFieldLength(String fieldName) { MetaField metaField = getMetaClass().getFieldByName(fieldName); BasicDBObject fieldBsonObject = getOrNewBsonField(metaField.getDbName()); int len = getFieldValues(fieldName).size(); fieldBsonObject.put(FieldProperty.LENGTH.getDbName(), len); bsonObject.put(metaField.getDbName(), fieldBsonObject); }
private void buildSetFieldBody(DBObject modifyBody) { MetaField field = getField(); BasicDBObject enityObject = (BasicDBObject) getEntity().getNode(); BasicDBObject fieldObject = (BasicDBObject) enityObject.get(field.getDbName()); if (fieldObject != null) { BasicDBObject set = (BasicDBObject) modifyBody.get("$set"); set.put(field.getDbName(), fieldObject); } }
public void setFieldProperty(String fieldName, String propertyName, Object value) { FieldProperty property = FieldProperty.fromQueryName(propertyName); CheckConditions.checkArgument(property != null, MessageFormat.format("field property %s not found!", propertyName)); MetaField metaField = getMetaClass().getFieldByName(fieldName); BasicDBObject fieldBsonObject = getOrNewBsonField(metaField.getDbName()); // FIXME: check value based on the data type fieldBsonObject.put(property.getDbName(), value); bsonObject.put(metaField.getDbName(), fieldBsonObject); }
@Override public void removeField(String fieldName) { MetaField metaField = getMetaClass().getFieldByName(fieldName); CheckConditions.checkArgument(metaField != null, "Can't find meta field %s", fieldName); String dbName = metaField.getDbName(); bsonObject.removeField(dbName); }
public void setFieldProperty(String fieldName, String propertyName, Object value) { 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; // FIXME: check value based on the data type fieldBsonObject.put(propertyDbName, value); }
@Override public boolean hasField(String fieldName){ MetaField metaField = getMetaClass().getFieldByName(fieldName); if (metaField == null) { return false; } String dbName = metaField.getDbName(); if (!metaField.isInternal()) { dbName = metaField.getFlattenValueDbName(); } return bsonObject.containsField(dbName); }
public void setFieldLength(String fieldName) { MetaField metaField = getMetaClass().getFieldByName(fieldName); BasicDBObject fieldBsonObject = getOrNewBsonField(metaField.getDbName()); int len = getFieldValues(fieldName).size(); fieldBsonObject.put(FieldProperty.LENGTH.getDbName(), len); bsonObject.put(metaField.getDbName(), fieldBsonObject); }
@Override public boolean hasField(String fieldName){ MetaField metaField = getMetaClass().getFieldByName(fieldName); if (metaField == null) { return false; } String dbName = metaField.getDbName(); return bsonObject.containsField(dbName); }
@Override protected Object getInternalFieldValue(InternalFieldEnum fieldEnum){ MetaField metaField = getMetaClass().getFieldByName(fieldEnum.getName()); String dbValName = metaField.getDbName(); Object bsonValue = bsonObject.get(dbValName); if (bsonValue == null) return null; DataTypeEnum dataType = metaField.getDataType(); IDataTypeHandler handler = BsonDataTypeHandlerFactory.getHandler(dataType); return handler.read(this, bsonValue, metaField); }
public void setFieldProperty(String fieldName, String propertyName, Object value) { FieldProperty property = FieldProperty.fromQueryName(propertyName); CheckConditions.checkArgument(property != null, MessageFormat.format("field property %s not found!", propertyName)); MetaField metaField = getMetaClass().getFieldByName(fieldName); BasicDBObject fieldBsonObject = getOrNewBsonField(metaField.getDbName()); // FIXME: check value based on the data type fieldBsonObject.put(property.getDbName(), value); bsonObject.put(metaField.getDbName(), fieldBsonObject); }
@Test public void testBooleanGetInvalidValue() { BasicDBObject given = new BasicDBObject(); BsonEntity bsonEntity = new BsonEntity(serviceInstanceMetadata, given); MetaField field = serviceInstanceMetadata.getFieldByName(HTTPS); BasicDBObject dbo = new BasicDBObject(); // add an invalid value dbo.put(MetaField.VALUE_KEY, "true"); given.put(field.getDbName(), dbo); List<?> invalidValue = bsonEntity.getFieldValues(HTTPS); Assert.assertEquals(0, invalidValue.size()); }
@Test public void testBooleanGetInvalidValue() { BasicDBObject given = new BasicDBObject(); NewBsonEntity bsonEntity = new NewBsonEntity(serviceInstanceMetadata, given); MetaField field = serviceInstanceMetadata.getFieldByName(HTTPS); BasicDBObject dbo = new BasicDBObject(); // add an invalid value dbo.put(MetaField.VALUE_KEY, "true"); given.put(field.getDbName(), dbo); List<?> invalidValue = bsonEntity.getFieldValues(HTTPS); Assert.assertEquals(0, invalidValue.size()); }
@Override public void removeField(String fieldName) { MetaField metaField = getMetaClass().getFieldByName(fieldName); CheckConditions.checkArgument(metaField != null, "Can't find meta field %s", fieldName); String dbName = metaField.getDbName(); bsonObject.removeField(dbName); }
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 { return null; } }
protected void validateDbName() { if(!StringUtils.isNullOrEmpty(getDbName())) { throw new IllegalMetaClassException(getName() + ": dbName must NOT be provided"); } if(!StringUtils.isNullOrEmpty(getValueDbName())) { throw new IllegalMetaClassException(getName() + ": valueDbName must NOT be provided"); } if(!StringUtils.isNullOrEmpty(getFlattenValueDbName())) { throw new IllegalMetaClassException(getName() + ": flattenValueDbName must NOT be provided"); } }
@Override protected Object getInternalFieldValue(InternalFieldEnum fieldEnum){ MetaField metaField = getMetaClass().getFieldByName(fieldEnum.getName()); String dbValName = metaField.getDbName(); Object bsonValue = bsonObject.get(dbValName); if (bsonValue == null) return null; DataTypeEnum dataType = metaField.getDataType(); IDataTypeHandler handler = BsonDataTypeHandlerFactory.getHandler(dataType); return handler.read(this, bsonValue, metaField); }