Skip to content

Create and document Java sync improved bulk write API #1458

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 40 commits into from
Sep 24, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
48b9614
Create and document Java sync improved bulk write API
stIncMale Jul 23, 2024
af854ed
Remove the type parameter from `ClientWriteModel`
stIncMale Jul 23, 2024
1eb7466
Remove `ClientBulkWriteException.create` as we can get by with the co…
stIncMale Jul 25, 2024
5567324
Merge branch 'master' into JAVA-5527
stIncMale Jul 27, 2024
644d561
Merge branch 'master' into JAVA-5527
stIncMale Aug 13, 2024
f566303
Do minor improvements
stIncMale Aug 15, 2024
3d13ffd
Make changes needed for the implementation
stIncMale Aug 15, 2024
cf46b46
Fix formatting in ClientUpdateManyModel
stIncMale Aug 15, 2024
e049234
Make a few minor changes
stIncMale Aug 15, 2024
0e16427
Merge branch 'master' into JAVA-5527
stIncMale Aug 15, 2024
0d518d8
Add more info to the API docs, add `ClientWriteModel` subtypes
stIncMale Aug 22, 2024
6b77f78
Add `ClientWriteModelWithNamespace`
stIncMale Aug 22, 2024
fdb90d2
Remove `throws` declarations from the API
stIncMale Aug 22, 2024
39386fe
Make wording on `ClientWriteModel` methods consistent with that on `C…
stIncMale Aug 22, 2024
f67af3f
Move constructor methods to `ClientNamespacedWriteModel`
stIncMale Aug 22, 2024
395af7a
Use `Optional` to express verbose/summary results
stIncMale Aug 22, 2024
a11e5f6
Make an API doc improvement
stIncMale Aug 27, 2024
f41ed59
Use `Integer` for indexes in `ClientBulkWriteResult.Verbose`. Make `C…
stIncMale Aug 28, 2024
4846e0b
Use `Integer` for indexes in `ClientBulkWriteException`.
stIncMale Aug 28, 2024
dbf9a26
Take `ClientBulkWriteException` into account in `OperationExecutor.ex…
stIncMale Aug 28, 2024
21bb22e
Make `ClientInsertOneResult.getInsertedId` return `Optional`
stIncMale Aug 28, 2024
f026ee3
Update the documentation of `ClientBulkWriteException` and remove a TODO
stIncMale Aug 28, 2024
3584de5
Move results to `com.mongodb.client.model.bulk`
stIncMale Aug 30, 2024
5a17ea0
Merge branch 'master' into JAVA-5527
stIncMale Aug 30, 2024
8e1d770
Move internal results to `com.mongodb.internal.client.model.bulk`
stIncMale Aug 30, 2024
e973615
Document that `bulkWrite` is not supported by serverless instances
stIncMale Aug 30, 2024
e33f592
Add subtypes of `ClientNamespacedWriteModel` and hide `ClientWriteModel`
stIncMale Sep 3, 2024
301a2ba
Remove a garbage comment
stIncMale Sep 3, 2024
6f01e61
Replace `ConcreteClientNamespacedWriteModel` with multiple more speci…
stIncMale Sep 9, 2024
c3224e9
Rearrange `ClientWriteModel` inheritance: "one" should extend "many",…
stIncMale Sep 9, 2024
c057390
Make internal `AbstractClientNamespacedWriteModel` public
stIncMale Sep 9, 2024
dbb6ec8
Rearrange `ClientWriteModel` inheritance: neither "one" nor "many" sh…
stIncMale Sep 9, 2024
f781bca
Make internal `AbstractClientUpdateModel`, `AbstractClientDeleteModel…
stIncMale Sep 9, 2024
3fc86bb
Stop linking to `Filters` from the documentation of `ClientNamespaced…
stIncMale Sep 17, 2024
86e5234
Update driver-core/src/main/com/mongodb/client/model/bulk/ClientBulkW…
stIncMale Sep 18, 2024
fb134f8
Update driver-core/src/main/com/mongodb/client/model/bulk/ClientDelet…
stIncMale Sep 18, 2024
a4bf4d0
Fix typos in API docs
stIncMale Sep 18, 2024
2837235
Change code to always refer to `ClientBulkWriteResult.Verbose` with t…
stIncMale Sep 18, 2024
b6702a6
Rename `ClientBulkWriteResult.Verbose` to `ClientBulkWriteResult.Verb…
stIncMale Sep 23, 2024
24ce6db
Improve partial result API documentation wording
stIncMale Sep 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
package com.mongodb;

