public abstract class com.mongodb.internal.connection.tlschannel.TlsChannelBuilder<T extends com.mongodb.internal.connection.tlschannel.TlsChannelBuilder<T>>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.mongodb.internal.connection.tlschannel.TlsChannelBuilder
  super_class: java.lang.Object
{
  final java.nio.channels.ByteChannel underlying;
    descriptor: Ljava/nio/channels/ByteChannel;
    flags: (0x0010) ACC_FINAL

  java.util.function.Consumer<javax.net.ssl.SSLSession> sessionInitCallback;
    descriptor: Ljava/util/function/Consumer;
    flags: (0x0000) 
    Signature: Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;

  boolean runTasks;
    descriptor: Z
    flags: (0x0000) 

  com.mongodb.internal.connection.tlschannel.BufferAllocator plainBufferAllocator;
    descriptor: Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
    flags: (0x0000) 

  com.mongodb.internal.connection.tlschannel.BufferAllocator encryptedBufferAllocator;
    descriptor: Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
    flags: (0x0000) 

  boolean releaseBuffers;
    descriptor: Z
    flags: (0x0000) 

  boolean waitForCloseConfirmation;
    descriptor: Z
    flags: (0x0000) 

  void <init>(java.nio.channels.ByteChannel);
    descriptor: (Ljava/nio/channels/ByteChannel;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
        start local 1 // java.nio.channels.ByteChannel underlying
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 36
            aload 0 /* this */
            new com.mongodb.internal.connection.tlschannel.TlsChannelBuilder$1
            dup
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.tlschannel.TlsChannelBuilder$1.<init>:(Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;)V
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.sessionInitCallback:Ljava/util/function/Consumer;
         2: .line 42
            aload 0 /* this */
            iconst_1
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.runTasks:Z
         3: .line 43
            aload 0 /* this */
            aconst_null
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.plainBufferAllocator:Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
         4: .line 44
            aload 0 /* this */
            aconst_null
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.encryptedBufferAllocator:Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
         5: .line 45
            aload 0 /* this */
            iconst_1
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.releaseBuffers:Z
         6: .line 46
            aload 0 /* this */
            iconst_0
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.waitForCloseConfirmation:Z
         7: .line 49
            aload 0 /* this */
            aload 1 /* underlying */
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.underlying:Ljava/nio/channels/ByteChannel;
         8: .line 50
            return
        end local 1 // java.nio.channels.ByteChannel underlying
        end local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder<TT;>;
            0    9     1  underlying  Ljava/nio/channels/ByteChannel;
    MethodParameters:
            Name  Flags
      underlying  final

  abstract T getThis();
    descriptor: ()Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
    flags: (0x0400) ACC_ABSTRACT
    Signature: ()TT;

  public T withRunTasks();
    descriptor: (Z)Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
        start local 1 // boolean runTasks
         0: .line 60
            aload 0 /* this */
            iload 1 /* runTasks */
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.runTasks:Z
         1: .line 61
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.getThis:()Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
            areturn
        end local 1 // boolean runTasks
        end local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder<TT;>;
            0    2     1  runTasks  Z
    Signature: (Z)TT;
    MethodParameters:
          Name  Flags
      runTasks  final

  public T withPlainBufferAllocator(com.mongodb.internal.connection.tlschannel.BufferAllocator);
    descriptor: (Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;)Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
        start local 1 // com.mongodb.internal.connection.tlschannel.BufferAllocator bufferAllocator
         0: .line 68
            aload 0 /* this */
            aload 1 /* bufferAllocator */
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.plainBufferAllocator:Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
         1: .line 69
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.getThis:()Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
            areturn
        end local 1 // com.mongodb.internal.connection.tlschannel.BufferAllocator bufferAllocator
        end local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder<TT;>;
            0    2     1  bufferAllocator  Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
    Signature: (Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;)TT;
    MethodParameters:
                 Name  Flags
      bufferAllocator  final

  public T withEncryptedBufferAllocator(com.mongodb.internal.connection.tlschannel.BufferAllocator);
    descriptor: (Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;)Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
        start local 1 // com.mongodb.internal.connection.tlschannel.BufferAllocator bufferAllocator
         0: .line 76
            aload 0 /* this */
            aload 1 /* bufferAllocator */
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.encryptedBufferAllocator:Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
         1: .line 77
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.getThis:()Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
            areturn
        end local 1 // com.mongodb.internal.connection.tlschannel.BufferAllocator bufferAllocator
        end local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder<TT;>;
            0    2     1  bufferAllocator  Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
    Signature: (Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;)TT;
    MethodParameters:
                 Name  Flags
      bufferAllocator  final

  public T withSessionInitCallback(java.util.function.Consumer<javax.net.ssl.SSLSession>);
    descriptor: (Ljava/util/function/Consumer;)Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
        start local 1 // java.util.function.Consumer sessionInitCallback
         0: .line 87
            aload 0 /* this */
            aload 1 /* sessionInitCallback */
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.sessionInitCallback:Ljava/util/function/Consumer;
         1: .line 88
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.getThis:()Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
            areturn
        end local 1 // java.util.function.Consumer sessionInitCallback
        end local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder<TT;>;
            0    2     1  sessionInitCallback  Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;
    Signature: (Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;)TT;
    MethodParameters:
                     Name  Flags
      sessionInitCallback  final

  public T withReleaseBuffers();
    descriptor: (Z)Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
        start local 1 // boolean releaseBuffers
         0: .line 103
            aload 0 /* this */
            iload 1 /* releaseBuffers */
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.releaseBuffers:Z
         1: .line 104
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.getThis:()Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
            areturn
        end local 1 // boolean releaseBuffers
        end local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder<TT;>;
            0    2     1  releaseBuffers  Z
    Signature: (Z)TT;
    MethodParameters:
                Name  Flags
      releaseBuffers  final

  public T withWaitForCloseConfirmation();
    descriptor: (Z)Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
        start local 1 // boolean waitForCloseConfirmation
         0: .line 126
            aload 0 /* this */
            iload 1 /* waitForCloseConfirmation */
            putfield com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.waitForCloseConfirmation:Z
         1: .line 127
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.getThis:()Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
            areturn
        end local 1 // boolean waitForCloseConfirmation
        end local 0 // com.mongodb.internal.connection.tlschannel.TlsChannelBuilder this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder<TT;>;
            0    2     1  waitForCloseConfirmation  Z
    Signature: (Z)TT;
    MethodParameters:
                          Name  Flags
      waitForCloseConfirmation  final
}
Signature: <T:Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder<TT;>;>Ljava/lang/Object;
SourceFile: "TlsChannelBuilder.java"
NestMembers:
  com.mongodb.internal.connection.tlschannel.TlsChannelBuilder$1
InnerClasses:
  com.mongodb.internal.connection.tlschannel.TlsChannelBuilder$1