public abstract class com.mongodb.operation.BaseFindAndModifyOperation<T> implements com.mongodb.operation.AsyncWriteOperation<T>, com.mongodb.operation.WriteOperation<T>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.mongodb.operation.BaseFindAndModifyOperation
super_class: java.lang.Object
{
private final com.mongodb.MongoNamespace namespace;
descriptor: Lcom/mongodb/MongoNamespace;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.WriteConcern writeConcern;
descriptor: Lcom/mongodb/WriteConcern;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean retryWrites;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bson.codecs.Decoder<T> decoder;
descriptor: Lorg/bson/codecs/Decoder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/bson/codecs/Decoder<TT;>;
protected void <init>(com.mongodb.MongoNamespace, com.mongodb.WriteConcern, boolean, org.bson.codecs.Decoder<T>);
descriptor: (Lcom/mongodb/MongoNamespace;Lcom/mongodb/WriteConcern;ZLorg/bson/codecs/Decoder;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc "namespace"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.MongoNamespace
putfield com.mongodb.operation.BaseFindAndModifyOperation.namespace:Lcom/mongodb/MongoNamespace;
2: aload 0
ldc "writeConcern"
aload 2
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.WriteConcern
putfield com.mongodb.operation.BaseFindAndModifyOperation.writeConcern:Lcom/mongodb/WriteConcern;
3: aload 0
iload 3
putfield com.mongodb.operation.BaseFindAndModifyOperation.retryWrites:Z
4: aload 0
ldc "decoder"
aload 4
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bson.codecs.Decoder
putfield com.mongodb.operation.BaseFindAndModifyOperation.decoder:Lorg/bson/codecs/Decoder;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/mongodb/operation/BaseFindAndModifyOperation<TT;>;
0 6 1 namespace Lcom/mongodb/MongoNamespace;
0 6 2 writeConcern Lcom/mongodb/WriteConcern;
0 6 3 retryWrites Z
0 6 4 decoder Lorg/bson/codecs/Decoder<TT;>;
Signature: (Lcom/mongodb/MongoNamespace;Lcom/mongodb/WriteConcern;ZLorg/bson/codecs/Decoder<TT;>;)V
MethodParameters:
Name Flags
namespace final
writeConcern final
retryWrites final
decoder final
public T execute(com.mongodb.binding.WriteBinding);
descriptor: (Lcom/mongodb/binding/WriteBinding;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getDatabaseName:()Ljava/lang/String;
aconst_null
aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getFieldNameValidator:()Lorg/bson/FieldNameValidator;
1: aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getDecoder:()Lorg/bson/codecs/Decoder;
ldc "value"
invokestatic com.mongodb.operation.CommandResultDocumentCodec.create:(Lorg/bson/codecs/Decoder;Ljava/lang/String;)Lorg/bson/codecs/Codec;
2: aload 0
aload 1
invokeinterface com.mongodb.binding.WriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getCommandCreator:(Lcom/mongodb/session/SessionContext;)Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
3: invokestatic com.mongodb.operation.FindAndModifyHelper.transformer:()Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;
4: invokestatic com.mongodb.operation.CommandOperationHelper.executeRetryableCommand:(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/operation/BaseFindAndModifyOperation<TT;>;
0 5 1 binding Lcom/mongodb/binding/WriteBinding;
Signature: (Lcom/mongodb/binding/WriteBinding;)TT;
MethodParameters:
Name Flags
binding final
public void executeAsync(com.mongodb.binding.AsyncWriteBinding, com.mongodb.async.SingleResultCallback<T>);
descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getDatabaseName:()Ljava/lang/String;
aconst_null
aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getFieldNameValidator:()Lorg/bson/FieldNameValidator;
1: aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getDecoder:()Lorg/bson/codecs/Decoder;
ldc "value"
invokestatic com.mongodb.operation.CommandResultDocumentCodec.create:(Lorg/bson/codecs/Decoder;Ljava/lang/String;)Lorg/bson/codecs/Codec;
2: aload 0
aload 1
invokeinterface com.mongodb.binding.AsyncWriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getCommandCreator:(Lcom/mongodb/session/SessionContext;)Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
invokestatic com.mongodb.operation.FindAndModifyHelper.asyncTransformer:()Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;
aload 2
3: invokestatic com.mongodb.operation.CommandOperationHelper.executeRetryableCommand:(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/operation/BaseFindAndModifyOperation<TT;>;
0 5 1 binding Lcom/mongodb/binding/AsyncWriteBinding;
0 5 2 callback Lcom/mongodb/async/SingleResultCallback<TT;>;
Signature: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
MethodParameters:
Name Flags
binding final
callback final
protected abstract java.lang.String getDatabaseName();
descriptor: ()Ljava/lang/String;
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 0: aload 0
getfield com.mongodb.operation.BaseFindAndModifyOperation.namespace:Lcom/mongodb/MongoNamespace;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/operation/BaseFindAndModifyOperation<TT;>;
public com.mongodb.WriteConcern getWriteConcern();
descriptor: ()Lcom/mongodb/WriteConcern;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.operation.BaseFindAndModifyOperation.writeConcern:Lcom/mongodb/WriteConcern;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/operation/BaseFindAndModifyOperation<TT;>;
public org.bson.codecs.Decoder<T> getDecoder();
descriptor: ()Lorg/bson/codecs/Decoder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.operation.BaseFindAndModifyOperation.decoder:Lorg/bson/codecs/Decoder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/operation/BaseFindAndModifyOperation<TT;>;
Signature: ()Lorg/bson/codecs/Decoder<TT;>;
public boolean isRetryWrites();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.operation.BaseFindAndModifyOperation.retryWrites:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/operation/BaseFindAndModifyOperation<TT;>;
protected abstract com.mongodb.operation.CommandOperationHelper$CommandCreator getCommandCreator(com.mongodb.session.SessionContext);
descriptor: (Lcom/mongodb/session/SessionContext;)Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
sessionContext
protected void addTxnNumberToCommand(com.mongodb.connection.ServerDescription, com.mongodb.connection.ConnectionDescription, org.bson.BsonDocument, com.mongodb.session.SessionContext);
descriptor: (Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;Lorg/bson/BsonDocument;Lcom/mongodb/session/SessionContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.isRetryWrites:()Z
aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getWriteConcern:()Lcom/mongodb/WriteConcern;
aload 1
aload 2
aload 4
invokestatic com.mongodb.operation.OperationHelper.isRetryableWrite:(ZLcom/mongodb/WriteConcern;Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/session/SessionContext;)Z
ifeq 2
1: aload 3
ldc "txnNumber"
new org.bson.BsonInt64
dup
aload 4
invokeinterface com.mongodb.session.SessionContext.advanceTransactionNumber:()J
invokespecial org.bson.BsonInt64.<init>:(J)V
invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
pop
2: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mongodb/operation/BaseFindAndModifyOperation<TT;>;
0 3 1 serverDescription Lcom/mongodb/connection/ServerDescription;
0 3 2 connectionDescription Lcom/mongodb/connection/ConnectionDescription;
0 3 3 commandDocument Lorg/bson/BsonDocument;
0 3 4 sessionContext Lcom/mongodb/session/SessionContext;
MethodParameters:
Name Flags
serverDescription final
connectionDescription final
commandDocument final
sessionContext final
protected void addWriteConcernToCommand(com.mongodb.connection.ConnectionDescription, org.bson.BsonDocument, com.mongodb.session.SessionContext);
descriptor: (Lcom/mongodb/connection/ConnectionDescription;Lorg/bson/BsonDocument;Lcom/mongodb/session/SessionContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getWriteConcern:()Lcom/mongodb/WriteConcern;
invokevirtual com.mongodb.WriteConcern.isAcknowledged:()Z
ifeq 3
aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getWriteConcern:()Lcom/mongodb/WriteConcern;
invokevirtual com.mongodb.WriteConcern.isServerDefault:()Z
ifne 3
1: aload 1
invokestatic com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotTwo:(Lcom/mongodb/connection/ConnectionDescription;)Z
ifeq 3
aload 3
invokeinterface com.mongodb.session.SessionContext.hasActiveTransaction:()Z
ifne 3
2: aload 2
ldc "writeConcern"
aload 0
invokevirtual com.mongodb.operation.BaseFindAndModifyOperation.getWriteConcern:()Lcom/mongodb/WriteConcern;
invokevirtual com.mongodb.WriteConcern.asDocument:()Lorg/bson/BsonDocument;
invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
pop
3: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/operation/BaseFindAndModifyOperation<TT;>;
0 4 1 connectionDescription Lcom/mongodb/connection/ConnectionDescription;
0 4 2 commandDocument Lorg/bson/BsonDocument;
0 4 3 sessionContext Lcom/mongodb/session/SessionContext;
MethodParameters:
Name Flags
connectionDescription final
commandDocument final
sessionContext final
protected abstract org.bson.FieldNameValidator getFieldNameValidator();
descriptor: ()Lorg/bson/FieldNameValidator;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lcom/mongodb/operation/AsyncWriteOperation<TT;>;Lcom/mongodb/operation/WriteOperation<TT;>;
SourceFile: "BaseFindAndModifyOperation.java"
InnerClasses:
abstract CommandCreator = com.mongodb.operation.CommandOperationHelper$CommandCreator of com.mongodb.operation.CommandOperationHelper
abstract CommandWriteTransformer = com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer of com.mongodb.operation.CommandOperationHelper
abstract CommandWriteTransformerAsync = com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync of com.mongodb.operation.CommandOperationHelper
RuntimeVisibleAnnotations:
java.lang.Deprecated()