class com.mongodb.internal.connection.CommandProtocolImpl<T> implements com.mongodb.internal.connection.CommandProtocol<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.internal.connection.CommandProtocolImpl
super_class: java.lang.Object
{
private final com.mongodb.MongoNamespace namespace;
descriptor: Lcom/mongodb/MongoNamespace;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bson.BsonDocument command;
descriptor: Lorg/bson/BsonDocument;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.connection.SplittablePayload payload;
descriptor: Lcom/mongodb/connection/SplittablePayload;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.ReadPreference readPreference;
descriptor: Lcom/mongodb/ReadPreference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bson.FieldNameValidator commandFieldNameValidator;
descriptor: Lorg/bson/FieldNameValidator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bson.FieldNameValidator payloadFieldNameValidator;
descriptor: Lorg/bson/FieldNameValidator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bson.codecs.Decoder<T> commandResultDecoder;
descriptor: Lorg/bson/codecs/Decoder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/bson/codecs/Decoder<TT;>;
private final boolean responseExpected;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.connection.ClusterConnectionMode clusterConnectionMode;
descriptor: Lcom/mongodb/connection/ClusterConnectionMode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.mongodb.session.SessionContext sessionContext;
descriptor: Lcom/mongodb/session/SessionContext;
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, com.mongodb.ReadPreference, org.bson.codecs.Decoder<T>);
descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;)V
flags: (0x0000)
Code:
stack=10, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
iconst_1
aconst_null
aconst_null
1: getstatic com.mongodb.connection.ClusterConnectionMode.MULTIPLE:Lcom/mongodb/connection/ClusterConnectionMode;
invokespecial com.mongodb.internal.connection.CommandProtocolImpl.<init>:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/connection/ClusterConnectionMode;)V
2: return
end local 5 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/internal/connection/CommandProtocolImpl<TT;>;
0 3 1 database Ljava/lang/String;
0 3 2 command Lorg/bson/BsonDocument;
0 3 3 commandFieldNameValidator Lorg/bson/FieldNameValidator;
0 3 4 readPreference Lcom/mongodb/ReadPreference;
0 3 5 commandResultDecoder Lorg/bson/codecs/Decoder<TT;>;
Signature: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder<TT;>;)V
MethodParameters:
Name Flags
database final
command final
commandFieldNameValidator final
readPreference final
commandResultDecoder final
void <init>(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, com.mongodb.ReadPreference, org.bson.codecs.Decoder<T>, boolean, com.mongodb.connection.SplittablePayload, org.bson.FieldNameValidator, com.mongodb.connection.ClusterConnectionMode);
descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/connection/ClusterConnectionMode;)V
flags: (0x0000)
Code:
stack=5, locals=10, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: ldc "database"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
new com.mongodb.MongoNamespace
dup
ldc "database"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
ldc "$cmd"
invokespecial com.mongodb.MongoNamespace.<init>:(Ljava/lang/String;Ljava/lang/String;)V
putfield com.mongodb.internal.connection.CommandProtocolImpl.namespace:Lcom/mongodb/MongoNamespace;
3: aload 0
ldc "command"
aload 2
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bson.BsonDocument
putfield com.mongodb.internal.connection.CommandProtocolImpl.command:Lorg/bson/BsonDocument;
4: aload 0
ldc "commandFieldNameValidator"
aload 3
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bson.FieldNameValidator
putfield com.mongodb.internal.connection.CommandProtocolImpl.commandFieldNameValidator:Lorg/bson/FieldNameValidator;
5: aload 0
aload 4
putfield com.mongodb.internal.connection.CommandProtocolImpl.readPreference:Lcom/mongodb/ReadPreference;
6: aload 0
ldc "commandResultDecoder"
aload 5
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bson.codecs.Decoder
putfield com.mongodb.internal.connection.CommandProtocolImpl.commandResultDecoder:Lorg/bson/codecs/Decoder;
7: aload 0
iload 6
putfield com.mongodb.internal.connection.CommandProtocolImpl.responseExpected:Z
8: aload 0
aload 7
putfield com.mongodb.internal.connection.CommandProtocolImpl.payload:Lcom/mongodb/connection/SplittablePayload;
9: aload 0
aload 8
putfield com.mongodb.internal.connection.CommandProtocolImpl.payloadFieldNameValidator:Lorg/bson/FieldNameValidator;
10: aload 0
ldc "clusterConnectionMode"
aload 9
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.connection.ClusterConnectionMode
putfield com.mongodb.internal.connection.CommandProtocolImpl.clusterConnectionMode:Lcom/mongodb/connection/ClusterConnectionMode;
11: ldc "payloadFieldNameValidator cannot be null if there is a payload."
12: aload 7
ifnull 13
aload 8
ifnonnull 13
iconst_0
goto 14
StackMap locals: com.mongodb.internal.connection.CommandProtocolImpl java.lang.String org.bson.BsonDocument org.bson.FieldNameValidator com.mongodb.ReadPreference org.bson.codecs.Decoder int com.mongodb.connection.SplittablePayload org.bson.FieldNameValidator com.mongodb.connection.ClusterConnectionMode
StackMap stack: java.lang.String
13: iconst_1
14: StackMap locals: com.mongodb.internal.connection.CommandProtocolImpl java.lang.String org.bson.BsonDocument org.bson.FieldNameValidator com.mongodb.ReadPreference org.bson.codecs.Decoder int com.mongodb.connection.SplittablePayload org.bson.FieldNameValidator com.mongodb.connection.ClusterConnectionMode
StackMap stack: java.lang.String int
invokestatic com.mongodb.assertions.Assertions.isTrueArgument:(Ljava/lang/String;Z)V
15: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/mongodb/internal/connection/CommandProtocolImpl<TT;>;
0 16 1 database Ljava/lang/String;
0 16 2 command Lorg/bson/BsonDocument;
0 16 3 commandFieldNameValidator Lorg/bson/FieldNameValidator;
0 16 4 readPreference Lcom/mongodb/ReadPreference;
0 16 5 commandResultDecoder Lorg/bson/codecs/Decoder<TT;>;
0 16 6 responseExpected Z
0 16 7 payload Lcom/mongodb/connection/SplittablePayload;
0 16 8 payloadFieldNameValidator Lorg/bson/FieldNameValidator;
0 16 9 clusterConnectionMode Lcom/mongodb/connection/ClusterConnectionMode;
Signature: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder<TT;>;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/connection/ClusterConnectionMode;)V
MethodParameters:
Name Flags
database final
command final
commandFieldNameValidator final
readPreference final
commandResultDecoder final
responseExpected final
payload final
payloadFieldNameValidator final
clusterConnectionMode final
public T execute(com.mongodb.internal.connection.InternalConnection);
descriptor: (Lcom/mongodb/internal/connection/InternalConnection;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
aload 1
invokevirtual com.mongodb.internal.connection.CommandProtocolImpl.getCommandMessage:(Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/internal/connection/CommandMessage;
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.commandResultDecoder:Lorg/bson/codecs/Decoder;
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.sessionContext:Lcom/mongodb/session/SessionContext;
invokeinterface com.mongodb.internal.connection.InternalConnection.sendAndReceive:(Lcom/mongodb/internal/connection/CommandMessage;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/CommandProtocolImpl<TT;>;
0 1 1 connection Lcom/mongodb/internal/connection/InternalConnection;
Signature: (Lcom/mongodb/internal/connection/InternalConnection;)TT;
MethodParameters:
Name Flags
connection final
public void executeAsync(com.mongodb.internal.connection.InternalConnection, com.mongodb.async.SingleResultCallback<T>);
descriptor: (Lcom/mongodb/internal/connection/InternalConnection;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
aload 1
invokevirtual com.mongodb.internal.connection.CommandProtocolImpl.getCommandMessage:(Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/internal/connection/CommandMessage;
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.commandResultDecoder:Lorg/bson/codecs/Decoder;
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.sessionContext:Lcom/mongodb/session/SessionContext;
1: new com.mongodb.internal.connection.CommandProtocolImpl$1
dup
aload 0
aload 2
invokespecial com.mongodb.internal.connection.CommandProtocolImpl$1.<init>:(Lcom/mongodb/internal/connection/CommandProtocolImpl;Lcom/mongodb/async/SingleResultCallback;)V
2: invokeinterface com.mongodb.internal.connection.InternalConnection.sendAndReceiveAsync:(Lcom/mongodb/internal/connection/CommandMessage;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 3
start local 3 5: aload 2
aconst_null
aload 3
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 3 6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/internal/connection/CommandProtocolImpl<TT;>;
0 7 1 connection Lcom/mongodb/internal/connection/InternalConnection;
0 7 2 callback Lcom/mongodb/async/SingleResultCallback<TT;>;
5 6 3 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
Signature: (Lcom/mongodb/internal/connection/InternalConnection;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
MethodParameters:
Name Flags
connection final
callback final
public com.mongodb.internal.connection.CommandProtocolImpl<T> sessionContext(com.mongodb.session.SessionContext);
descriptor: (Lcom/mongodb/session/SessionContext;)Lcom/mongodb/internal/connection/CommandProtocolImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.mongodb.internal.connection.CommandProtocolImpl.sessionContext:Lcom/mongodb/session/SessionContext;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/internal/connection/CommandProtocolImpl<TT;>;
0 2 1 sessionContext Lcom/mongodb/session/SessionContext;
Signature: (Lcom/mongodb/session/SessionContext;)Lcom/mongodb/internal/connection/CommandProtocolImpl<TT;>;
MethodParameters:
Name Flags
sessionContext final
private com.mongodb.internal.connection.CommandMessage getCommandMessage(com.mongodb.internal.connection.InternalConnection);
descriptor: (Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/internal/connection/CommandMessage;
flags: (0x0002) ACC_PRIVATE
Code:
stack=11, locals=2, args_size=2
start local 0 start local 1 0: new com.mongodb.internal.connection.CommandMessage
dup
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.namespace:Lcom/mongodb/MongoNamespace;
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.command:Lorg/bson/BsonDocument;
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.commandFieldNameValidator:Lorg/bson/FieldNameValidator;
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.readPreference:Lcom/mongodb/ReadPreference;
1: aload 1
invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
invokestatic com.mongodb.internal.connection.ProtocolHelper.getMessageSettings:(Lcom/mongodb/connection/ConnectionDescription;)Lcom/mongodb/internal/connection/MessageSettings;
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.responseExpected:Z
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.payload:Lcom/mongodb/connection/SplittablePayload;
2: aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.payloadFieldNameValidator:Lorg/bson/FieldNameValidator;
aload 0
getfield com.mongodb.internal.connection.CommandProtocolImpl.clusterConnectionMode:Lcom/mongodb/connection/ClusterConnectionMode;
3: invokespecial com.mongodb.internal.connection.CommandMessage.<init>:(Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lcom/mongodb/internal/connection/MessageSettings;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/connection/ClusterConnectionMode;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/internal/connection/CommandProtocolImpl<TT;>;
0 4 1 connection Lcom/mongodb/internal/connection/InternalConnection;
MethodParameters:
Name Flags
connection final
public com.mongodb.internal.connection.CommandProtocol sessionContext(com.mongodb.session.SessionContext);
descriptor: (Lcom/mongodb/session/SessionContext;)Lcom/mongodb/internal/connection/CommandProtocol;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.mongodb.internal.connection.CommandProtocolImpl.sessionContext:(Lcom/mongodb/session/SessionContext;)Lcom/mongodb/internal/connection/CommandProtocolImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lcom/mongodb/internal/connection/CommandProtocol<TT;>;
SourceFile: "CommandProtocolImpl.java"
NestMembers:
com.mongodb.internal.connection.CommandProtocolImpl$1
InnerClasses:
com.mongodb.internal.connection.CommandProtocolImpl$1