@Override public void encode(final BsonWriter writer, final ChangeStreamDocument<TResult> value, final EncoderContext encoderContext) { codec.encode(writer, value, encoderContext); }
@Override public void encode(final BsonWriter writer, final T value, final EncoderContext encoderContext) { getPojoCodec().encode(writer, value, encoderContext); }
@Override public void encode(final BsonWriter writer, final T value, final EncoderContext encoderContext) { getWrapped().encode(writer, value, encoderContext); }
@SuppressWarnings("unchecked") private <V> void doEncode(CodecRegistryProvider provider, StringWriter writer, V value, Supplier<Codec<V>> defaultCodec) { Codec<V> codec = provider.getCodecFor((Class<V>) value.getClass()).orElseGet(defaultCodec); JsonWriter jsonWriter = new JsonWriter(writer); codec.encode(jsonWriter, value, null); jsonWriter.flush(); } }
@Override public void encode(final BsonWriter writer, final Map<String, T> map, final EncoderContext encoderContext) { writer.writeStartDocument(); for (final Entry<String, T> entry : map.entrySet()) { writer.writeName(entry.getKey()); if (entry.getValue() == null) { writer.writeNull(); } else { codec.encode(writer, entry.getValue(), encoderContext); } } writer.writeEndDocument(); }
@Override public void serialize(T value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException { BsonWriter writer = ((BsonGenerator) gen).unwrap(); codec.encode(writer, value, EncoderContext.builder().build()); } }
@Override public void write(JsonWriter out, T value) throws IOException { BsonWriter writer = (BsonWriter) out; org.bson.BsonWriter delegate = writer.unwrap(); codec.encode(delegate, value, EncoderContext.builder().build()); }
@Override public void encode(final BsonWriter writer, final Collection<T> collection, final EncoderContext encoderContext) { writer.writeStartArray(); for (final T value : collection) { if (value == null) { writer.writeNull(); } else { codec.encode(writer, value, encoderContext); } } writer.writeEndArray(); }
@Override public void encode(final BsonWriter writer, final BsonJavaScriptWithScope codeWithScope, final EncoderContext encoderContext) { writer.writeJavaScriptWithScope(codeWithScope.getCode()); documentCodec.encode(writer, codeWithScope.getScope(), encoderContext); }
@Override public void encode(final BsonWriter writer, final CodeWithScope codeWithScope, final EncoderContext encoderContext) { writer.writeJavaScriptWithScope(codeWithScope.getCode()); documentCodec.encode(writer, codeWithScope.getScope(), encoderContext); }
/** * Converts to GeoJSON representation * * @return the GeoJSON representation */ @SuppressWarnings({"unchecked", "rawtypes", "deprecation"}) public String toJson() { StringWriter stringWriter = new StringWriter(); JsonWriter writer = new JsonWriter(stringWriter, new JsonWriterSettings()); Codec codec = getRegistry().get(getClass()); codec.encode(writer, this, EncoderContext.builder().build()); return stringWriter.toString(); }
@Override @SuppressWarnings("unchecked") public void encode(final BsonWriter writer, final BsonDocumentWrapper value, final EncoderContext encoderContext) { if (value.isUnwrapped()) { bsonDocumentCodec.encode(writer, value, encoderContext); } else { Encoder encoder = value.getEncoder(); encoder.encode(writer, value.getWrappedDocument(), encoderContext); } }
static void writeElements(final BsonWriter writer, final List<BsonElement> bsonElements) { for (BsonElement bsonElement : bsonElements) { writer.writeName(bsonElement.getName()); getCodec(bsonElement.getValue()).encode(writer, bsonElement.getValue(), ENCODER_CONTEXT); } }
private static boolean writeDocument(final BsonWriter writer, final BsonOutput bsonOutput, final MessageSettings settings, final BsonDocument document, final int messageStartPosition, final int batchItemCount) { int currentPosition = bsonOutput.getPosition(); getCodec(document).encode(writer, document, ENCODER_CONTEXT); int messageSize = bsonOutput.getPosition() - messageStartPosition; int documentSize = bsonOutput.getPosition() - currentPosition; if (exceedsLimits(settings, messageSize, documentSize, batchItemCount)) { bsonOutput.truncateToPosition(currentPosition); return false; } return true; }
private static byte[] toBson(final DBObject dbObject) { OutputBuffer outputBuffer = new BasicOutputBuffer(); DBObjectCodec.getDefaultRegistry().get(DBObject.class).encode(new BsonBinaryWriter(outputBuffer), dbObject, EncoderContext.builder().build()); return outputBuffer.toByteArray(); }
private void addDocumentWithPayload(final BsonOutput bsonOutput, final int messageStartPosition) { BsonBinaryWriter bsonBinaryWriter = new BsonBinaryWriter(bsonOutput, getPayloadArrayFieldNameValidator()); BsonWriter bsonWriter = new SplittablePayloadBsonWriter(bsonBinaryWriter, bsonOutput, messageStartPosition, getSettings(), payload); BsonDocument commandToEncode = getCommandToEncode(); getCodec(commandToEncode).encode(bsonWriter, commandToEncode, EncoderContext.builder().build()); }
@Override @SuppressWarnings({"unchecked", "rawtypes"}) public void encode(final BsonWriter writer, final DBRef value, final EncoderContext encoderContext) { writer.writeStartDocument(); writer.writeString("$ref", value.getCollectionName()); writer.writeName("$id"); Codec codec = registry.get(value.getId().getClass()); codec.encode(writer, value.getId(), encoderContext); if (value.getDatabaseName() != null) { writer.writeString("$db", value.getDatabaseName()); } writer.writeEndDocument(); }
@SuppressWarnings("unchecked") @Override public void encode(final BsonWriter writer, final T value, final EncoderContext encoderContext) { if (!specialized) { throw new CodecConfigurationException(format("%s contains generic types that have not been specialised.%n" + "Top level classes with generic types are not supported by the PojoCodec.", classModel.getName())); } if (areEquivalentTypes(value.getClass(), classModel.getType())) { writer.writeStartDocument(); encodeIdProperty(writer, value, encoderContext, classModel.getIdPropertyModelHolder()); if (classModel.useDiscriminator()) { writer.writeString(classModel.getDiscriminatorKey(), classModel.getDiscriminator()); } for (PropertyModel<?> propertyModel : classModel.getPropertyModels()) { if (propertyModel.equals(classModel.getIdPropertyModel())) { continue; } encodeProperty(writer, value, encoderContext, propertyModel); } writer.writeEndDocument(); } else { ((Codec<T>) registry.get(value.getClass())).encode(writer, value, encoderContext); } }
/** * Construct a new instance from the given document and codec for the document type. * * @param document the document to transform * @param codec the codec to facilitate the transformation * @param <T> the BSON type that the codec encodes/decodes */ public <T> RawBsonDocument(final T document, final Codec<T> codec) { notNull("document", document); notNull("codec", codec); BasicOutputBuffer buffer = new BasicOutputBuffer(); BsonBinaryWriter writer = new BsonBinaryWriter(buffer); try { codec.encode(writer, document, EncoderContext.builder().build()); this.bytes = buffer.getInternalBuffer(); this.offset = 0; this.length = buffer.getPosition(); } finally { writer.close(); } }
@Override @SuppressWarnings("deprecation") public void encode(final BsonWriter writer, final GridFSFile value, final EncoderContext encoderContext) { BsonDocument bsonDocument = new BsonDocument(); bsonDocument.put("_id", value.getId()); bsonDocument.put("filename", new BsonString(value.getFilename())); bsonDocument.put("length", new BsonInt64(value.getLength())); bsonDocument.put("chunkSize", new BsonInt32(value.getChunkSize())); bsonDocument.put("uploadDate", new BsonDateTime(value.getUploadDate().getTime())); if (value.getMD5() != null) { bsonDocument.put("md5", new BsonString(value.getMD5())); } Document metadata = value.getMetadata(); if (metadata != null) { bsonDocument.put("metadata", new BsonDocumentWrapper<Document>(metadata, documentCodec)); } Document extraElements = value.getExtraElements(); if (extraElements != null) { bsonDocument.putAll(new BsonDocumentWrapper<Document>(extraElements, documentCodec)); } bsonDocumentCodec.encode(writer, bsonDocument, encoderContext); }