private static boolean isRetryable(final WriteRequest writeRequest) { if (writeRequest.getType() == UPDATE || writeRequest.getType() == REPLACE) { return !((UpdateRequest) writeRequest).isMulti(); } else if (writeRequest.getType() == DELETE) { return !((DeleteRequest) writeRequest).isMulti(); } return true; }
@Override public String toString() { return "BulkWriteError{" + "index=" + index + ", code=" + getCode() + ", message='" + getMessage() + '\'' + ", details=" + getDetails() + '}'; } }
/** * Create an acknowledged BulkWriteResult * * @param type the type of the write * @param count the number of documents matched * @param upserts the list of upserts * @return an acknowledged BulkWriteResult */ public static BulkWriteResult acknowledged(final WriteRequest.Type type, final int count, final List<BulkWriteUpsert> upserts) { return acknowledged(type, count, 0, upserts); }
private UpdateResult toUpdateResult(final com.mongodb.bulk.BulkWriteResult result) { if (result.wasAcknowledged()) { Long modifiedCount = result.isModifiedCountAvailable() ? (long) result.getModifiedCount() : null; BsonValue upsertedId = result.getUpserts().isEmpty() ? null : result.getUpserts().get(0).getId(); return UpdateResult.acknowledged(result.getMatchedCount(), modifiedCount, upsertedId); } else { return UpdateResult.unacknowledged(); } }
private boolean getUpdatedExisting(final BulkWriteResult bulkWriteResult) { if (getType() == UPDATE) { return bulkWriteResult.getMatchedCount() > 0; } return false; }
@Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } BulkWriteResult that = (BulkWriteResult) o; return !that.wasAcknowledged(); }
static void validateWriteRequestCollations(final ConnectionDescription connectionDescription, final List<? extends WriteRequest> requests, final WriteConcern writeConcern) { Collation collation = null; for (WriteRequest request : requests) { if (request instanceof UpdateRequest) { collation = ((UpdateRequest) request).getCollation(); } else if (request instanceof DeleteRequest) { collation = ((DeleteRequest) request).getCollation(); } if (collation != null) { break; } } validateCollationAndWriteConcern(connectionDescription, collation, writeConcern); }
@Override public int getInsertedCount() { throw getUnacknowledgedWriteException(); }
@Override com.mongodb.bulk.WriteRequest toNew(final DBCollection dbCollection) { return new com.mongodb.bulk.InsertRequest(new BsonDocumentWrapper<DBObject>(document, codec)); } }
WriteRequest.Type getType() { return writeRequest.getType(); } }
static void validateIndexRequestCollations(final Connection connection, final List<IndexRequest> requests) { for (IndexRequest request : requests) { if (request.getCollation() != null) { validateCollation(connection, request.getCollation()); break; } } }
private void mergeWriteConcernError(final WriteConcernError writeConcernError) { if (writeConcernError != null) { if (writeConcernErrors.isEmpty()) { writeConcernErrors.add(writeConcernError); } else if (!writeConcernError.equals(writeConcernErrors.get(writeConcernErrors.size() - 1))) { writeConcernErrors.add(writeConcernError); } } }
@Override public int getMatchedCount() { throw getUnacknowledgedWriteException(); }
/** * Create an acknowledged BulkWriteResult * * @param type the type of the write * @param count the number of documents matched * @param modifiedCount the number of documents modified, which may be null if the server was not able to provide the count * @param upserts the list of upserts * @return an acknowledged BulkWriteResult */ public static BulkWriteResult acknowledged(final WriteRequest.Type type, final int count, final Integer modifiedCount, final List<BulkWriteUpsert> upserts) { return acknowledged(type == WriteRequest.Type.INSERT ? count : 0, (type == WriteRequest.Type.UPDATE || type == WriteRequest.Type.REPLACE) ? count : 0, type == WriteRequest.Type.DELETE ? count : 0, modifiedCount, upserts); }
@Override public int getDeletedCount() { throw getUnacknowledgedWriteException(); }
@Override public List<BulkWriteUpsert> getUpserts() { throw getUnacknowledgedWriteException(); }
@Override public boolean isModifiedCountAvailable() { throw getUnacknowledgedWriteException(); }
@Override public int getModifiedCount() { throw getUnacknowledgedWriteException(); }