public class com.mongodb.internal.connection.DefaultClusterableServerFactory implements com.mongodb.internal.connection.ClusterableServerFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.internal.connection.DefaultClusterableServerFactory
  super_class: java.lang.Object
{
  private final com.mongodb.connection.ClusterId clusterId;
    descriptor: Lcom/mongodb/connection/ClusterId;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.connection.ClusterSettings clusterSettings;
    descriptor: Lcom/mongodb/connection/ClusterSettings;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.connection.ServerSettings serverSettings;
    descriptor: Lcom/mongodb/connection/ServerSettings;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.connection.ConnectionPoolSettings connectionPoolSettings;
    descriptor: Lcom/mongodb/connection/ConnectionPoolSettings;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.connection.StreamFactory streamFactory;
    descriptor: Lcom/mongodb/connection/StreamFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<com.mongodb.internal.connection.MongoCredentialWithCache> credentialList;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/mongodb/internal/connection/MongoCredentialWithCache;>;

  private final com.mongodb.connection.StreamFactory heartbeatStreamFactory;
    descriptor: Lcom/mongodb/connection/StreamFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.event.CommandListener commandListener;
    descriptor: Lcom/mongodb/event/CommandListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String applicationName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final java.util.List<com.mongodb.MongoCompressor> compressorList;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/mongodb/MongoCompressor;>;

  public void <init>(com.mongodb.connection.ClusterId, com.mongodb.connection.ClusterSettings, com.mongodb.connection.ServerSettings, com.mongodb.connection.ConnectionPoolSettings, com.mongodb.connection.StreamFactory, com.mongodb.connection.StreamFactory, java.util.List<com.mongodb.MongoCredential>, com.mongodb.event.CommandListener, java.lang.String, com.mongodb.MongoDriverInformation, java.util.List<com.mongodb.MongoCompressor>);
    descriptor: (Lcom/mongodb/connection/ClusterId;Lcom/mongodb/connection/ClusterSettings;Lcom/mongodb/connection/ServerSettings;Lcom/mongodb/connection/ConnectionPoolSettings;Lcom/mongodb/connection/StreamFactory;Lcom/mongodb/connection/StreamFactory;Ljava/util/List;Lcom/mongodb/event/CommandListener;Ljava/lang/String;Lcom/mongodb/MongoDriverInformation;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=12, args_size=12
        start local 0 // com.mongodb.internal.connection.DefaultClusterableServerFactory this
        start local 1 // com.mongodb.connection.ClusterId clusterId
        start local 2 // com.mongodb.connection.ClusterSettings clusterSettings
        start local 3 // com.mongodb.connection.ServerSettings serverSettings
        start local 4 // com.mongodb.connection.ConnectionPoolSettings connectionPoolSettings
        start local 5 // com.mongodb.connection.StreamFactory streamFactory
        start local 6 // com.mongodb.connection.StreamFactory heartbeatStreamFactory
        start local 7 // java.util.List credentialList
        start local 8 // com.mongodb.event.CommandListener commandListener
        start local 9 // java.lang.String applicationName
        start local 10 // com.mongodb.MongoDriverInformation mongoDriverInformation
        start local 11 // java.util.List compressorList
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            aload 0 /* this */
            aload 1 /* clusterId */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.clusterId:Lcom/mongodb/connection/ClusterId;
         2: .line 55
            aload 0 /* this */
            aload 2 /* clusterSettings */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.clusterSettings:Lcom/mongodb/connection/ClusterSettings;
         3: .line 56
            aload 0 /* this */
            aload 3 /* serverSettings */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.serverSettings:Lcom/mongodb/connection/ServerSettings;
         4: .line 57
            aload 0 /* this */
            aload 4 /* connectionPoolSettings */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.connectionPoolSettings:Lcom/mongodb/connection/ConnectionPoolSettings;
         5: .line 58
            aload 0 /* this */
            aload 5 /* streamFactory */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.streamFactory:Lcom/mongodb/connection/StreamFactory;
         6: .line 59
            aload 0 /* this */
            aload 7 /* credentialList */
            invokestatic com.mongodb.internal.connection.MongoCredentialWithCache.wrapCredentialList:(Ljava/util/List;)Ljava/util/List;
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.credentialList:Ljava/util/List;
         7: .line 60
            aload 0 /* this */
            aload 6 /* heartbeatStreamFactory */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.heartbeatStreamFactory:Lcom/mongodb/connection/StreamFactory;
         8: .line 61
            aload 0 /* this */
            aload 8 /* commandListener */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.commandListener:Lcom/mongodb/event/CommandListener;
         9: .line 62
            aload 0 /* this */
            aload 9 /* applicationName */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.applicationName:Ljava/lang/String;
        10: .line 63
            aload 0 /* this */
            aload 10 /* mongoDriverInformation */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.mongoDriverInformation:Lcom/mongodb/MongoDriverInformation;
        11: .line 64
            aload 0 /* this */
            aload 11 /* compressorList */
            putfield com.mongodb.internal.connection.DefaultClusterableServerFactory.compressorList:Ljava/util/List;
        12: .line 65
            return
        end local 11 // java.util.List compressorList
        end local 10 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 9 // java.lang.String applicationName
        end local 8 // com.mongodb.event.CommandListener commandListener
        end local 7 // java.util.List credentialList
        end local 6 // com.mongodb.connection.StreamFactory heartbeatStreamFactory
        end local 5 // com.mongodb.connection.StreamFactory streamFactory
        end local 4 // com.mongodb.connection.ConnectionPoolSettings connectionPoolSettings
        end local 3 // com.mongodb.connection.ServerSettings serverSettings
        end local 2 // com.mongodb.connection.ClusterSettings clusterSettings
        end local 1 // com.mongodb.connection.ClusterId clusterId
        end local 0 // com.mongodb.internal.connection.DefaultClusterableServerFactory this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   13     0                    this  Lcom/mongodb/internal/connection/DefaultClusterableServerFactory;
            0   13     1               clusterId  Lcom/mongodb/connection/ClusterId;
            0   13     2         clusterSettings  Lcom/mongodb/connection/ClusterSettings;
            0   13     3          serverSettings  Lcom/mongodb/connection/ServerSettings;
            0   13     4  connectionPoolSettings  Lcom/mongodb/connection/ConnectionPoolSettings;
            0   13     5           streamFactory  Lcom/mongodb/connection/StreamFactory;
            0   13     6  heartbeatStreamFactory  Lcom/mongodb/connection/StreamFactory;
            0   13     7          credentialList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0   13     8         commandListener  Lcom/mongodb/event/CommandListener;
            0   13     9         applicationName  Ljava/lang/String;
            0   13    10  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
            0   13    11          compressorList  Ljava/util/List<Lcom/mongodb/MongoCompressor;>;
    Signature: (Lcom/mongodb/connection/ClusterId;Lcom/mongodb/connection/ClusterSettings;Lcom/mongodb/connection/ServerSettings;Lcom/mongodb/connection/ConnectionPoolSettings;Lcom/mongodb/connection/StreamFactory;Lcom/mongodb/connection/StreamFactory;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/event/CommandListener;Ljava/lang/String;Lcom/mongodb/MongoDriverInformation;Ljava/util/List<Lcom/mongodb/MongoCompressor;>;)V
    MethodParameters:
                        Name  Flags
      clusterId               final
      clusterSettings         final
      serverSettings          final
      connectionPoolSettings  final
      streamFactory           final
      heartbeatStreamFactory  final
      credentialList          final
      commandListener         final
      applicationName         final
      mongoDriverInformation  final
      compressorList          final

  public com.mongodb.internal.connection.ClusterableServer create(com.mongodb.ServerAddress, com.mongodb.event.ServerListener, com.mongodb.internal.connection.ClusterClock);
    descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/event/ServerListener;Lcom/mongodb/internal/connection/ClusterClock;)Lcom/mongodb/internal/connection/ClusterableServer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=6, args_size=4
        start local 0 // com.mongodb.internal.connection.DefaultClusterableServerFactory this
        start local 1 // com.mongodb.ServerAddress serverAddress
        start local 2 // com.mongodb.event.ServerListener serverListener
        start local 3 // com.mongodb.internal.connection.ClusterClock clusterClock
         0: .line 70
            new com.mongodb.internal.connection.DefaultConnectionPool
            dup
            new com.mongodb.connection.ServerId
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.clusterId:Lcom/mongodb/connection/ClusterId;
            aload 1 /* serverAddress */
            invokespecial com.mongodb.connection.ServerId.<init>:(Lcom/mongodb/connection/ClusterId;Lcom/mongodb/ServerAddress;)V
         1: .line 71
            new com.mongodb.internal.connection.InternalStreamConnectionFactory
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.streamFactory:Lcom/mongodb/connection/StreamFactory;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.credentialList:Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.applicationName:Ljava/lang/String;
         2: .line 72
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.mongoDriverInformation:Lcom/mongodb/MongoDriverInformation;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.compressorList:Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.commandListener:Lcom/mongodb/event/CommandListener;
         3: .line 71
            invokespecial com.mongodb.internal.connection.InternalStreamConnectionFactory.<init>:(Lcom/mongodb/connection/StreamFactory;Ljava/util/List;Ljava/lang/String;Lcom/mongodb/MongoDriverInformation;Ljava/util/List;Lcom/mongodb/event/CommandListener;)V
         4: .line 72
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.connectionPoolSettings:Lcom/mongodb/connection/ConnectionPoolSettings;
         5: .line 70
            invokespecial com.mongodb.internal.connection.DefaultConnectionPool.<init>:(Lcom/mongodb/connection/ServerId;Lcom/mongodb/internal/connection/InternalConnectionFactory;Lcom/mongodb/connection/ConnectionPoolSettings;)V
            astore 4 /* connectionPool */
        start local 4 // com.mongodb.internal.connection.ConnectionPool connectionPool
         6: .line 74
            aload 4 /* connectionPool */
            invokeinterface com.mongodb.internal.connection.ConnectionPool.start:()V
         7: .line 78
            new com.mongodb.internal.connection.DefaultServerMonitorFactory
            dup
            new com.mongodb.connection.ServerId
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.clusterId:Lcom/mongodb/connection/ClusterId;
            aload 1 /* serverAddress */
            invokespecial com.mongodb.connection.ServerId.<init>:(Lcom/mongodb/connection/ClusterId;Lcom/mongodb/ServerAddress;)V
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.serverSettings:Lcom/mongodb/connection/ServerSettings;
            aload 3 /* clusterClock */
         8: .line 79
            new com.mongodb.internal.connection.InternalStreamConnectionFactory
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.heartbeatStreamFactory:Lcom/mongodb/connection/StreamFactory;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         9: .line 80
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.applicationName:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.mongoDriverInformation:Lcom/mongodb/MongoDriverInformation;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aconst_null
        10: .line 79
            invokespecial com.mongodb.internal.connection.InternalStreamConnectionFactory.<init>:(Lcom/mongodb/connection/StreamFactory;Ljava/util/List;Ljava/lang/String;Lcom/mongodb/MongoDriverInformation;Ljava/util/List;Lcom/mongodb/event/CommandListener;)V
        11: .line 80
            aload 4 /* connectionPool */
        12: .line 78
            invokespecial com.mongodb.internal.connection.DefaultServerMonitorFactory.<init>:(Lcom/mongodb/connection/ServerId;Lcom/mongodb/connection/ServerSettings;Lcom/mongodb/internal/connection/ClusterClock;Lcom/mongodb/internal/connection/InternalConnectionFactory;Lcom/mongodb/internal/connection/ConnectionPool;)V
        13: .line 77
            astore 5 /* serverMonitorFactory */
        start local 5 // com.mongodb.internal.connection.ServerMonitorFactory serverMonitorFactory
        14: .line 82
            new com.mongodb.internal.connection.DefaultServer
            dup
            new com.mongodb.connection.ServerId
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.clusterId:Lcom/mongodb/connection/ClusterId;
            aload 1 /* serverAddress */
            invokespecial com.mongodb.connection.ServerId.<init>:(Lcom/mongodb/connection/ClusterId;Lcom/mongodb/ServerAddress;)V
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.clusterSettings:Lcom/mongodb/connection/ClusterSettings;
            invokevirtual com.mongodb.connection.ClusterSettings.getMode:()Lcom/mongodb/connection/ClusterConnectionMode;
            aload 4 /* connectionPool */
        15: .line 83
            new com.mongodb.internal.connection.DefaultConnectionFactory
            dup
            invokespecial com.mongodb.internal.connection.DefaultConnectionFactory.<init>:()V
            aload 5 /* serverMonitorFactory */
            aload 2 /* serverListener */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.commandListener:Lcom/mongodb/event/CommandListener;
            aload 3 /* clusterClock */
        16: .line 82
            invokespecial com.mongodb.internal.connection.DefaultServer.<init>:(Lcom/mongodb/connection/ServerId;Lcom/mongodb/connection/ClusterConnectionMode;Lcom/mongodb/internal/connection/ConnectionPool;Lcom/mongodb/internal/connection/ConnectionFactory;Lcom/mongodb/internal/connection/ServerMonitorFactory;Lcom/mongodb/event/ServerListener;Lcom/mongodb/event/CommandListener;Lcom/mongodb/internal/connection/ClusterClock;)V
            areturn
        end local 5 // com.mongodb.internal.connection.ServerMonitorFactory serverMonitorFactory
        end local 4 // com.mongodb.internal.connection.ConnectionPool connectionPool
        end local 3 // com.mongodb.internal.connection.ClusterClock clusterClock
        end local 2 // com.mongodb.event.ServerListener serverListener
        end local 1 // com.mongodb.ServerAddress serverAddress
        end local 0 // com.mongodb.internal.connection.DefaultClusterableServerFactory this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   17     0                  this  Lcom/mongodb/internal/connection/DefaultClusterableServerFactory;
            0   17     1         serverAddress  Lcom/mongodb/ServerAddress;
            0   17     2        serverListener  Lcom/mongodb/event/ServerListener;
            0   17     3          clusterClock  Lcom/mongodb/internal/connection/ClusterClock;
            6   17     4        connectionPool  Lcom/mongodb/internal/connection/ConnectionPool;
           14   17     5  serverMonitorFactory  Lcom/mongodb/internal/connection/ServerMonitorFactory;
    MethodParameters:
                Name  Flags
      serverAddress   final
      serverListener  final
      clusterClock    final

  public com.mongodb.connection.ServerSettings getSettings();
    descriptor: ()Lcom/mongodb/connection/ServerSettings;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.DefaultClusterableServerFactory this
         0: .line 88
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DefaultClusterableServerFactory.serverSettings:Lcom/mongodb/connection/ServerSettings;
            areturn
        end local 0 // com.mongodb.internal.connection.DefaultClusterableServerFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/DefaultClusterableServerFactory;
}
SourceFile: "DefaultClusterableServerFactory.java"