import com.mongodb.bulk.WriteConcernError;
import com.mongodb.client.model.bulk.ClientWriteModel;
import com.mongodb.client.model.bulk.ClientBulkWriteResult;
import com.mongodb.client.model.bulk.ClientNamespacedWriteModel;
import com.mongodb.lang.Nullable;

import java.util.List;
Expand Down Expand Up @@ -112,7 +112,7 @@ public List<WriteConcernError> getWriteConcernErrors() {

/**
* The indexed {@link WriteError}s.
* The {@linkplain Map#keySet() keys} are the indexes of the corresponding {@link ClientWriteModel}s
* The {@linkplain Map#keySet() keys} are the indexes of the corresponding {@link ClientNamespacedWriteModel}s
* in the corresponding client-level bulk write operation.
* <p>
* There are no guarantees on mutability or iteration order of the {@link Map} returned.</p>
Expand All @@ -130,7 +130,7 @@ public Map<Integer, WriteError> getWriteErrors() {
* The result of the successful part of a client-level bulk write operation.
*
* @return The successful partial result. {@linkplain Optional#isPresent() Present} only if at least one
* {@linkplain ClientWriteModel individual write operation} succeed.
* {@linkplain ClientNamespacedWriteModel individual write operation} succeed.
*/
public Optional<ClientBulkWriteResult> getPartialResult() {
return ofNullable(partialResult);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ static ClientBulkWriteOptions clientBulkWriteOptions() {
}

/**
* Enables or disables ordered execution of {@linkplain ClientWriteModel individual write operations}.
* Enables or disables ordered execution of {@linkplain ClientNamespacedWriteModel individual write operations}.
* In an ordered execution a failure of an individual operation prevents the rest of them
* from being executed.
* In an unordered execution failures of individual operations do not prevent the rest of them
Expand All @@ -60,7 +60,7 @@ static ClientBulkWriteOptions clientBulkWriteOptions() {
ClientBulkWriteOptions bypassDocumentValidation(@Nullable Boolean bypassDocumentValidation);

/**
* Sets variables that can be referenced from {@linkplain ClientWriteModel individual write operations}
* Sets variables that can be referenced from {@linkplain ClientNamespacedWriteModel individual write operations}
* with the {@code "$$"} syntax, which in turn requires using {@link Filters#expr(Object)} when specifying filters.
* Values must be constants or expressions that do not reference fields.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

/**
* The result of a successful or partially successful client-level bulk write operation.
* Note that if only some of the {@linkplain ClientWriteModel individual write operations} succeed,
* Note that if only some of the {@linkplain ClientNamespacedWriteModel individual write operations} succeed,
* or if there are {@link WriteConcernError}s, then the successful partial result
* is still accessible via {@link ClientBulkWriteException#getPartialResult()}.
*
Expand Down Expand Up @@ -100,7 +100,7 @@ public interface ClientBulkWriteResult {
interface Verbose {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While Verbose accurately suggests that it provides more detailed or extended information than plain result, using an adjective as a class or interface name is somewhat unconventional in Java spec and the name might not immediately convey its purpose.

I would suggest noun-based naming, just couple of examples: VerboseBulkResult/ExtendedBulkResult

Copy link
Member Author

@stIncMale stIncMale Sep 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The intent was to refer to it as ClientBulkWriteResult.Verbose. I updated the code where this was not done, and following is how the rendered API docs look like

Screenshot 2024-09-18 at 14 31 18 Screenshot 2024-09-18 at 14 31 24 Screenshot 2024-09-18 at 14 31 39

Do you still think this type should be renamed? If yes, then VerboseResults is the name I'll use.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in b6702a6.

/**
* The indexed {@link ClientInsertOneResult}s.
* The {@linkplain Map#keySet() keys} are the indexes of the corresponding {@link ClientWriteModel}s
* The {@linkplain Map#keySet() keys} are the indexes of the corresponding {@link ClientNamespacedWriteModel}s
* in the client-level bulk write operation.
* <p>
* There are no guarantees on mutability or iteration order of the {@link Map} returned.</p>
Expand All @@ -112,7 +112,7 @@ interface Verbose {

/**
* The indexed {@link ClientUpdateResult}s.
* The {@linkplain Map#keySet() keys} are the indexes of the corresponding {@link ClientWriteModel}s
* The {@linkplain Map#keySet() keys} are the indexes of the corresponding {@link ClientNamespacedWriteModel}s
* in the client-level bulk write operation.
* <p>
* There are no guarantees on mutability or iteration order of the {@link Map} returned.</p>
Expand All @@ -124,7 +124,7 @@ interface Verbose {

/**
* The indexed {@link ClientDeleteResult}s.
* The {@linkplain Map#keySet() keys} are the indexes of the corresponding {@link ClientWriteModel}s
* The {@linkplain Map#keySet() keys} are the indexes of the corresponding {@link ClientNamespacedWriteModel}s
* in the client-level bulk write operation.
* <p>
* There are no guarantees on mutability or iteration order of the {@link Map} returned.</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import com.mongodb.bulk.WriteConcernError;

/**
* The result of a successful {@linkplain ClientWriteModel individual delete operation}.
* The result of a successful {@linkplain ClientNamespacedWriteModel individual delete operation}.
* Note that {@link WriteConcernError}s are not considered as making individuals operations unsuccessful.
*
* @since 5.3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import java.util.Optional;

/**
* The result of a successful {@linkplain ClientWriteModel individual insert one operation}.
* The result of a successful {@linkplain ClientNamespacedWriteModel individual insert one operation}.
* Note that {@link WriteConcernError}s are not considered as making individuals operations unsuccessful.
*
* @since 5.3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@
* @since 5.3
*/
@Sealed
public interface ClientDeleteManyModel extends ClientWriteModel {
public interface ClientNamespacedDeleteManyModel extends ClientNamespacedWriteModel {
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@
* @since 5.3
*/
@Sealed
public interface ClientDeleteOneModel extends ClientWriteModel {
public interface ClientNamespacedDeleteOneModel extends ClientNamespacedWriteModel {
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@
* @since 5.3
*/
@Sealed
public interface ClientInsertOneModel extends ClientWriteModel {
public interface ClientNamespacedInsertOneModel extends ClientNamespacedWriteModel {
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@
* @since 5.3
*/
@Sealed
public interface ClientReplaceOneModel extends ClientWriteModel {
public interface ClientNamespacedReplaceOneModel extends ClientNamespacedWriteModel {
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@
* @since 5.3
*/
@Sealed
public interface ClientUpdateManyModel extends ClientWriteModel {
public interface ClientNamespacedUpdateManyModel extends ClientNamespacedWriteModel {
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@
* @since 5.3
*/
@Sealed
public interface ClientUpdateOneModel extends ClientWriteModel {
public interface ClientNamespacedUpdateOneModel extends ClientNamespacedWriteModel {
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import static com.mongodb.assertions.Assertions.notNull;

/**
* A combination of an {@linkplain ClientWriteModel individual write operation} and a {@linkplain MongoNamespace namespace}
* A combination of an individual write operation and a {@linkplain MongoNamespace namespace}
* the operation is targeted at.
*
* @since 5.3
Expand All @@ -46,11 +46,11 @@ public interface ClientNamespacedWriteModel {
*
* @param namespace The namespace.
* @param document The document.
* @return The requested {@link ClientInsertOneModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedInsertOneModel}.
* @param <TDocument> The document type, for example {@link Document}.
* @see Filters
*/
static <TDocument> ClientNamespacedWriteModel insertOne(final MongoNamespace namespace, final TDocument document) {
static <TDocument> ClientNamespacedInsertOneModel insertOne(final MongoNamespace namespace, final TDocument document) {
notNull("namespace", namespace);
notNull("document", document);
return new ConcreteClientNamespacedWriteModel(namespace, new ConcreteClientInsertOneModel(document));
Expand All @@ -64,11 +64,11 @@ static <TDocument> ClientNamespacedWriteModel insertOne(final MongoNamespace nam
* @param namespace The namespace.
* @param filter The filter.
* @param update The update.
* @return The requested {@link ClientUpdateOneModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedUpdateOneModel}.
* @see Filters
* @see Updates
*/
static ClientNamespacedWriteModel updateOne(final MongoNamespace namespace, final Bson filter, final Bson update) {
static ClientNamespacedUpdateOneModel updateOne(final MongoNamespace namespace, final Bson filter, final Bson update) {
notNull("namespace", namespace);
notNull("filter", filter);
notNull("update", update);
Expand All @@ -82,11 +82,11 @@ static ClientNamespacedWriteModel updateOne(final MongoNamespace namespace, fina
* @param filter The filter.
* @param update The update.
* @param options The options.
* @return The requested {@link ClientUpdateOneModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedUpdateOneModel}.
* @see Filters
* @see Updates
*/
static ClientNamespacedWriteModel updateOne(
static ClientNamespacedUpdateOneModel updateOne(
final MongoNamespace namespace, final Bson filter, final Bson update, final ClientUpdateOptions options) {
notNull("namespace", namespace);
notNull("filter", filter);
Expand All @@ -103,11 +103,12 @@ static ClientNamespacedWriteModel updateOne(
* @param namespace The namespace.
* @param filter The filter.
* @param updatePipeline The update pipeline.
* @return The requested {@link ClientUpdateOneModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedUpdateOneModel}.
* @see Filters
* @see Aggregates
*/
static ClientNamespacedWriteModel updateOne(final MongoNamespace namespace, final Bson filter, final Iterable<? extends Bson> updatePipeline) {
static ClientNamespacedUpdateOneModel updateOne(
final MongoNamespace namespace, final Bson filter, final Iterable<? extends Bson> updatePipeline) {
notNull("namespace", namespace);
notNull("filter", filter);
notNull("updatePipeline", updatePipeline);
Expand All @@ -121,11 +122,11 @@ static ClientNamespacedWriteModel updateOne(final MongoNamespace namespace, fina
* @param filter The filter.
* @param updatePipeline The update pipeline.
* @param options The options.
* @return The requested {@link ClientUpdateOneModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedUpdateOneModel}.
* @see Filters
* @see Aggregates
*/
static ClientNamespacedWriteModel updateOne(
static ClientNamespacedUpdateOneModel updateOne(
final MongoNamespace namespace, final Bson filter, final Iterable<? extends Bson> updatePipeline, final ClientUpdateOptions options) {
notNull("namespace", namespace);
notNull("filter", filter);
Expand All @@ -142,11 +143,11 @@ static ClientNamespacedWriteModel updateOne(
* @param namespace The namespace.
* @param filter The filter.
* @param update The update.
* @return The requested {@link ClientUpdateManyModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedUpdateManyModel}.
* @see Filters
* @see Updates
*/
static ClientNamespacedWriteModel updateMany(final MongoNamespace namespace, final Bson filter, final Bson update) {
static ClientNamespacedUpdateManyModel updateMany(final MongoNamespace namespace, final Bson filter, final Bson update) {
notNull("namespace", namespace);
notNull("filter", filter);
notNull("update", update);
Expand All @@ -160,11 +161,11 @@ static ClientNamespacedWriteModel updateMany(final MongoNamespace namespace, fin
* @param filter The filter.
* @param update The update.
* @param options The options.
* @return The requested {@link ClientUpdateManyModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedUpdateManyModel}.
* @see Filters
* @see Updates
*/
static ClientNamespacedWriteModel updateMany(
static ClientNamespacedUpdateManyModel updateMany(
final MongoNamespace namespace, final Bson filter, final Bson update, final ClientUpdateOptions options) {
notNull("namespace", namespace);
notNull("filter", filter);
Expand All @@ -181,11 +182,12 @@ static ClientNamespacedWriteModel updateMany(
* @param namespace The namespace.
* @param filter The filter.
* @param updatePipeline The update pipeline.
* @return The requested {@link ClientUpdateManyModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedUpdateManyModel}.
* @see Filters
* @see Aggregates
*/
static ClientNamespacedWriteModel updateMany(final MongoNamespace namespace, final Bson filter, final Iterable<? extends Bson> updatePipeline) {
static ClientNamespacedUpdateManyModel updateMany(
final MongoNamespace namespace, final Bson filter, final Iterable<? extends Bson> updatePipeline) {
notNull("namespace", namespace);
notNull("filter", filter);
notNull("updatePipeline", updatePipeline);
Expand All @@ -199,11 +201,11 @@ static ClientNamespacedWriteModel updateMany(final MongoNamespace namespace, fin
* @param filter The filter.
* @param updatePipeline The update pipeline.
* @param options The options.
* @return The requested {@link ClientUpdateManyModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedUpdateManyModel}.
* @see Filters
* @see Aggregates
*/
static ClientNamespacedWriteModel updateMany(
static ClientNamespacedUpdateManyModel updateMany(
final MongoNamespace namespace, final Bson filter, final Iterable<? extends Bson> updatePipeline, final ClientUpdateOptions options) {
notNull("namespace", namespace);
notNull("filter", filter);
Expand All @@ -221,11 +223,11 @@ static ClientNamespacedWriteModel updateMany(
* @param filter The filter.
* @param replacement The replacement.
* The keys of this document must not start with {@code $}, unless they express a {@linkplain com.mongodb.DBRef database reference}.
* @return The requested {@link ClientReplaceOneModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedReplaceOneModel}.
* @param <TDocument> The document type, for example {@link Document}.
* @see Filters
*/
static <TDocument> ClientNamespacedWriteModel replaceOne(final MongoNamespace namespace, final Bson filter, final TDocument replacement) {
static <TDocument> ClientNamespacedReplaceOneModel replaceOne(final MongoNamespace namespace, final Bson filter, final TDocument replacement) {
notNull("namespace", namespace);
notNull("filter", filter);
notNull("replacement", replacement);
Expand All @@ -240,11 +242,11 @@ static <TDocument> ClientNamespacedWriteModel replaceOne(final MongoNamespace na
* @param replacement The replacement.
* The keys of this document must not start with {@code $}, unless they express a {@linkplain com.mongodb.DBRef database reference}.
* @param options The options.
* @return The requested {@link ClientReplaceOneModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedReplaceOneModel}.
* @param <TDocument> The document type, for example {@link Document}.
* @see Filters
*/
static <TDocument> ClientNamespacedWriteModel replaceOne(
static <TDocument> ClientNamespacedReplaceOneModel replaceOne(
final MongoNamespace namespace, final Bson filter, final TDocument replacement, final ClientReplaceOptions options) {
notNull("namespace", namespace);
notNull("filter", filter);
Expand All @@ -260,10 +262,10 @@ static <TDocument> ClientNamespacedWriteModel replaceOne(
*
* @param namespace The namespace.
* @param filter The filter.
* @return The requested {@link ClientDeleteOneModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedDeleteOneModel}.
* @see Filters
*/
static ClientNamespacedWriteModel deleteOne(final MongoNamespace namespace, final Bson filter) {
static ClientNamespacedDeleteOneModel deleteOne(final MongoNamespace namespace, final Bson filter) {
notNull("namespace", namespace);
notNull("filter", filter);
return new ConcreteClientNamespacedWriteModel(namespace, new ConcreteClientDeleteOneModel(filter, null));
Expand All @@ -275,10 +277,10 @@ static ClientNamespacedWriteModel deleteOne(final MongoNamespace namespace, fina
* @param namespace The namespace.
* @param filter The filter.
* @param options The options.
* @return The requested {@link ClientDeleteOneModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedDeleteOneModel}.
* @see Filters
*/
static ClientNamespacedWriteModel deleteOne(final MongoNamespace namespace, final Bson filter, final ClientDeleteOptions options) {
static ClientNamespacedDeleteOneModel deleteOne(final MongoNamespace namespace, final Bson filter, final ClientDeleteOptions options) {
notNull("namespace", namespace);
notNull("filter", filter);
notNull("options", options);
Expand All @@ -292,10 +294,10 @@ static ClientNamespacedWriteModel deleteOne(final MongoNamespace namespace, fina
*
* @param namespace The namespace.
* @param filter The filter.
* @return The requested {@link ClientDeleteManyModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedDeleteManyModel}.
* @see Filters
*/
static ClientNamespacedWriteModel deleteMany(final MongoNamespace namespace, final Bson filter) {
static ClientNamespacedDeleteManyModel deleteMany(final MongoNamespace namespace, final Bson filter) {
notNull("namespace", namespace);
notNull("filter", filter);
return new ConcreteClientNamespacedWriteModel(namespace, new ConcreteClientDeleteManyModel(filter, null));
Expand All @@ -307,10 +309,10 @@ static ClientNamespacedWriteModel deleteMany(final MongoNamespace namespace, fin
* @param namespace The namespace.
* @param filter The filter.
* @param options The options.
* @return The requested {@link ClientDeleteManyModel} model with the {@code namespace}.
* @return The requested {@link ClientNamespacedDeleteManyModel}.
* @see Filters
*/
static ClientNamespacedWriteModel deleteMany(final MongoNamespace namespace, final Bson filter, final ClientDeleteOptions options) {
static ClientNamespacedDeleteManyModel deleteMany(final MongoNamespace namespace, final Bson filter, final ClientDeleteOptions options) {
notNull("namespace", namespace);
notNull("filter", filter);
notNull("options", options);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import java.util.Optional;

/**
* The result of a successful {@linkplain ClientWriteModel individual update or replace operation}.
* The result of a successful {@linkplain ClientNamespacedWriteModel individual update or replace operation}.
* Note that {@link WriteConcernError}s are not considered as making individuals operations unsuccessful.
*
* @since 5.3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mongodb.client.model.bulk;

import com.mongodb.annotations.Sealed;
package com.mongodb.internal.client.model.bulk;

/**
* An individual write operation to be executed as part of a client-level bulk write operation.
*
* @since 5.3
* <p>
* This class is not part of the public API and may be removed or changed at any time.</p>
*/
@Sealed
public interface ClientWriteModel {
}
Loading