@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> documentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName(fieldName); writer.writeStartDocument(); writer.writeName(operatorName); encodeValue(writer, value, codecRegistry); writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName("$replaceRoot"); writer.writeStartDocument(); writer.writeName("newRoot"); BuildersHelper.encodeValue(writer, value, codecRegistry); writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName(operator); writer.writeStartDocument(); writer.writeName(fieldName); encodeValue(writer, value, codecRegistry); writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName(operator); writer.writeStartDocument(); writer.writeName(fieldName); writer.writeStartDocument(); writer.writeStartArray("$each"); for (TItem value : values) { encodeValue(writer, value, codecRegistry); } writer.writeEndArray(); writeAdditionalFields(writer, tDocumentClass, codecRegistry); writer.writeEndDocument(); writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> documentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName(fieldName); writer.writeStartDocument(); writer.writeName(operatorName); writer.writeStartDocument(); writer.writeName("$geometry"); encodeValue(writer, geometry, codecRegistry); if (maxDistance != null) { writer.writeDouble("$maxDistance", maxDistance); } if (minDistance != null) { writer.writeDouble("$minDistance", minDistance); } writer.writeEndDocument(); writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName("$addFields"); writer.writeStartDocument(); for (Field<?> field : fields) { writer.writeName(field.getName()); BuildersHelper.encodeValue(writer, field.getValue(), codecRegistry); } writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
@SuppressWarnings("unchecked") private BsonDocument toBsonDocument(final String key, final Object value) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName(key); ((Encoder) database.getCodecRegistry().get(value.getClass())).encode(writer, value, ENCODER_CONTEXT); writer.writeEndDocument(); return writer.getDocument(); }
private BsonBinary createNewServerSessionIdentifier() { UuidCodec uuidCodec = new UuidCodec(UuidRepresentation.STANDARD); BsonDocument holder = new BsonDocument(); BsonDocumentWriter bsonDocumentWriter = new BsonDocumentWriter(holder); bsonDocumentWriter.writeStartDocument(); bsonDocumentWriter.writeName("id"); uuidCodec.encode(bsonDocumentWriter, UUID.randomUUID(), EncoderContext.builder().build()); bsonDocumentWriter.writeEndDocument(); return holder.getBinary("id"); } }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> documentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName(fieldName); writer.writeStartDocument(); writer.writeName(operatorName); writer.writeStartArray(); for (TItem value : values) { encodeValue(writer, value, codecRegistry); } writer.writeEndArray(); writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName("$pullAll"); writer.writeStartDocument(); writer.writeName(fieldName); writer.writeStartArray(); for (TItem value : values) { encodeValue(writer, value, codecRegistry); } writer.writeEndArray(); writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
static void writeBucketOutput(final CodecRegistry codecRegistry, final BsonDocumentWriter writer, @Nullable final List<BsonField> output) { if (output != null) { writer.writeName("output"); writer.writeStartDocument(); for (BsonField field : output) { writer.writeName(field.getName()); BuildersHelper.encodeValue(writer, field.getValue(), codecRegistry); } writer.writeEndDocument(); } }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName("$pull"); encodeValue(writer, filter, codecRegistry); writer.writeEndDocument(); return writer.getDocument(); } };
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeStartDocument("$group"); writer.writeName("_id"); BuildersHelper.encodeValue(writer, id, codecRegistry); for (BsonField fieldAccumulator : fieldAccumulators) { writer.writeName(fieldAccumulator.getName()); BuildersHelper.encodeValue(writer, fieldAccumulator.getValue(), codecRegistry); } writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> documentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName(fieldName); encodeValue(writer, value, codecRegistry); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName("$sortByCount"); BuildersHelper.encodeValue(writer, filter, codecRegistry); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> documentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName(name); BuildersHelper.encodeValue(writer, expression, codecRegistry); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName(fieldName); encodeValue(writer, value, codecRegistry); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeName("$facet"); writer.writeStartDocument(); for (Facet facet : facets) { writer.writeName(facet.getName()); writer.writeStartArray(); for (Bson bson : facet.getPipeline()) { BuildersHelper.encodeValue(writer, bson, codecRegistry); } writer.writeEndArray(); } writer.writeEndDocument(); writer.writeEndDocument(); return writer.getDocument(); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> tDocumentClass, final CodecRegistry codecRegistry) { BsonDocumentWriter writer = new BsonDocumentWriter(new BsonDocument()); writer.writeStartDocument(); writer.writeStartDocument("$bucketAuto"); writer.writeName("groupBy"); BuildersHelper.encodeValue(writer, groupBy, codecRegistry); writer.writeInt32("buckets", buckets); writeBucketOutput(codecRegistry, writer, options.getOutput()); BucketGranularity granularity = options.getGranularity(); if (granularity != null) { writer.writeString("granularity", granularity.getValue()); } writer.writeEndDocument(); return writer.getDocument(); }
@Test public void dateCodec() throws IOException { TypeAdapter<Date> adapter = GsonCodecs.typeAdapterFromCodec(new DateCodec()); Date date = new Date(); BsonDocument doc = new BsonDocument(); BsonDocumentWriter writer = new BsonDocumentWriter(doc); writer.writeStartDocument(); writer.writeName("$date"); adapter.write(new BsonWriter(writer), date); writer.writeEndDocument(); check(doc.keySet()).hasSize(1); check(doc.get("$date").getBsonType()).is(BsonType.DATE_TIME); check(doc.get("$date").asDateTime().getValue()).is(date.getTime()); } }