public abstract class com.mongodb.operation.BaseWriteOperation implements com.mongodb.operation.AsyncWriteOperation<com.mongodb.WriteConcernResult>, com.mongodb.operation.WriteOperation<com.mongodb.WriteConcernResult>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.mongodb.operation.BaseWriteOperation
  super_class: java.lang.Object
{
  private final com.mongodb.WriteConcern writeConcern;
    descriptor: Lcom/mongodb/WriteConcern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.MongoNamespace namespace;
    descriptor: Lcom/mongodb/MongoNamespace;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean ordered;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean retryWrites;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.Boolean bypassDocumentValidation;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(com.mongodb.MongoNamespace, boolean, com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/WriteConcern;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // boolean ordered
        start local 3 // com.mongodb.WriteConcern writeConcern
         0: .line 70
            aload 0 /* this */
            aload 1 /* namespace */
            iload 2 /* ordered */
            aload 3 /* writeConcern */
            iconst_0
            invokespecial com.mongodb.operation.BaseWriteOperation.<init>:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/WriteConcern;Z)V
         1: .line 71
            return
        end local 3 // com.mongodb.WriteConcern writeConcern
        end local 2 // boolean ordered
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/mongodb/operation/BaseWriteOperation;
            0    2     1     namespace  Lcom/mongodb/MongoNamespace;
            0    2     2       ordered  Z
            0    2     3  writeConcern  Lcom/mongodb/WriteConcern;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      namespace     final
      ordered       final
      writeConcern  final

  public void <init>(com.mongodb.MongoNamespace, boolean, com.mongodb.WriteConcern, boolean);
    descriptor: (Lcom/mongodb/MongoNamespace;ZLcom/mongodb/WriteConcern;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // boolean ordered
        start local 3 // com.mongodb.WriteConcern writeConcern
        start local 4 // boolean retryWrites
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            iload 2 /* ordered */
            putfield com.mongodb.operation.BaseWriteOperation.ordered:Z
         2: .line 85
            aload 0 /* this */
            ldc "namespace"
            aload 1 /* namespace */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.MongoNamespace
            putfield com.mongodb.operation.BaseWriteOperation.namespace:Lcom/mongodb/MongoNamespace;
         3: .line 86
            aload 0 /* this */
            ldc "writeConcern"
            aload 3 /* writeConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.WriteConcern
            putfield com.mongodb.operation.BaseWriteOperation.writeConcern:Lcom/mongodb/WriteConcern;
         4: .line 87
            aload 0 /* this */
            iload 4 /* retryWrites */
            putfield com.mongodb.operation.BaseWriteOperation.retryWrites:Z
         5: .line 88
            return
        end local 4 // boolean retryWrites
        end local 3 // com.mongodb.WriteConcern writeConcern
        end local 2 // boolean ordered
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/mongodb/operation/BaseWriteOperation;
            0    6     1     namespace  Lcom/mongodb/MongoNamespace;
            0    6     2       ordered  Z
            0    6     3  writeConcern  Lcom/mongodb/WriteConcern;
            0    6     4   retryWrites  Z
    MethodParameters:
              Name  Flags
      namespace     final
      ordered       final
      writeConcern  final
      retryWrites   final

  protected abstract java.util.List<? extends com.mongodb.bulk.WriteRequest> getWriteRequests();
    descriptor: ()Ljava/util/List;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: ()Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;

  protected abstract com.mongodb.bulk.WriteRequest$Type getType();
    descriptor: ()Lcom/mongodb/bulk/WriteRequest$Type;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public com.mongodb.MongoNamespace getNamespace();
    descriptor: ()Lcom/mongodb/MongoNamespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.BaseWriteOperation this
         0: .line 100
            aload 0 /* this */
            getfield com.mongodb.operation.BaseWriteOperation.namespace:Lcom/mongodb/MongoNamespace;
            areturn
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/BaseWriteOperation;

  public com.mongodb.WriteConcern getWriteConcern();
    descriptor: ()Lcom/mongodb/WriteConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.BaseWriteOperation this
         0: .line 109
            aload 0 /* this */
            getfield com.mongodb.operation.BaseWriteOperation.writeConcern:Lcom/mongodb/WriteConcern;
            areturn
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/BaseWriteOperation;

  public boolean isOrdered();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.BaseWriteOperation this
         0: .line 118
            aload 0 /* this */
            getfield com.mongodb.operation.BaseWriteOperation.ordered:Z
            ireturn
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/BaseWriteOperation;

  public java.lang.Boolean getBypassDocumentValidation();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.BaseWriteOperation this
         0: .line 129
            aload 0 /* this */
            getfield com.mongodb.operation.BaseWriteOperation.bypassDocumentValidation:Ljava/lang/Boolean;
            areturn
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/BaseWriteOperation;

  public com.mongodb.operation.BaseWriteOperation bypassDocumentValidation(java.lang.Boolean);
    descriptor: (Ljava/lang/Boolean;)Lcom/mongodb/operation/BaseWriteOperation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // java.lang.Boolean bypassDocumentValidation
         0: .line 141
            aload 0 /* this */
            aload 1 /* bypassDocumentValidation */
            putfield com.mongodb.operation.BaseWriteOperation.bypassDocumentValidation:Ljava/lang/Boolean;
         1: .line 142
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Boolean bypassDocumentValidation
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lcom/mongodb/operation/BaseWriteOperation;
            0    2     1  bypassDocumentValidation  Ljava/lang/Boolean;
    MethodParameters:
                          Name  Flags
      bypassDocumentValidation  final

  public com.mongodb.WriteConcernResult execute(com.mongodb.binding.WriteBinding);
    descriptor: (Lcom/mongodb/binding/WriteBinding;)Lcom/mongodb/WriteConcernResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.binding.WriteBinding binding
         0: .line 148
            aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getMixedBulkOperation:()Lcom/mongodb/operation/MixedBulkWriteOperation;
            aload 1 /* binding */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.execute:(Lcom/mongodb/binding/WriteBinding;)Lcom/mongodb/bulk/BulkWriteResult;
            astore 2 /* result */
        start local 2 // com.mongodb.bulk.BulkWriteResult result
         1: .line 149
            aload 2 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.wasAcknowledged:()Z
            ifeq 4
         2: .line 150
            aload 0 /* this */
            aload 2 /* result */
            invokevirtual com.mongodb.operation.BaseWriteOperation.translateBulkWriteResult:(Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/WriteConcernResult;
         3: areturn
         4: .line 152
      StackMap locals: com.mongodb.bulk.BulkWriteResult
      StackMap stack:
            invokestatic com.mongodb.WriteConcernResult.unacknowledged:()Lcom/mongodb/WriteConcernResult;
         5: areturn
        end local 2 // com.mongodb.bulk.BulkWriteResult result
         6: .line 154
      StackMap locals: com.mongodb.operation.BaseWriteOperation com.mongodb.binding.WriteBinding
      StackMap stack: com.mongodb.MongoBulkWriteException
            astore 2 /* e */
        start local 2 // com.mongodb.MongoBulkWriteException e
         7: .line 155
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual com.mongodb.operation.BaseWriteOperation.convertBulkWriteException:(Lcom/mongodb/MongoBulkWriteException;)Lcom/mongodb/MongoException;
            athrow
        end local 2 // com.mongodb.MongoBulkWriteException e
        end local 1 // com.mongodb.binding.WriteBinding binding
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/mongodb/operation/BaseWriteOperation;
            0    8     1  binding  Lcom/mongodb/binding/WriteBinding;
            1    6     2   result  Lcom/mongodb/bulk/BulkWriteResult;
            7    8     2        e  Lcom/mongodb/MongoBulkWriteException;
      Exception table:
        from    to  target  type
           0     3       6  Class com.mongodb.MongoBulkWriteException
           4     5       6  Class com.mongodb.MongoBulkWriteException
    MethodParameters:
         Name  Flags
      binding  final

  public void executeAsync(com.mongodb.binding.AsyncWriteBinding, com.mongodb.async.SingleResultCallback<com.mongodb.WriteConcernResult>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.binding.AsyncWriteBinding binding
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 161
            aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getMixedBulkOperation:()Lcom/mongodb/operation/MixedBulkWriteOperation;
            aload 1 /* binding */
            new com.mongodb.operation.BaseWriteOperation$1
            dup
            aload 0 /* this */
            aload 2 /* callback */
            invokespecial com.mongodb.operation.BaseWriteOperation$1.<init>:(Lcom/mongodb/operation/BaseWriteOperation;Lcom/mongodb/async/SingleResultCallback;)V
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.executeAsync:(Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 178
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.binding.AsyncWriteBinding binding
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/operation/BaseWriteOperation;
            0    2     1   binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/WriteConcernResult;>;
    Signature: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/WriteConcernResult;>;)V
    MethodParameters:
          Name  Flags
      binding   final
      callback  final

  private com.mongodb.operation.MixedBulkWriteOperation getMixedBulkOperation();
    descriptor: ()Lcom/mongodb/operation/MixedBulkWriteOperation;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // com.mongodb.operation.BaseWriteOperation this
         0: .line 181
            new com.mongodb.operation.MixedBulkWriteOperation
            dup
            aload 0 /* this */
            getfield com.mongodb.operation.BaseWriteOperation.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getWriteRequests:()Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.operation.BaseWriteOperation.ordered:Z
            aload 0 /* this */
            getfield com.mongodb.operation.BaseWriteOperation.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.operation.BaseWriteOperation.retryWrites:Z
            invokespecial com.mongodb.operation.MixedBulkWriteOperation.<init>:(Lcom/mongodb/MongoNamespace;Ljava/util/List;ZLcom/mongodb/WriteConcern;Z)V
         1: .line 182
            aload 0 /* this */
            getfield com.mongodb.operation.BaseWriteOperation.bypassDocumentValidation:Ljava/lang/Boolean;
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.bypassDocumentValidation:(Ljava/lang/Boolean;)Lcom/mongodb/operation/MixedBulkWriteOperation;
         2: .line 181
            areturn
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/operation/BaseWriteOperation;

  private com.mongodb.MongoException convertBulkWriteException(com.mongodb.MongoBulkWriteException);
    descriptor: (Lcom/mongodb/MongoBulkWriteException;)Lcom/mongodb/MongoException;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.MongoBulkWriteException e
         0: .line 187
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getLastError:(Lcom/mongodb/MongoBulkWriteException;)Lcom/mongodb/bulk/BulkWriteError;
            astore 2 /* lastError */
        start local 2 // com.mongodb.bulk.BulkWriteError lastError
         1: .line 188
            aload 2 /* lastError */
            ifnull 9
         2: .line 189
            aload 2 /* lastError */
            invokevirtual com.mongodb.bulk.BulkWriteError.getCode:()I
            invokestatic com.mongodb.ErrorCategory.fromErrorCode:(I)Lcom/mongodb/ErrorCategory;
            getstatic com.mongodb.ErrorCategory.DUPLICATE_KEY:Lcom/mongodb/ErrorCategory;
            if_acmpne 6
         3: .line 190
            new com.mongodb.DuplicateKeyException
            dup
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.operation.BaseWriteOperation.manufactureGetLastErrorResponse:(Lcom/mongodb/MongoBulkWriteException;)Lorg/bson/BsonDocument;
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getServerAddress:()Lcom/mongodb/ServerAddress;
         4: .line 191
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteResult:()Lcom/mongodb/bulk/BulkWriteResult;
            invokevirtual com.mongodb.operation.BaseWriteOperation.translateBulkWriteResult:(Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/WriteConcernResult;
         5: .line 190
            invokespecial com.mongodb.DuplicateKeyException.<init>:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;Lcom/mongodb/WriteConcernResult;)V
            areturn
         6: .line 193
      StackMap locals: com.mongodb.bulk.BulkWriteError
      StackMap stack:
            new com.mongodb.WriteConcernException
            dup
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.operation.BaseWriteOperation.manufactureGetLastErrorResponse:(Lcom/mongodb/MongoBulkWriteException;)Lorg/bson/BsonDocument;
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getServerAddress:()Lcom/mongodb/ServerAddress;
         7: .line 194
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteResult:()Lcom/mongodb/bulk/BulkWriteResult;
            invokevirtual com.mongodb.operation.BaseWriteOperation.translateBulkWriteResult:(Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/WriteConcernResult;
         8: .line 193
            invokespecial com.mongodb.WriteConcernException.<init>:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;Lcom/mongodb/WriteConcernResult;)V
            areturn
         9: .line 197
      StackMap locals:
      StackMap stack:
            new com.mongodb.WriteConcernException
            dup
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.operation.BaseWriteOperation.manufactureGetLastErrorResponse:(Lcom/mongodb/MongoBulkWriteException;)Lorg/bson/BsonDocument;
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getServerAddress:()Lcom/mongodb/ServerAddress;
        10: .line 198
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteResult:()Lcom/mongodb/bulk/BulkWriteResult;
            invokevirtual com.mongodb.operation.BaseWriteOperation.translateBulkWriteResult:(Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/WriteConcernResult;
        11: .line 197
            invokespecial com.mongodb.WriteConcernException.<init>:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;Lcom/mongodb/WriteConcernResult;)V
            areturn
        end local 2 // com.mongodb.bulk.BulkWriteError lastError
        end local 1 // com.mongodb.MongoBulkWriteException e
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/mongodb/operation/BaseWriteOperation;
            0   12     1          e  Lcom/mongodb/MongoBulkWriteException;
            1   12     2  lastError  Lcom/mongodb/bulk/BulkWriteError;
    MethodParameters:
      Name  Flags
      e     final

  private org.bson.BsonDocument manufactureGetLastErrorResponse(com.mongodb.MongoBulkWriteException);
    descriptor: (Lcom/mongodb/MongoBulkWriteException;)Lorg/bson/BsonDocument;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.MongoBulkWriteException e
         0: .line 203
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            astore 2 /* response */
        start local 2 // org.bson.BsonDocument response
         1: .line 204
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteResult:()Lcom/mongodb/bulk/BulkWriteResult;
            aload 2 /* response */
            invokevirtual com.mongodb.operation.BaseWriteOperation.addBulkWriteResultToResponse:(Lcom/mongodb/bulk/BulkWriteResult;Lorg/bson/BsonDocument;)V
         2: .line 205
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteConcernError:()Lcom/mongodb/bulk/WriteConcernError;
            ifnull 4
         3: .line 206
            aload 2 /* response */
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteConcernError:()Lcom/mongodb/bulk/WriteConcernError;
            invokevirtual com.mongodb.bulk.WriteConcernError.getDetails:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.putAll:(Ljava/util/Map;)V
         4: .line 208
      StackMap locals: org.bson.BsonDocument
      StackMap stack:
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getLastError:(Lcom/mongodb/MongoBulkWriteException;)Lcom/mongodb/bulk/BulkWriteError;
            ifnull 9
         5: .line 209
            aload 2 /* response */
            ldc "err"
            new org.bson.BsonString
            dup
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getLastError:(Lcom/mongodb/MongoBulkWriteException;)Lcom/mongodb/bulk/BulkWriteError;
            invokevirtual com.mongodb.bulk.BulkWriteError.getMessage:()Ljava/lang/String;
            invokespecial org.bson.BsonString.<init>:(Ljava/lang/String;)V
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
         6: .line 210
            aload 2 /* response */
            ldc "code"
            new org.bson.BsonInt32
            dup
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getLastError:(Lcom/mongodb/MongoBulkWriteException;)Lcom/mongodb/bulk/BulkWriteError;
            invokevirtual com.mongodb.bulk.BulkWriteError.getCode:()I
            invokespecial org.bson.BsonInt32.<init>:(I)V
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
         7: .line 211
            aload 2 /* response */
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getLastError:(Lcom/mongodb/MongoBulkWriteException;)Lcom/mongodb/bulk/BulkWriteError;
            invokevirtual com.mongodb.bulk.BulkWriteError.getDetails:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.putAll:(Ljava/util/Map;)V
         8: .line 213
            goto 12
      StackMap locals:
      StackMap stack:
         9: aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteConcernError:()Lcom/mongodb/bulk/WriteConcernError;
            ifnull 12
        10: .line 214
            aload 2 /* response */
            ldc "err"
            new org.bson.BsonString
            dup
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteConcernError:()Lcom/mongodb/bulk/WriteConcernError;
            invokevirtual com.mongodb.bulk.WriteConcernError.getMessage:()Ljava/lang/String;
            invokespecial org.bson.BsonString.<init>:(Ljava/lang/String;)V
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
        11: .line 215
            aload 2 /* response */
            ldc "code"
            new org.bson.BsonInt32
            dup
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteConcernError:()Lcom/mongodb/bulk/WriteConcernError;
            invokevirtual com.mongodb.bulk.WriteConcernError.getCode:()I
            invokespecial org.bson.BsonInt32.<init>:(I)V
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
        12: .line 217
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            areturn
        end local 2 // org.bson.BsonDocument response
        end local 1 // com.mongodb.MongoBulkWriteException e
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/mongodb/operation/BaseWriteOperation;
            0   13     1         e  Lcom/mongodb/MongoBulkWriteException;
            1   13     2  response  Lorg/bson/BsonDocument;
    MethodParameters:
      Name  Flags
      e     final

  private void addBulkWriteResultToResponse(com.mongodb.bulk.BulkWriteResult, org.bson.BsonDocument);
    descriptor: (Lcom/mongodb/bulk/BulkWriteResult;Lorg/bson/BsonDocument;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.bulk.BulkWriteResult bulkWriteResult
        start local 2 // org.bson.BsonDocument response
         0: .line 221
            aload 2 /* response */
            ldc "ok"
            new org.bson.BsonInt32
            dup
            iconst_1
            invokespecial org.bson.BsonInt32.<init>:(I)V
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
         1: .line 222
            aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.INSERT:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 4
         2: .line 223
            aload 2 /* response */
            ldc "n"
            new org.bson.BsonInt32
            dup
            iconst_0
            invokespecial org.bson.BsonInt32.<init>:(I)V
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
         3: .line 224
            goto 14
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.DELETE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 7
         5: .line 225
            aload 2 /* response */
            ldc "n"
            new org.bson.BsonInt32
            dup
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getDeletedCount:()I
            invokespecial org.bson.BsonInt32.<init>:(I)V
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
         6: .line 226
            goto 14
      StackMap locals:
      StackMap stack:
         7: aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpeq 8
            aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.REPLACE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 14
         8: .line 227
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            ldc "n"
            new org.bson.BsonInt32
            dup
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iadd
            invokespecial org.bson.BsonInt32.<init>:(I)V
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
         9: .line 228
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 12
        10: .line 229
            aload 2 /* response */
            ldc "updatedExisting"
            getstatic org.bson.BsonBoolean.TRUE:Lorg/bson/BsonBoolean;
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
        11: .line 230
            goto 14
        12: .line 231
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            ldc "updatedExisting"
            getstatic org.bson.BsonBoolean.FALSE:Lorg/bson/BsonBoolean;
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
        13: .line 232
            aload 2 /* response */
            ldc "upserted"
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteUpsert
            invokevirtual com.mongodb.bulk.BulkWriteUpsert.getId:()Lorg/bson/BsonValue;
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            pop
        14: .line 235
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.bson.BsonDocument response
        end local 1 // com.mongodb.bulk.BulkWriteResult bulkWriteResult
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lcom/mongodb/operation/BaseWriteOperation;
            0   15     1  bulkWriteResult  Lcom/mongodb/bulk/BulkWriteResult;
            0   15     2         response  Lorg/bson/BsonDocument;
    MethodParameters:
                 Name  Flags
      bulkWriteResult  final
      response         final

  private com.mongodb.WriteConcernResult translateBulkWriteResult(com.mongodb.bulk.BulkWriteResult);
    descriptor: (Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/WriteConcernResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.bulk.BulkWriteResult bulkWriteResult
         0: .line 238
            aload 0 /* this */
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getCount:(Lcom/mongodb/bulk/BulkWriteResult;)I
            aload 0 /* this */
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getUpdatedExisting:(Lcom/mongodb/bulk/BulkWriteResult;)Z
         1: .line 239
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
         2: .line 240
            aconst_null
            goto 4
      StackMap locals: com.mongodb.operation.BaseWriteOperation com.mongodb.bulk.BulkWriteResult
      StackMap stack: int int
         3: aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteUpsert
            invokevirtual com.mongodb.bulk.BulkWriteUpsert.getId:()Lorg/bson/BsonValue;
         4: .line 238
      StackMap locals: com.mongodb.operation.BaseWriteOperation com.mongodb.bulk.BulkWriteResult
      StackMap stack: int int org.bson.BsonValue
            invokestatic com.mongodb.WriteConcernResult.acknowledged:(IZLorg/bson/BsonValue;)Lcom/mongodb/WriteConcernResult;
            areturn
        end local 1 // com.mongodb.bulk.BulkWriteResult bulkWriteResult
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/mongodb/operation/BaseWriteOperation;
            0    5     1  bulkWriteResult  Lcom/mongodb/bulk/BulkWriteResult;
    MethodParameters:
                 Name  Flags
      bulkWriteResult  final

  private int getCount(com.mongodb.bulk.BulkWriteResult);
    descriptor: (Lcom/mongodb/bulk/BulkWriteResult;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.bulk.BulkWriteResult bulkWriteResult
         0: .line 246
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         1: .line 247
            aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpeq 2
            aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.REPLACE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 4
         2: .line 248
      StackMap locals: int
      StackMap stack:
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iadd
            istore 2 /* count */
         3: .line 249
            goto 6
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.DELETE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 6
         5: .line 250
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getDeletedCount:()I
            istore 2 /* count */
         6: .line 252
      StackMap locals:
      StackMap stack:
            iload 2 /* count */
            ireturn
        end local 2 // int count
        end local 1 // com.mongodb.bulk.BulkWriteResult bulkWriteResult
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lcom/mongodb/operation/BaseWriteOperation;
            0    7     1  bulkWriteResult  Lcom/mongodb/bulk/BulkWriteResult;
            1    7     2            count  I
    MethodParameters:
                 Name  Flags
      bulkWriteResult  final

  private boolean getUpdatedExisting(com.mongodb.bulk.BulkWriteResult);
    descriptor: (Lcom/mongodb/bulk/BulkWriteResult;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.bulk.BulkWriteResult bulkWriteResult
         0: .line 256
            aload 0 /* this */
            invokevirtual com.mongodb.operation.BaseWriteOperation.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 3
         1: .line 257
            aload 1 /* bulkWriteResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            ifle 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 259
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // com.mongodb.bulk.BulkWriteResult bulkWriteResult
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/mongodb/operation/BaseWriteOperation;
            0    4     1  bulkWriteResult  Lcom/mongodb/bulk/BulkWriteResult;
    MethodParameters:
                 Name  Flags
      bulkWriteResult  final

  private com.mongodb.bulk.BulkWriteError getLastError(com.mongodb.MongoBulkWriteException);
    descriptor: (Lcom/mongodb/MongoBulkWriteException;)Lcom/mongodb/bulk/BulkWriteError;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.operation.BaseWriteOperation this
        start local 1 // com.mongodb.MongoBulkWriteException e
         0: .line 263
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteErrors:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteErrors:()Ljava/util/List;
            aload 1 /* e */
            invokevirtual com.mongodb.MongoBulkWriteException.getWriteErrors:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteError
      StackMap locals:
      StackMap stack: com.mongodb.bulk.BulkWriteError
         2: areturn
        end local 1 // com.mongodb.MongoBulkWriteException e
        end local 0 // com.mongodb.operation.BaseWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/operation/BaseWriteOperation;
            0    3     1     e  Lcom/mongodb/MongoBulkWriteException;
    MethodParameters:
      Name  Flags
      e     final

  public java.lang.Object execute(com.mongodb.binding.WriteBinding);
    descriptor: (Lcom/mongodb/binding/WriteBinding;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.mongodb.operation.BaseWriteOperation.execute:(Lcom/mongodb/binding/WriteBinding;)Lcom/mongodb/WriteConcernResult;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lcom/mongodb/operation/AsyncWriteOperation<Lcom/mongodb/WriteConcernResult;>;Lcom/mongodb/operation/WriteOperation<Lcom/mongodb/WriteConcernResult;>;
SourceFile: "BaseWriteOperation.java"
NestMembers:
  com.mongodb.operation.BaseWriteOperation$1
InnerClasses:
  public final Type = com.mongodb.bulk.WriteRequest$Type of com.mongodb.bulk.WriteRequest
  com.mongodb.operation.BaseWriteOperation$1
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()