private Codec<BsonDocument> createCommandDecoder() { return CommandResultDocumentCodec.create(decoder, "firstBatch"); } }
private Codec<BsonDocument> createCommandDecoder() { return CommandResultDocumentCodec.create(decoder, VALUES); }
private Codec<BsonDocument> createCommandDecoder() { return CommandResultDocumentCodec.create(decoder, "firstBatch"); }
static <P> Codec<BsonDocument> create(final Decoder<P> decoder, final String fieldContainingPayload) { return create(decoder, Collections.singletonList(fieldContainingPayload)); }
@Override public void executeAsync(final AsyncReadBinding binding, final SingleResultCallback<AsyncBatchCursor<T>> callback) { withConnection(binding, new AsyncCallableWithConnectionAndSource() { @Override public void call(final AsyncConnectionSource source, final AsyncConnection connection, final Throwable t) { SingleResultCallback<AsyncBatchCursor<T>> errHandlingCallback = errorHandlingCallback(callback, LOGGER); if (t != null) { errHandlingCallback.onResult(null, t); } else { executeWrappedCommandProtocolAsync(binding, "admin", getCommand(), CommandResultDocumentCodec.create(decoder, "databases"), connection, asyncTransformer(source, connection), releasingCallback(errHandlingCallback, source, connection)); } } }); }
@Override public BatchCursor<T> call(final ConnectionSource connectionSource, final Connection connection) { validateCollation(connection, collation); return executeWrappedCommandProtocol(binding, namespace.getDatabaseName(), getCommand(), CommandResultDocumentCodec.create(decoder, "retval"), connection, transformer(connectionSource, connection)); } });
@Override public MapReduceBatchCursor<T> call(final ConnectionSource source, final Connection connection) { validateReadConcernAndCollation(connection, binding.getSessionContext().getReadConcern(), collation); return executeWrappedCommandProtocol(binding, namespace.getDatabaseName(), getCommand(binding.getSessionContext()), CommandResultDocumentCodec.create(decoder, "results"), connection, transformer(source, connection)); } });
@Override public List<BatchCursor<T>> call(final ConnectionSource source, final Connection connection) { validateReadConcern(connection, binding.getSessionContext().getReadConcern()); return executeWrappedCommandProtocol(binding, namespace.getDatabaseName(), getCommand(binding.getSessionContext()), CommandResultDocumentCodec.create(decoder, "firstBatch"), connection, transformer(source)); } });
@Override public T execute(final WriteBinding binding) { return executeRetryableCommand(binding, getDatabaseName(), null, getFieldNameValidator(), CommandResultDocumentCodec.create(getDecoder(), "value"), getCommandCreator(binding.getSessionContext()), FindAndModifyHelper.<T>transformer()); }
@Override public BatchCursor<T> call(final ConnectionSource source, final Connection connection) { validateReadConcernAndCollation(connection, binding.getSessionContext().getReadConcern(), collation); return executeWrappedCommandProtocol(binding, namespace.getDatabaseName(), getCommand(connection.getDescription(), binding.getSessionContext()), CommandResultDocumentCodec.create(decoder, FIELD_NAMES_WITH_RESULT), connection, transformer(source, connection)); } });
@Override public void executeAsync(final AsyncWriteBinding binding, final SingleResultCallback<T> callback) { executeRetryableCommand(binding, getDatabaseName(), null, getFieldNameValidator(), CommandResultDocumentCodec.create(getDecoder(), "value"), getCommandCreator(binding.getSessionContext()), FindAndModifyHelper.<T>transformer(), callback); }
private void getMore(final AsyncConnection connection, final ServerCursor cursor, final SingleResultCallback<List<T>> callback, final boolean tryNext) { if (serverIsAtLeastVersionThreeDotTwo(connection.getDescription())) { connection.commandAsync(namespace.getDatabaseName(), asGetMoreCommandDocument(cursor.getId()), NO_OP_FIELD_NAME_VALIDATOR, ReadPreference.primary(), CommandResultDocumentCodec.create(decoder, "nextBatch"), connectionSource.getSessionContext(), new CommandResultSingleResultCallback(connection, cursor, callback, tryNext)); } else { connection.getMoreAsync(namespace, cursor.getId(), getNumberToReturn(limit, batchSize, count.get()), decoder, new QueryResultSingleResultCallback(connection, callback, tryNext)); } }
private void getMore() { Connection connection = connectionSource.getConnection(); try { if (serverIsAtLeastVersionThreeDotTwo(connection.getDescription())) { try { initFromCommandResult(connection.command(namespace.getDatabaseName(), asGetMoreCommandDocument(), NO_OP_FIELD_NAME_VALIDATOR, ReadPreference.primary(), CommandResultDocumentCodec.create(decoder, "nextBatch"), connectionSource.getSessionContext())); } catch (MongoCommandException e) { throw translateCommandException(e, serverCursor); } } else { QueryResult<T> getMore = connection.getMore(namespace, serverCursor.getId(), getNumberToReturn(limit, batchSize, count), decoder); initFromQueryResult(getMore); } if (limitReached()) { killCursor(connection); } if (serverCursor == null) { this.connectionSource.release(); this.connectionSource = null; } } finally { connection.release(); } }
return executeWrappedCommandProtocol(binding, namespace.getDatabaseName(), wrapInExplainIfNecessary(getCommand(binding.getSessionContext())), CommandResultDocumentCodec.create(decoder, FIRST_BATCH), connection, transformer(source, connection)); } catch (MongoCommandException e) {
private Codec<BsonDocument> createCommandDecoder() { return CommandResultDocumentCodec.create(decoder, VALUES); }
@Override public MapReduceBatchCursor<T> call(final ConnectionSource source, final Connection connection) { validateReadConcernAndCollation(connection, binding.getSessionContext().getReadConcern(), collation); return executeWrappedCommandProtocol(binding, namespace.getDatabaseName(), getCommand(binding.getSessionContext()), CommandResultDocumentCodec.create(decoder, "results"), connection, transformer(source, connection)); } });
@Override public T execute(final WriteBinding binding) { return executeRetryableCommand(binding, getDatabaseName(), null, getFieldNameValidator(), CommandResultDocumentCodec.create(getDecoder(), "value"), getCommandCreator(binding.getSessionContext()), FindAndModifyHelper.<T>transformer()); }
@Override public BatchCursor<T> call(final ConnectionSource source, final Connection connection) { validateReadConcernAndCollation(connection, binding.getSessionContext().getReadConcern(), collation); return executeWrappedCommandProtocol(binding, namespace.getDatabaseName(), getCommand(connection.getDescription(), binding.getSessionContext()), CommandResultDocumentCodec.create(decoder, FIELD_NAMES_WITH_RESULT), connection, transformer(source, connection)); } });
@Override public void executeAsync(final AsyncWriteBinding binding, final SingleResultCallback<T> callback) { executeRetryableCommand(binding, getDatabaseName(), null, getFieldNameValidator(), CommandResultDocumentCodec.create(getDecoder(), "value"), getCommandCreator(binding.getSessionContext()), FindAndModifyHelper.<T>transformer(), callback); }
private void getMore(final AsyncConnection connection, final ServerCursor cursor, final SingleResultCallback<List<T>> callback, final boolean tryNext) { if (serverIsAtLeastVersionThreeDotTwo(connection.getDescription())) { connection.commandAsync(namespace.getDatabaseName(), asGetMoreCommandDocument(cursor.getId()), NO_OP_FIELD_NAME_VALIDATOR, ReadPreference.primary(), CommandResultDocumentCodec.create(decoder, "nextBatch"), connectionSource.getSessionContext(), new CommandResultSingleResultCallback(connection, cursor, callback, tryNext)); } else { connection.getMoreAsync(namespace, cursor.getId(), getNumberToReturn(limit, batchSize, count.get()), decoder, new QueryResultSingleResultCallback(connection, callback, tryNext)); } }