class io.vertx.mysqlclient.impl.codec.MySQLEncoder extends io.netty.channel.ChannelOutboundHandlerAdapter
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.mysqlclient.impl.codec.MySQLEncoder
  super_class: io.netty.channel.ChannelOutboundHandlerAdapter
{
  private final java.util.ArrayDeque<io.vertx.mysqlclient.impl.codec.CommandCodec<?, ?>> inflight;
    descriptor: Ljava/util/ArrayDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayDeque<Lio/vertx/mysqlclient/impl/codec/CommandCodec<**>;>;

  io.netty.channel.ChannelHandlerContext chctx;
    descriptor: Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0000) 

  int clientCapabilitiesFlag;
    descriptor: I
    flags: (0x0000) 

  java.nio.charset.Charset encodingCharset;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x0000) 

  io.vertx.mysqlclient.impl.MySQLSocketConnection socketConnection;
    descriptor: Lio/vertx/mysqlclient/impl/MySQLSocketConnection;
    flags: (0x0000) 

  void <init>(java.util.ArrayDeque<io.vertx.mysqlclient.impl.codec.CommandCodec<?, ?>>, io.vertx.mysqlclient.impl.MySQLSocketConnection);
    descriptor: (Ljava/util/ArrayDeque;Lio/vertx/mysqlclient/impl/MySQLSocketConnection;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
        start local 1 // java.util.ArrayDeque inflight
        start local 2 // io.vertx.mysqlclient.impl.MySQLSocketConnection mySQLSocketConnection
         0: .line 33
            aload 0 /* this */
            invokespecial io.netty.channel.ChannelOutboundHandlerAdapter.<init>:()V
         1: .line 34
            aload 0 /* this */
            aload 1 /* inflight */
            putfield io.vertx.mysqlclient.impl.codec.MySQLEncoder.inflight:Ljava/util/ArrayDeque;
         2: .line 35
            aload 0 /* this */
            aload 2 /* mySQLSocketConnection */
            putfield io.vertx.mysqlclient.impl.codec.MySQLEncoder.socketConnection:Lio/vertx/mysqlclient/impl/MySQLSocketConnection;
         3: .line 36
            return
        end local 2 // io.vertx.mysqlclient.impl.MySQLSocketConnection mySQLSocketConnection
        end local 1 // java.util.ArrayDeque inflight
        end local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    4     0                   this  Lio/vertx/mysqlclient/impl/codec/MySQLEncoder;
            0    4     1               inflight  Ljava/util/ArrayDeque<Lio/vertx/mysqlclient/impl/codec/CommandCodec<**>;>;
            0    4     2  mySQLSocketConnection  Lio/vertx/mysqlclient/impl/MySQLSocketConnection;
    Signature: (Ljava/util/ArrayDeque<Lio/vertx/mysqlclient/impl/codec/CommandCodec<**>;>;Lio/vertx/mysqlclient/impl/MySQLSocketConnection;)V
    MethodParameters:
                       Name  Flags
      inflight               
      mySQLSocketConnection  

  public void handlerAdded(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 40
            aload 0 /* this */
            aload 1 /* ctx */
            putfield io.vertx.mysqlclient.impl.codec.MySQLEncoder.chctx:Lio/netty/channel/ChannelHandlerContext;
         1: .line 41
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/mysqlclient/impl/codec/MySQLEncoder;
            0    2     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    MethodParameters:
      Name  Flags
      ctx   

  public void write(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.lang.Object msg
        start local 3 // io.netty.channel.ChannelPromise promise
         0: .line 45
            aload 2 /* msg */
            instanceof io.vertx.sqlclient.impl.command.CommandBase
            ifeq 4
         1: .line 46
            aload 2 /* msg */
            checkcast io.vertx.sqlclient.impl.command.CommandBase
            astore 4 /* cmd */
        start local 4 // io.vertx.sqlclient.impl.command.CommandBase cmd
         2: .line 47
            aload 0 /* this */
            aload 4 /* cmd */
            invokevirtual io.vertx.mysqlclient.impl.codec.MySQLEncoder.write:(Lio/vertx/sqlclient/impl/command/CommandBase;)V
        end local 4 // io.vertx.sqlclient.impl.command.CommandBase cmd
         3: .line 48
            goto 5
         4: .line 49
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* msg */
            aload 3 /* promise */
            invokespecial io.netty.channel.ChannelOutboundHandlerAdapter.write:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
         5: .line 51
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // java.lang.Object msg
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/vertx/mysqlclient/impl/codec/MySQLEncoder;
            0    6     1      ctx  Lio/netty/channel/ChannelHandlerContext;
            0    6     2      msg  Ljava/lang/Object;
            0    6     3  promise  Lio/netty/channel/ChannelPromise;
            2    3     4      cmd  Lio/vertx/sqlclient/impl/command/CommandBase<*>;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      ctx      
      msg      
      promise  

  void write(io.vertx.sqlclient.impl.command.CommandBase<?>);
    descriptor: (Lio/vertx/sqlclient/impl/command/CommandBase;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
        start local 1 // io.vertx.sqlclient.impl.command.CommandBase cmd
         0: .line 54
            aload 0 /* this */
            aload 1 /* cmd */
            invokevirtual io.vertx.mysqlclient.impl.codec.MySQLEncoder.wrap:(Lio/vertx/sqlclient/impl/command/CommandBase;)Lio/vertx/mysqlclient/impl/codec/CommandCodec;
            astore 2 /* codec */
        start local 2 // io.vertx.mysqlclient.impl.codec.CommandCodec codec
         1: .line 55
            aload 2 /* codec */
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/mysqlclient/impl/codec/MySQLEncoder;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/mysqlclient/impl/codec/MySQLEncoder.lambda$0(Lio/vertx/sqlclient/impl/command/CommandResponse;)V (7)
                  (Lio/vertx/sqlclient/impl/command/CommandResponse;)V
            putfield io.vertx.mysqlclient.impl.codec.CommandCodec.completionHandler:Lio/vertx/core/Handler;
         2: .line 60
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.codec.MySQLEncoder.inflight:Ljava/util/ArrayDeque;
            aload 2 /* codec */
            invokevirtual java.util.ArrayDeque.add:(Ljava/lang/Object;)Z
            pop
         3: .line 61
            aload 2 /* codec */
            aload 0 /* this */
            invokevirtual io.vertx.mysqlclient.impl.codec.CommandCodec.encode:(Lio/vertx/mysqlclient/impl/codec/MySQLEncoder;)V
         4: .line 62
            return
        end local 2 // io.vertx.mysqlclient.impl.codec.CommandCodec codec
        end local 1 // io.vertx.sqlclient.impl.command.CommandBase cmd
        end local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lio/vertx/mysqlclient/impl/codec/MySQLEncoder;
            0    5     1    cmd  Lio/vertx/sqlclient/impl/command/CommandBase<*>;
            1    5     2  codec  Lio/vertx/mysqlclient/impl/codec/CommandCodec<**>;
    Signature: (Lio/vertx/sqlclient/impl/command/CommandBase<*>;)V
    MethodParameters:
      Name  Flags
      cmd   

  private io.vertx.mysqlclient.impl.codec.CommandCodec<?, ?> wrap(io.vertx.sqlclient.impl.command.CommandBase<?>);
    descriptor: (Lio/vertx/sqlclient/impl/command/CommandBase;)Lio/vertx/mysqlclient/impl/codec/CommandCodec;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
        start local 1 // io.vertx.sqlclient.impl.command.CommandBase cmd
         0: .line 65
            aload 1 /* cmd */
            instanceof io.vertx.mysqlclient.impl.command.InitialHandshakeCommand
            ifeq 2
         1: .line 66
            new io.vertx.mysqlclient.impl.codec.InitialHandshakeCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.mysqlclient.impl.command.InitialHandshakeCommand
            invokespecial io.vertx.mysqlclient.impl.codec.InitialHandshakeCommandCodec.<init>:(Lio/vertx/mysqlclient/impl/command/InitialHandshakeCommand;)V
            areturn
         2: .line 67
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.sqlclient.impl.command.SimpleQueryCommand
            ifeq 4
         3: .line 68
            new io.vertx.mysqlclient.impl.codec.SimpleQueryCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.sqlclient.impl.command.SimpleQueryCommand
            invokespecial io.vertx.mysqlclient.impl.codec.SimpleQueryCommandCodec.<init>:(Lio/vertx/sqlclient/impl/command/SimpleQueryCommand;)V
            areturn
         4: .line 69
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.sqlclient.impl.command.ExtendedQueryCommand
            ifeq 9
         5: .line 70
            aload 1 /* cmd */
            checkcast io.vertx.sqlclient.impl.command.ExtendedQueryCommand
            astore 2 /* queryCmd */
        start local 2 // io.vertx.sqlclient.impl.command.ExtendedQueryCommand queryCmd
         6: .line 71
            aload 2 /* queryCmd */
            invokevirtual io.vertx.sqlclient.impl.command.ExtendedQueryCommand.isBatch:()Z
            ifeq 8
         7: .line 72
            new io.vertx.mysqlclient.impl.codec.ExtendedBatchQueryCommandCodec
            dup
            aload 2 /* queryCmd */
            invokespecial io.vertx.mysqlclient.impl.codec.ExtendedBatchQueryCommandCodec.<init>:(Lio/vertx/sqlclient/impl/command/ExtendedQueryCommand;)V
            areturn
         8: .line 74
      StackMap locals: io.vertx.sqlclient.impl.command.ExtendedQueryCommand
      StackMap stack:
            new io.vertx.mysqlclient.impl.codec.ExtendedQueryCommandCodec
            dup
            aload 2 /* queryCmd */
            invokespecial io.vertx.mysqlclient.impl.codec.ExtendedQueryCommandCodec.<init>:(Lio/vertx/sqlclient/impl/command/ExtendedQueryCommand;)V
            areturn
        end local 2 // io.vertx.sqlclient.impl.command.ExtendedQueryCommand queryCmd
         9: .line 76
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.sqlclient.impl.command.CloseConnectionCommand
            ifeq 11
        10: .line 77
            new io.vertx.mysqlclient.impl.codec.CloseConnectionCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.sqlclient.impl.command.CloseConnectionCommand
            invokespecial io.vertx.mysqlclient.impl.codec.CloseConnectionCommandCodec.<init>:(Lio/vertx/sqlclient/impl/command/CloseConnectionCommand;)V
            areturn
        11: .line 78
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.sqlclient.impl.command.PrepareStatementCommand
            ifeq 13
        12: .line 79
            new io.vertx.mysqlclient.impl.codec.PrepareStatementCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.sqlclient.impl.command.PrepareStatementCommand
            invokespecial io.vertx.mysqlclient.impl.codec.PrepareStatementCodec.<init>:(Lio/vertx/sqlclient/impl/command/PrepareStatementCommand;)V
            areturn
        13: .line 80
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.sqlclient.impl.command.CloseStatementCommand
            ifeq 15
        14: .line 81
            new io.vertx.mysqlclient.impl.codec.CloseStatementCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.sqlclient.impl.command.CloseStatementCommand
            invokespecial io.vertx.mysqlclient.impl.codec.CloseStatementCommandCodec.<init>:(Lio/vertx/sqlclient/impl/command/CloseStatementCommand;)V
            areturn
        15: .line 82
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.sqlclient.impl.command.CloseCursorCommand
            ifeq 17
        16: .line 83
            new io.vertx.mysqlclient.impl.codec.ResetStatementCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.sqlclient.impl.command.CloseCursorCommand
            invokespecial io.vertx.mysqlclient.impl.codec.ResetStatementCommandCodec.<init>:(Lio/vertx/sqlclient/impl/command/CloseCursorCommand;)V
            areturn
        17: .line 84
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.mysqlclient.impl.command.PingCommand
            ifeq 19
        18: .line 85
            new io.vertx.mysqlclient.impl.codec.PingCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.mysqlclient.impl.command.PingCommand
            invokespecial io.vertx.mysqlclient.impl.codec.PingCommandCodec.<init>:(Lio/vertx/mysqlclient/impl/command/PingCommand;)V
            areturn
        19: .line 86
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.mysqlclient.impl.command.InitDbCommand
            ifeq 21
        20: .line 87
            new io.vertx.mysqlclient.impl.codec.InitDbCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.mysqlclient.impl.command.InitDbCommand
            invokespecial io.vertx.mysqlclient.impl.codec.InitDbCommandCodec.<init>:(Lio/vertx/mysqlclient/impl/command/InitDbCommand;)V
            areturn
        21: .line 88
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.mysqlclient.impl.command.StatisticsCommand
            ifeq 23
        22: .line 89
            new io.vertx.mysqlclient.impl.codec.StatisticsCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.mysqlclient.impl.command.StatisticsCommand
            invokespecial io.vertx.mysqlclient.impl.codec.StatisticsCommandCodec.<init>:(Lio/vertx/mysqlclient/impl/command/StatisticsCommand;)V
            areturn
        23: .line 90
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.mysqlclient.impl.command.SetOptionCommand
            ifeq 25
        24: .line 91
            new io.vertx.mysqlclient.impl.codec.SetOptionCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.mysqlclient.impl.command.SetOptionCommand
            invokespecial io.vertx.mysqlclient.impl.codec.SetOptionCommandCodec.<init>:(Lio/vertx/mysqlclient/impl/command/SetOptionCommand;)V
            areturn
        25: .line 92
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.mysqlclient.impl.command.ResetConnectionCommand
            ifeq 27
        26: .line 93
            new io.vertx.mysqlclient.impl.codec.ResetConnectionCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.mysqlclient.impl.command.ResetConnectionCommand
            invokespecial io.vertx.mysqlclient.impl.codec.ResetConnectionCommandCodec.<init>:(Lio/vertx/mysqlclient/impl/command/ResetConnectionCommand;)V
            areturn
        27: .line 94
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.mysqlclient.impl.command.DebugCommand
            ifeq 29
        28: .line 95
            new io.vertx.mysqlclient.impl.codec.DebugCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.mysqlclient.impl.command.DebugCommand
            invokespecial io.vertx.mysqlclient.impl.codec.DebugCommandCodec.<init>:(Lio/vertx/mysqlclient/impl/command/DebugCommand;)V
            areturn
        29: .line 96
      StackMap locals:
      StackMap stack:
            aload 1 /* cmd */
            instanceof io.vertx.mysqlclient.impl.command.ChangeUserCommand
            ifeq 31
        30: .line 97
            new io.vertx.mysqlclient.impl.codec.ChangeUserCommandCodec
            dup
            aload 1 /* cmd */
            checkcast io.vertx.mysqlclient.impl.command.ChangeUserCommand
            invokespecial io.vertx.mysqlclient.impl.codec.ChangeUserCommandCodec.<init>:(Lio/vertx/mysqlclient/impl/command/ChangeUserCommand;)V
            areturn
        31: .line 99
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Unsupported command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* cmd */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 100
            new java.lang.UnsupportedOperationException
            dup
            ldc "Todo"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // io.vertx.sqlclient.impl.command.CommandBase cmd
        end local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   33     0      this  Lio/vertx/mysqlclient/impl/codec/MySQLEncoder;
            0   33     1       cmd  Lio/vertx/sqlclient/impl/command/CommandBase<*>;
            6    9     2  queryCmd  Lio/vertx/sqlclient/impl/command/ExtendedQueryCommand<*>;
    Signature: (Lio/vertx/sqlclient/impl/command/CommandBase<*>;)Lio/vertx/mysqlclient/impl/codec/CommandCodec<**>;
    MethodParameters:
      Name  Flags
      cmd   

  private void lambda$0(io.vertx.sqlclient.impl.command.CommandResponse);
    descriptor: (Lio/vertx/sqlclient/impl/command/CommandResponse;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
        start local 1 // io.vertx.sqlclient.impl.command.CommandResponse resp
         0: .line 56
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.codec.MySQLEncoder.inflight:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.poll:()Ljava/lang/Object;
            checkcast io.vertx.mysqlclient.impl.codec.CommandCodec
            astore 2 /* c */
        start local 2 // io.vertx.mysqlclient.impl.codec.CommandCodec c
         1: .line 57
            aload 1 /* resp */
            aload 2 /* c */
            getfield io.vertx.mysqlclient.impl.codec.CommandCodec.cmd:Lio/vertx/sqlclient/impl/command/CommandBase;
            putfield io.vertx.sqlclient.impl.command.CommandResponse.cmd:Lio/vertx/sqlclient/impl/command/CommandBase;
         2: .line 58
            aload 0 /* this */
            getfield io.vertx.mysqlclient.impl.codec.MySQLEncoder.chctx:Lio/netty/channel/ChannelHandlerContext;
            aload 1 /* resp */
            invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
        end local 2 // io.vertx.mysqlclient.impl.codec.CommandCodec c
         3: .line 59
            return
        end local 1 // io.vertx.sqlclient.impl.command.CommandResponse resp
        end local 0 // io.vertx.mysqlclient.impl.codec.MySQLEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/mysqlclient/impl/codec/MySQLEncoder;
            0    4     1  resp  Lio/vertx/sqlclient/impl/command/CommandResponse<Ljava/lang/Object;>;
            1    3     2     c  Lio/vertx/mysqlclient/impl/codec/CommandCodec<**>;
}
SourceFile: "MySQLEncoder.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles