use of org.bson.BsonDbPointer in project pinpoint by naver.
the class WritecontextTest method parseBsonArrayWithValues.
@Test
public void parseBsonArrayWithValues() throws IOException {
BsonValue a = new BsonString("stest");
BsonValue b = new BsonDouble(111);
BsonValue c = new BsonBoolean(true);
BsonDocument document = new BsonDocument().append("int32", new BsonInt32(12)).append("int64", new BsonInt64(77L)).append("bo\"olean", new BsonBoolean(true)).append("date", new BsonDateTime(new Date().getTime())).append("double", new BsonDouble(12.3)).append("string", new BsonString("pinpoint")).append("objectId", new BsonObjectId(new ObjectId())).append("code", new BsonJavaScript("int i = 10;")).append("codeWithScope", new BsonJavaScriptWithScope("int x = y", new BsonDocument("y", new BsonInt32(1)))).append("regex", new BsonRegularExpression("^test.*regex.*xyz$", "big")).append("symbol", new BsonSymbol("wow")).append("timestamp", new BsonTimestamp(0x12345678, 5)).append("undefined", new BsonUndefined()).append("binary1", new BsonBinary(new byte[] { (byte) 0xe0, 0x4f, (byte) 0xd0, 0x20 })).append("oldBinary", new BsonBinary(BsonBinarySubType.OLD_BINARY, new byte[] { 1, 1, 1, 1, 1 })).append("arrayInt", new BsonArray(Arrays.asList(a, b, c, new BsonInt32(7)))).append("document", new BsonDocument("a", new BsonInt32(77))).append("dbPointer", new BsonDbPointer("db.coll", new ObjectId())).append("null", new BsonNull()).append("decimal128", new BsonDecimal128(new Decimal128(55)));
BasicDBObject query = new BasicDBObject();
query.put("ComplexBson", document);
logger.debug("document:{}", document);
NormalizedBson stringStringValue = MongoUtil.parseBson(new Object[] { query }, true);
logger.debug("val:{}", stringStringValue);
List list = objectMapper.readValue("[" + stringStringValue.getNormalizedBson() + "]", List.class);
Assert.assertEquals(list.size(), 1);
Map<String, ?> query1Map = (Map<String, ?>) list.get(0);
checkValue(query1Map);
}
use of org.bson.BsonDbPointer in project mongo-java-driver by mongodb.
the class JsonReader method visitDBPointerConstructor.
private BsonDbPointer visitDBPointerConstructor() {
verifyToken(JsonTokenType.LEFT_PAREN);
String namespace = readStringFromExtendedJson();
verifyToken(JsonTokenType.COMMA);
ObjectId id = new ObjectId(readStringFromExtendedJson());
verifyToken(JsonTokenType.RIGHT_PAREN);
return new BsonDbPointer(namespace, id);
}
use of org.bson.BsonDbPointer in project mongo-java-driver by mongodb.
the class DBObjectCodec method readValue.
@Nullable
private Object readValue(final BsonReader reader, final DecoderContext decoderContext, @Nullable final String fieldName, final List<String> path) {
Object initialRetVal;
BsonType bsonType = reader.getCurrentBsonType();
if (bsonType.isContainer() && fieldName != null) {
// if we got into some new context like nested document or array
path.add(fieldName);
}
switch(bsonType) {
case DOCUMENT:
initialRetVal = verifyForDBRef(readDocument(reader, decoderContext, path));
break;
case ARRAY:
initialRetVal = readArray(reader, decoderContext, path);
break;
case // custom for driver-compat types
JAVASCRIPT_WITH_SCOPE:
initialRetVal = readCodeWScope(reader, decoderContext, path);
break;
case // custom for driver-compat types
DB_POINTER:
BsonDbPointer dbPointer = reader.readDBPointer();
initialRetVal = new DBRef(dbPointer.getNamespace(), dbPointer.getId());
break;
case BINARY:
initialRetVal = readBinary(reader, decoderContext);
break;
case NULL:
reader.readNull();
initialRetVal = null;
break;
default:
initialRetVal = bsonTypeCodecMap.get(bsonType).decode(reader, decoderContext);
}
if (bsonType.isContainer() && fieldName != null) {
// step out of current context to a parent
path.remove(fieldName);
}
return initialRetVal;
}
use of org.bson.BsonDbPointer in project pinpoint by naver.
the class MongoDBITBase method createComplexDocument.
private Document createComplexDocument() {
// insert Data
BsonValue a = new BsonString("stest");
BsonValue b = new BsonDouble(111);
BsonValue c = new BsonBoolean(true);
Document document = new Document().append("int32", new BsonInt32(12)).append("int64", new BsonInt64(77L)).append("bo\"olean", new BsonBoolean(true)).append("date", new BsonDateTime(new Date().getTime())).append("double", new BsonDouble(12.3)).append("string", new BsonString("pinpoint")).append("objectId", new BsonObjectId(new ObjectId())).append("code", new BsonJavaScript("int i = 10;")).append("codeWithScope", new BsonJavaScriptWithScope("int x = y", new BsonDocument("y", new BsonInt32(1)))).append("regex", new BsonRegularExpression("^test.*regex.*xyz$", "big")).append("symbol", new BsonSymbol("wow")).append("timestamp", new BsonTimestamp(0x12345678, 5)).append("undefined", new BsonUndefined()).append("binary1", new BsonBinary(new byte[] { (byte) 0xe0, 0x4f, (byte) 0xd0, 0x20 })).append("oldBinary", new BsonBinary(BsonBinarySubType.OLD_BINARY, new byte[] { 1, 1, 1, 1, 1 })).append("arrayInt", new BsonArray(Arrays.asList(a, b, c, new BsonInt32(7)))).append("document", new BsonDocument("a", new BsonInt32(77))).append("dbPointer", new BsonDbPointer("db.coll", new ObjectId())).append("null", new BsonNull());
return document;
}
use of org.bson.BsonDbPointer in project mongo-java-driver by mongodb.
the class JsonReader method visitDbPointerExtendedJson.
private BsonDbPointer visitDbPointerExtendedJson() {
verifyToken(JsonTokenType.COLON);
verifyToken(JsonTokenType.BEGIN_OBJECT);
String ref;
ObjectId oid;
String firstKey = readStringFromExtendedJson();
if (firstKey.equals("$ref")) {
verifyToken(JsonTokenType.COLON);
ref = readStringFromExtendedJson();
verifyToken(JsonTokenType.COMMA);
verifyString("$id");
oid = readDbPointerIdFromExtendedJson();
verifyToken(JsonTokenType.END_OBJECT);
} else if (firstKey.equals("$id")) {
oid = readDbPointerIdFromExtendedJson();
verifyToken(JsonTokenType.COMMA);
verifyString("$ref");
verifyToken(JsonTokenType.COLON);
ref = readStringFromExtendedJson();
} else {
throw new JsonParseException("Expected $ref and $id fields in $dbPointer document but found " + firstKey);
}
verifyToken(JsonTokenType.END_OBJECT);
return new BsonDbPointer(ref, oid);
}
Aggregations