Skip to content

Commit dacd83c

Browse files
authored
CSHARP-5306: Make MongoDatabase, MongoCollection and MongoClient base internal (#1477)
1 parent d086a3e commit dacd83c

File tree

9 files changed

+100
-798
lines changed

9 files changed

+100
-798
lines changed

src/MongoDB.Driver/IMongoClient.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* Copyright 2013-present MongoDB Inc.
1+
/* Copyright 2010-present MongoDB Inc.
22
*
33
* Licensed under the Apache License, Version 2.0 (the "License");
44
* you may not use this file except in compliance with the License.
@@ -17,17 +17,12 @@
1717
using System.Threading.Tasks;
1818
using MongoDB.Bson;
1919
using MongoDB.Driver.Core.Clusters;
20-
using MongoDB.Driver.Core.Operations;
2120

2221
namespace MongoDB.Driver
2322
{
2423
/// <summary>
2524
/// The client interface to MongoDB.
2625
/// </summary>
27-
/// <remarks>
28-
/// This interface is not guaranteed to remain stable. Implementors should use
29-
/// <see cref="MongoClientBase"/>.
30-
/// </remarks>
3126
public interface IMongoClient
3227
{
3328
/// <summary>

src/MongoDB.Driver/IMongoDatabase.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,15 @@
1313
* limitations under the License.
1414
*/
1515

16-
using System;
17-
using System.Collections.Generic;
1816
using System.Threading;
1917
using System.Threading.Tasks;
2018
using MongoDB.Bson;
21-
using MongoDB.Driver.Core.Operations;
2219

2320
namespace MongoDB.Driver
2421
{
2522
/// <summary>
2623
/// Represents a database in MongoDB.
2724
/// </summary>
28-
/// <remarks>
29-
/// This interface is not guaranteed to remain stable. Implementors should use
30-
/// <see cref="MongoDatabaseBase" />.
31-
/// </remarks>
3225
public interface IMongoDatabase
3326
{
3427
/// <summary>

src/MongoDB.Driver/MongoClient.cs

Lines changed: 35 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
namespace MongoDB.Driver
3333
{
3434
/// <inheritdoc/>
35-
public class MongoClient : MongoClientBase
35+
public sealed class MongoClient : IMongoClient
3636
{
3737
// private fields
3838
private readonly IClusterInternal _cluster;
@@ -96,19 +96,11 @@ internal MongoClient(IOperationExecutor operationExecutor, MongoClientSettings s
9696
}
9797

9898
// public properties
99-
/// <summary>
100-
/// Gets the cluster.
101-
/// </summary>
102-
public override ICluster Cluster
103-
{
104-
get { return _cluster; }
105-
}
99+
/// <inheritdoc/>
100+
public ICluster Cluster => _cluster;
106101

107102
/// <inheritdoc/>
108-
public sealed override MongoClientSettings Settings
109-
{
110-
get { return _settings; }
111-
}
103+
public MongoClientSettings Settings => _settings;
112104

113105
// internal properties
114106
internal IAutoEncryptionLibMongoCryptController LibMongoCryptController => _libMongoCryptController;
@@ -130,13 +122,13 @@ internal void ConfigureAutoEncryptionMessageEncoderSettings(MessageEncoderSettin
130122

131123
// public methods
132124
/// <inheritdoc/>
133-
public sealed override void DropDatabase(string name, CancellationToken cancellationToken = default(CancellationToken))
125+
public void DropDatabase(string name, CancellationToken cancellationToken = default(CancellationToken))
134126
{
135127
UsingImplicitSession(session => DropDatabase(session, name, cancellationToken), cancellationToken);
136128
}
137129

138130
/// <inheritdoc/>
139-
public sealed override void DropDatabase(IClientSessionHandle session, string name, CancellationToken cancellationToken = default(CancellationToken))
131+
public void DropDatabase(IClientSessionHandle session, string name, CancellationToken cancellationToken = default(CancellationToken))
140132
{
141133
Ensure.IsNotNull(session, nameof(session));
142134
var messageEncoderSettings = GetMessageEncoderSettings();
@@ -148,13 +140,13 @@ internal void ConfigureAutoEncryptionMessageEncoderSettings(MessageEncoderSettin
148140
}
149141

150142
/// <inheritdoc/>
151-
public sealed override Task DropDatabaseAsync(string name, CancellationToken cancellationToken = default(CancellationToken))
143+
public Task DropDatabaseAsync(string name, CancellationToken cancellationToken = default(CancellationToken))
152144
{
153145
return UsingImplicitSessionAsync(session => DropDatabaseAsync(session, name, cancellationToken), cancellationToken);
154146
}
155147

156148
/// <inheritdoc/>
157-
public sealed override Task DropDatabaseAsync(IClientSessionHandle session, string name, CancellationToken cancellationToken = default(CancellationToken))
149+
public Task DropDatabaseAsync(IClientSessionHandle session, string name, CancellationToken cancellationToken = default(CancellationToken))
158150
{
159151
Ensure.IsNotNull(session, nameof(session));
160152
var messageEncoderSettings = GetMessageEncoderSettings();
@@ -166,42 +158,42 @@ internal void ConfigureAutoEncryptionMessageEncoderSettings(MessageEncoderSettin
166158
}
167159

168160
/// <inheritdoc/>
169-
public sealed override IMongoDatabase GetDatabase(string name, MongoDatabaseSettings settings = null)
161+
public IMongoDatabase GetDatabase(string name, MongoDatabaseSettings settings = null)
170162
{
171163
settings = settings == null ?
172164
new MongoDatabaseSettings() :
173165
settings.Clone();
174166

175167
settings.ApplyDefaultValues(_settings);
176168

177-
return new MongoDatabaseImpl(this, new DatabaseNamespace(name), settings, _cluster, _operationExecutor);
169+
return new MongoDatabase(this, new DatabaseNamespace(name), settings, _cluster, _operationExecutor);
178170
}
179171

180172
/// <inheritdoc />
181-
public sealed override IAsyncCursor<string> ListDatabaseNames(
173+
public IAsyncCursor<string> ListDatabaseNames(
182174
CancellationToken cancellationToken = default(CancellationToken))
183175
{
184176
return ListDatabaseNames(options: null, cancellationToken);
185177
}
186178

187179
/// <inheritdoc />
188-
public sealed override IAsyncCursor<string> ListDatabaseNames(
180+
public IAsyncCursor<string> ListDatabaseNames(
189181
ListDatabaseNamesOptions options,
190182
CancellationToken cancellationToken = default(CancellationToken))
191183
{
192184
return UsingImplicitSession(session => ListDatabaseNames(session, options, cancellationToken), cancellationToken);
193185
}
194186

195187
/// <inheritdoc />
196-
public sealed override IAsyncCursor<string> ListDatabaseNames(
188+
public IAsyncCursor<string> ListDatabaseNames(
197189
IClientSessionHandle session,
198190
CancellationToken cancellationToken = default(CancellationToken))
199191
{
200192
return ListDatabaseNames(session, options: null, cancellationToken);
201193
}
202194

203195
/// <inheritdoc />
204-
public sealed override IAsyncCursor<string> ListDatabaseNames(
196+
public IAsyncCursor<string> ListDatabaseNames(
205197
IClientSessionHandle session,
206198
ListDatabaseNamesOptions options,
207199
CancellationToken cancellationToken = default(CancellationToken))
@@ -213,30 +205,30 @@ public sealed override IAsyncCursor<string> ListDatabaseNames(
213205
}
214206

215207
/// <inheritdoc />
216-
public sealed override Task<IAsyncCursor<string>> ListDatabaseNamesAsync(
208+
public Task<IAsyncCursor<string>> ListDatabaseNamesAsync(
217209
CancellationToken cancellationToken = default(CancellationToken))
218210
{
219211
return ListDatabaseNamesAsync(options: null, cancellationToken);
220212
}
221213

222214
/// <inheritdoc />
223-
public sealed override Task<IAsyncCursor<string>> ListDatabaseNamesAsync(
215+
public Task<IAsyncCursor<string>> ListDatabaseNamesAsync(
224216
ListDatabaseNamesOptions options,
225217
CancellationToken cancellationToken = default(CancellationToken))
226218
{
227219
return UsingImplicitSessionAsync(session => ListDatabaseNamesAsync(session, options, cancellationToken), cancellationToken);
228220
}
229221

230222
/// <inheritdoc />
231-
public sealed override Task<IAsyncCursor<string>> ListDatabaseNamesAsync(
223+
public Task<IAsyncCursor<string>> ListDatabaseNamesAsync(
232224
IClientSessionHandle session,
233225
CancellationToken cancellationToken = default(CancellationToken))
234226
{
235227
return ListDatabaseNamesAsync(session, options: null, cancellationToken);
236228
}
237229

238230
/// <inheritdoc />
239-
public sealed override async Task<IAsyncCursor<string>> ListDatabaseNamesAsync(
231+
public async Task<IAsyncCursor<string>> ListDatabaseNamesAsync(
240232
IClientSessionHandle session,
241233
ListDatabaseNamesOptions options,
242234
CancellationToken cancellationToken = default(CancellationToken))
@@ -248,30 +240,30 @@ public sealed override async Task<IAsyncCursor<string>> ListDatabaseNamesAsync(
248240
}
249241

250242
/// <inheritdoc/>
251-
public sealed override IAsyncCursor<BsonDocument> ListDatabases(
243+
public IAsyncCursor<BsonDocument> ListDatabases(
252244
CancellationToken cancellationToken = default(CancellationToken))
253245
{
254246
return UsingImplicitSession(session => ListDatabases(session, cancellationToken), cancellationToken);
255247
}
256248

257249
/// <inheritdoc/>
258-
public sealed override IAsyncCursor<BsonDocument> ListDatabases(
250+
public IAsyncCursor<BsonDocument> ListDatabases(
259251
ListDatabasesOptions options,
260252
CancellationToken cancellationToken = default(CancellationToken))
261253
{
262254
return UsingImplicitSession(session => ListDatabases(session, options, cancellationToken), cancellationToken);
263255
}
264256

265257
/// <inheritdoc/>
266-
public sealed override IAsyncCursor<BsonDocument> ListDatabases(
258+
public IAsyncCursor<BsonDocument> ListDatabases(
267259
IClientSessionHandle session,
268260
CancellationToken cancellationToken = default(CancellationToken))
269261
{
270262
return ListDatabases(session, null, cancellationToken);
271263
}
272264

273265
/// <inheritdoc/>
274-
public sealed override IAsyncCursor<BsonDocument> ListDatabases(
266+
public IAsyncCursor<BsonDocument> ListDatabases(
275267
IClientSessionHandle session,
276268
ListDatabasesOptions options,
277269
CancellationToken cancellationToken = default(CancellationToken))
@@ -285,30 +277,30 @@ public sealed override IAsyncCursor<BsonDocument> ListDatabases(
285277
}
286278

287279
/// <inheritdoc/>
288-
public sealed override Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
280+
public Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
289281
CancellationToken cancellationToken = default(CancellationToken))
290282
{
291283
return UsingImplicitSessionAsync(session => ListDatabasesAsync(session, null, cancellationToken), cancellationToken);
292284
}
293285

294286
/// <inheritdoc/>
295-
public sealed override Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
287+
public Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
296288
ListDatabasesOptions options,
297289
CancellationToken cancellationToken = default(CancellationToken))
298290
{
299291
return UsingImplicitSessionAsync(session => ListDatabasesAsync(session, options, cancellationToken), cancellationToken);
300292
}
301293

302294
/// <inheritdoc/>
303-
public sealed override Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
295+
public Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
304296
IClientSessionHandle session,
305297
CancellationToken cancellationToken = default(CancellationToken))
306298
{
307299
return ListDatabasesAsync(session, null, cancellationToken);
308300
}
309301

310302
/// <inheritdoc/>
311-
public sealed override Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
303+
public Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
312304
IClientSessionHandle session,
313305
ListDatabasesOptions options,
314306
CancellationToken cancellationToken = default(CancellationToken))
@@ -340,19 +332,19 @@ internal Task<IClientSessionHandle> StartImplicitSessionAsync(CancellationToken
340332
}
341333

342334
/// <inheritdoc/>
343-
public sealed override IClientSessionHandle StartSession(ClientSessionOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
335+
public IClientSessionHandle StartSession(ClientSessionOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
344336
{
345337
return StartSession(options);
346338
}
347339

348340
/// <inheritdoc/>
349-
public sealed override Task<IClientSessionHandle> StartSessionAsync(ClientSessionOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
341+
public Task<IClientSessionHandle> StartSessionAsync(ClientSessionOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
350342
{
351343
return Task.FromResult(StartSession(options));
352344
}
353345

354346
/// <inheritdoc/>
355-
public override IChangeStreamCursor<TResult> Watch<TResult>(
347+
public IChangeStreamCursor<TResult> Watch<TResult>(
356348
PipelineDefinition<ChangeStreamDocument<BsonDocument>, TResult> pipeline,
357349
ChangeStreamOptions options = null,
358350
CancellationToken cancellationToken = default(CancellationToken))
@@ -361,7 +353,7 @@ public override IChangeStreamCursor<TResult> Watch<TResult>(
361353
}
362354

363355
/// <inheritdoc/>
364-
public override IChangeStreamCursor<TResult> Watch<TResult>(
356+
public IChangeStreamCursor<TResult> Watch<TResult>(
365357
IClientSessionHandle session,
366358
PipelineDefinition<ChangeStreamDocument<BsonDocument>, TResult> pipeline,
367359
ChangeStreamOptions options = null,
@@ -375,7 +367,7 @@ public override IChangeStreamCursor<TResult> Watch<TResult>(
375367
}
376368

377369
/// <inheritdoc/>
378-
public override Task<IChangeStreamCursor<TResult>> WatchAsync<TResult>(
370+
public Task<IChangeStreamCursor<TResult>> WatchAsync<TResult>(
379371
PipelineDefinition<ChangeStreamDocument<BsonDocument>, TResult> pipeline,
380372
ChangeStreamOptions options = null,
381373
CancellationToken cancellationToken = default(CancellationToken))
@@ -384,7 +376,7 @@ public override Task<IChangeStreamCursor<TResult>> WatchAsync<TResult>(
384376
}
385377

386378
/// <inheritdoc/>
387-
public override Task<IChangeStreamCursor<TResult>> WatchAsync<TResult>(
379+
public Task<IChangeStreamCursor<TResult>> WatchAsync<TResult>(
388380
IClientSessionHandle session,
389381
PipelineDefinition<ChangeStreamDocument<BsonDocument>, TResult> pipeline,
390382
ChangeStreamOptions options = null,
@@ -398,7 +390,7 @@ public override Task<IChangeStreamCursor<TResult>> WatchAsync<TResult>(
398390
}
399391

400392
/// <inheritdoc/>
401-
public override IMongoClient WithReadConcern(ReadConcern readConcern)
393+
public IMongoClient WithReadConcern(ReadConcern readConcern)
402394
{
403395
Ensure.IsNotNull(readConcern, nameof(readConcern));
404396
var newSettings = Settings.Clone();
@@ -407,7 +399,7 @@ public override IMongoClient WithReadConcern(ReadConcern readConcern)
407399
}
408400

409401
/// <inheritdoc/>
410-
public override IMongoClient WithReadPreference(ReadPreference readPreference)
402+
public IMongoClient WithReadPreference(ReadPreference readPreference)
411403
{
412404
Ensure.IsNotNull(readPreference, nameof(readPreference));
413405
var newSettings = Settings.Clone();
@@ -416,7 +408,7 @@ public override IMongoClient WithReadPreference(ReadPreference readPreference)
416408
}
417409

418410
/// <inheritdoc/>
419-
public override IMongoClient WithWriteConcern(WriteConcern writeConcern)
411+
public IMongoClient WithWriteConcern(WriteConcern writeConcern)
420412
{
421413
Ensure.IsNotNull(writeConcern, nameof(writeConcern));
422414
var newSettings = Settings.Clone();

0 commit comments

Comments
 (0)