public abstract class io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction
  super_class: java.lang.Object
{
  protected final io.vertx.core.Vertx vertx;
    descriptor: Lio/vertx/core/Vertx;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.vertx.ext.sql.SQLOptions options;
    descriptor: Lio/vertx/ext/sql/SQLOptions;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.vertx.core.impl.ContextInternal ctx;
    descriptor: Lio/vertx/core/impl/ContextInternal;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper helper;
    descriptor: Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected void <init>(io.vertx.core.Vertx, io.vertx.ext.sql.SQLOptions, io.vertx.core.impl.ContextInternal);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/sql/SQLOptions;Lio/vertx/core/impl/ContextInternal;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.ext.sql.SQLOptions options
        start local 3 // io.vertx.core.impl.ContextInternal ctx
         0: .line 44
            aload 0 /* this */
            aload 1 /* vertx */
            aconst_null
            aload 2 /* options */
            aload 3 /* ctx */
            invokespecial io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.<init>:(Lio/vertx/core/Vertx;Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;Lio/vertx/ext/sql/SQLOptions;Lio/vertx/core/impl/ContextInternal;)V
         1: .line 45
            return
        end local 3 // io.vertx.core.impl.ContextInternal ctx
        end local 2 // io.vertx.ext.sql.SQLOptions options
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/ext/jdbc/impl/actions/AbstractJDBCAction<TT;>;
            0    2     1    vertx  Lio/vertx/core/Vertx;
            0    2     2  options  Lio/vertx/ext/sql/SQLOptions;
            0    2     3      ctx  Lio/vertx/core/impl/ContextInternal;
    MethodParameters:
         Name  Flags
      vertx    
      options  
      ctx      

  protected void <init>(io.vertx.core.Vertx, io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper, io.vertx.ext.sql.SQLOptions, io.vertx.core.impl.ContextInternal);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;Lio/vertx/ext/sql/SQLOptions;Lio/vertx/core/impl/ContextInternal;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper helper
        start local 3 // io.vertx.ext.sql.SQLOptions options
        start local 4 // io.vertx.core.impl.ContextInternal ctx
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.vertx:Lio/vertx/core/Vertx;
         2: .line 49
            aload 0 /* this */
            aload 3 /* options */
            putfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
         3: .line 50
            aload 0 /* this */
            aload 4 /* ctx */
            putfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.ctx:Lio/vertx/core/impl/ContextInternal;
         4: .line 51
            aload 0 /* this */
            aload 2 /* helper */
            putfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.helper:Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;
         5: .line 52
            return
        end local 4 // io.vertx.core.impl.ContextInternal ctx
        end local 3 // io.vertx.ext.sql.SQLOptions options
        end local 2 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper helper
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/vertx/ext/jdbc/impl/actions/AbstractJDBCAction<TT;>;
            0    6     1    vertx  Lio/vertx/core/Vertx;
            0    6     2   helper  Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;
            0    6     3  options  Lio/vertx/ext/sql/SQLOptions;
            0    6     4      ctx  Lio/vertx/core/impl/ContextInternal;
    MethodParameters:
         Name  Flags
      vertx    
      helper   
      options  
      ctx      

  private void handle(java.sql.Connection, io.vertx.core.Promise<T>);
    descriptor: (Ljava/sql/Connection;Lio/vertx/core/Promise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
        start local 1 // java.sql.Connection conn
        start local 2 // io.vertx.core.Promise future
         0: .line 57
            aload 0 /* this */
            aload 1 /* conn */
            invokevirtual io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.applyConnectionOptions:(Ljava/sql/Connection;)V
         1: .line 59
            aload 0 /* this */
            aload 1 /* conn */
            invokevirtual io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.execute:(Ljava/sql/Connection;)Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object result
         2: .line 60
            aload 2 /* future */
            aload 3 /* result */
            invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
        end local 3 // java.lang.Object result
         3: .line 61
            goto 6
      StackMap locals:
      StackMap stack: java.sql.SQLException
         4: astore 3 /* e */
        start local 3 // java.sql.SQLException e
         5: .line 62
            aload 2 /* future */
            aload 3 /* e */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
        end local 3 // java.sql.SQLException e
         6: .line 64
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.Promise future
        end local 1 // java.sql.Connection conn
        end local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lio/vertx/ext/jdbc/impl/actions/AbstractJDBCAction<TT;>;
            0    7     1    conn  Ljava/sql/Connection;
            0    7     2  future  Lio/vertx/core/Promise<TT;>;
            2    3     3  result  TT;
            5    6     3       e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.sql.SQLException
    Signature: (Ljava/sql/Connection;Lio/vertx/core/Promise<TT;>;)V
    MethodParameters:
        Name  Flags
      conn    
      future  

  public void execute(java.sql.Connection, io.vertx.core.impl.TaskQueue, io.vertx.core.Handler<io.vertx.core.AsyncResult<T>>);
    descriptor: (Ljava/sql/Connection;Lio/vertx/core/impl/TaskQueue;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
        start local 1 // java.sql.Connection conn
        start local 2 // io.vertx.core.impl.TaskQueue statementsQueue
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 67
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.ctx:Lio/vertx/core/impl/ContextInternal;
            aload 0 /* this */
            aload 1 /* conn */
            invokedynamic handle(Lio/vertx/ext/jdbc/impl/actions/AbstractJDBCAction;Ljava/sql/Connection;)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/ext/jdbc/impl/actions/AbstractJDBCAction.lambda$0(Ljava/sql/Connection;Lio/vertx/core/Promise;)V (7)
                  (Lio/vertx/core/Promise;)V
            aload 2 /* statementsQueue */
            aload 3 /* resultHandler */
            invokeinterface io.vertx.core.impl.ContextInternal.executeBlocking:(Lio/vertx/core/Handler;Lio/vertx/core/impl/TaskQueue;Lio/vertx/core/Handler;)V
         1: .line 68
            return
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.impl.TaskQueue statementsQueue
        end local 1 // java.sql.Connection conn
        end local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lio/vertx/ext/jdbc/impl/actions/AbstractJDBCAction<TT;>;
            0    2     1             conn  Ljava/sql/Connection;
            0    2     2  statementsQueue  Lio/vertx/core/impl/TaskQueue;
            0    2     3    resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
    Signature: (Ljava/sql/Connection;Lio/vertx/core/impl/TaskQueue;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;)V
    MethodParameters:
                 Name  Flags
      conn             
      statementsQueue  
      resultHandler    

  public abstract T execute(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.sql.SQLException
    Signature: (Ljava/sql/Connection;)TT;
    MethodParameters:
      Name  Flags
      conn  

  protected abstract java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  void applyStatementOptions(java.sql.Statement);
    descriptor: (Ljava/sql/Statement;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
        start local 1 // java.sql.Statement statement
         0: .line 75
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            ifnull 7
         1: .line 76
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getQueryTimeout:()I
            ifle 3
         2: .line 77
            aload 1 /* statement */
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getQueryTimeout:()I
            invokeinterface java.sql.Statement.setQueryTimeout:(I)V
         3: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getFetchDirection:()Lio/vertx/ext/sql/FetchDirection;
            ifnull 5
         4: .line 80
            aload 1 /* statement */
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getFetchDirection:()Lio/vertx/ext/sql/FetchDirection;
            invokevirtual io.vertx.ext.sql.FetchDirection.getType:()I
            invokeinterface java.sql.Statement.setFetchDirection:(I)V
         5: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getFetchSize:()I
            ifle 7
         6: .line 83
            aload 1 /* statement */
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getFetchSize:()I
            invokeinterface java.sql.Statement.setFetchSize:(I)V
         7: .line 86
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.sql.Statement statement
        end local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lio/vertx/ext/jdbc/impl/actions/AbstractJDBCAction<TT;>;
            0    8     1  statement  Ljava/sql/Statement;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
           Name  Flags
      statement  

  private void applyConnectionOptions(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
        start local 1 // java.sql.Connection conn
         0: .line 89
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            ifnull 7
         1: .line 90
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.isReadOnly:()Z
            ifeq 3
         2: .line 91
            aload 1 /* conn */
            iconst_1
            invokeinterface java.sql.Connection.setReadOnly:(Z)V
         3: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getCatalog:()Ljava/lang/String;
            ifnull 5
         4: .line 94
            aload 1 /* conn */
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getCatalog:()Ljava/lang/String;
            invokeinterface java.sql.Connection.setCatalog:(Ljava/lang/String;)V
         5: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getSchema:()Ljava/lang/String;
            ifnull 7
         6: .line 97
            aload 1 /* conn */
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.options:Lio/vertx/ext/sql/SQLOptions;
            invokevirtual io.vertx.ext.sql.SQLOptions.getSchema:()Ljava/lang/String;
            invokeinterface java.sql.Connection.setSchema:(Ljava/lang/String;)V
         7: .line 100
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.sql.Connection conn
        end local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/vertx/ext/jdbc/impl/actions/AbstractJDBCAction<TT;>;
            0    8     1  conn  Ljava/sql/Connection;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      conn  

  private void lambda$0(java.sql.Connection, io.vertx.core.Promise);
    descriptor: (Ljava/sql/Connection;Lio/vertx/core/Promise;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
        start local 2 // io.vertx.core.Promise future
         0: .line 67
            aload 0 /* this */
            aload 1
            aload 2 /* future */
            invokevirtual io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.handle:(Ljava/sql/Connection;Lio/vertx/core/Promise;)V
            return
        end local 2 // io.vertx.core.Promise future
        end local 0 // io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/vertx/ext/jdbc/impl/actions/AbstractJDBCAction<TT;>;
            0    1     2  future  Lio/vertx/core/Promise<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "AbstractJDBCAction.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles