CommandResultCallback(final SingleResultCallback<T> callback, final Decoder<T> decoder, final long requestId, final ServerAddress serverAddress) { super(new BsonDocumentCodec(), requestId, serverAddress); this.callback = callback; this.decoder = decoder; }
private Object readResolve() { return new BsonDocumentCodec().decode(new BsonBinaryReader(ByteBuffer.wrap(bytes) .order(ByteOrder.LITTLE_ENDIAN)), DecoderContext.builder().build()); } }
/** * Gets a JSON representation of this document using the given {@code JsonWriterSettings}. * @param settings the JSON writer settings * @return a JSON representation of this document */ public String toJson(final JsonWriterSettings settings) { StringWriter writer = new StringWriter(); new BsonDocumentCodec().encode(new JsonWriter(writer, settings), this, EncoderContext.builder().build()); return writer.toString(); }
@Override public void encode(final BsonWriter writer, final BsonDocument value, final EncoderContext encoderContext) { writer.writeStartDocument(); beforeFields(writer, encoderContext, value); for (Map.Entry<String, BsonValue> entry : value.entrySet()) { if (skipField(encoderContext, entry.getKey())) { continue; } writer.writeName(entry.getKey()); writeValue(writer, encoderContext, entry.getValue()); } writer.writeEndDocument(); }
@Override public BsonDocument decode(final BsonReader reader, final DecoderContext decoderContext) { List<BsonElement> keyValuePairs = new ArrayList<BsonElement>(); reader.readStartDocument(); while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) { String fieldName = reader.readName(); keyValuePairs.add(new BsonElement(fieldName, readValue(reader, decoderContext))); } reader.readEndDocument(); return new BsonDocument(keyValuePairs); }
@Override protected BsonValue readValue(final BsonReader reader, final DecoderContext decoderContext) { if (fieldsContainingPayload.contains(reader.getCurrentName())) { if (reader.getCurrentBsonType() == BsonType.DOCUMENT) { return new BsonDocumentWrapper<T>(payloadDecoder.decode(reader, decoderContext), null); } else if (reader.getCurrentBsonType() == BsonType.ARRAY) { return new CommandResultArrayCodec<T>(getCodecRegistry(), payloadDecoder).decode(reader, decoderContext); } } return super.readValue(reader, decoderContext); } }
static <T> void executeWrappedCommandProtocolAsync(final AsyncReadBinding binding, final String database, final BsonDocument command, final AsyncConnection connection, final CommandTransformer<BsonDocument, T> transformer, final SingleResultCallback<T> callback) { executeWrappedCommandProtocolAsync(binding, database, command, new BsonDocumentCodec(), connection, transformer, callback); }
/** * Parses a string in MongoDB Extended JSON format to a {@code BsonDocument} * * @param json the JSON string * @return a corresponding {@code BsonDocument} object * @see org.bson.json.JsonReader * @mongodb.driver.manual reference/mongodb-extended-json/ MongoDB Extended JSON */ public static BsonDocument parse(final String json) { return new BsonDocumentCodec().decode(new JsonReader(json), DecoderContext.builder().build()); }
private static String getResponseAsJson(final BsonDocument commandResponse) { StringWriter writer = new StringWriter(); JsonWriter jsonWriter = new JsonWriter(writer); new BsonDocumentCodec().encode(jsonWriter, commandResponse, EncoderContext.builder().build()); return writer.toString(); }
@Override protected BsonValue readValue(final BsonReader reader, final DecoderContext decoderContext) { if (fieldsContainingPayload.contains(reader.getCurrentName())) { if (reader.getCurrentBsonType() == BsonType.DOCUMENT) { return new BsonDocumentWrapper<T>(payloadDecoder.decode(reader, decoderContext), null); } else if (reader.getCurrentBsonType() == BsonType.ARRAY) { return new CommandResultArrayCodec<T>(getCodecRegistry(), payloadDecoder).decode(reader, decoderContext); } } return super.readValue(reader, decoderContext); } }
static <T> void executeWrappedCommandProtocolAsync(final AsyncReadBinding binding, final String database, final BsonDocument command, final CommandTransformer<BsonDocument, T> transformer, final SingleResultCallback<T> callback) { executeWrappedCommandProtocolAsync(binding, database, command, new BsonDocumentCodec(), transformer, callback); }
private BsonDocument toBsonDocument() { BsonBinaryReader bsonReader = createReader(); try { return new BsonDocumentCodec().decode(bsonReader, DecoderContext.builder().build()); } finally { bsonReader.close(); } }
static boolean clientMetadataDocumentTooLarge(final BsonDocument document) { BasicOutputBuffer buffer = new BasicOutputBuffer(MAXIMUM_CLIENT_METADATA_ENCODED_SIZE); new BsonDocumentCodec().encode(new BsonBinaryWriter(buffer), document, EncoderContext.builder().build()); return buffer.getPosition() > MAXIMUM_CLIENT_METADATA_ENCODED_SIZE; }
static <T> void executeWrappedCommandProtocolAsync(final AsyncWriteBinding binding, final String database, final BsonDocument command, final CommandTransformer<BsonDocument, T> transformer, final SingleResultCallback<T> callback) { executeWrappedCommandProtocolAsync(binding, database, command, new BsonDocumentCodec(), transformer, callback); }
static BsonDocument toBson(JsonObject gson) throws IOException { return new BsonDocumentCodec().decode(asBsonReader(gson), DecoderContext.builder().build()); }
SerializationProxy(final BsonDocument document) { BasicOutputBuffer buffer = new BasicOutputBuffer(); new BsonDocumentCodec().encode(new BsonBinaryWriter(buffer), document, EncoderContext.builder().build()); this.bytes = new byte[buffer.size()]; int curPos = 0; for (ByteBuf cur : buffer.getByteBuffers()) { System.arraycopy(cur.array(), cur.position(), bytes, curPos, cur.limit()); curPos += cur.position(); } }
static BsonDocument executeWrappedCommandProtocol(final ReadBinding binding, final String database, final BsonDocument command) { return executeWrappedCommandProtocol(binding, database, command, new BsonDocumentCodec()); }
BsonDocument toBsonDocument() { ByteBuf duplicateByteBuf = byteBuf.duplicate(); BsonBinaryReader bsonReader = new BsonBinaryReader(new ByteBufferBsonInput(duplicateByteBuf)); try { return new BsonDocumentCodec().decode(bsonReader, DecoderContext.builder().build()); } finally { duplicateByteBuf.release(); bsonReader.close(); } }
static JsonReader asGsonReader(BsonDocument bson) { BasicOutputBuffer output = new BasicOutputBuffer(); new BsonDocumentCodec().encode(new BsonBinaryWriter(output), bson, EncoderContext.builder().build()); return new BsonReader(new BsonBinaryReader(ByteBuffer.wrap(output.toByteArray()))); }
static <T> T executeWrappedCommandProtocol(final ReadBinding binding, final String database, final BsonDocument command, final Connection connection, final CommandTransformer<BsonDocument, T> transformer) { return executeWrappedCommandProtocol(binding, database, command, new BsonDocumentCodec(), connection, transformer); }