public interface org.jdbi.v3.sqlobject.transaction.Transactional<This extends org.jdbi.v3.sqlobject.transaction.Transactional<This>> extends org.jdbi.v3.sqlobject.SqlObject
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: org.jdbi.v3.sqlobject.transaction.Transactional
  super_class: java.lang.Object
{
  public void begin();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
         0: .line 41
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.getHandle:()Lorg/jdbi/v3/core/Handle;
            invokevirtual org.jdbi.v3.core.Handle.begin:()Lorg/jdbi/v3/core/Handle;
            pop
         1: .line 42
            return
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;

  public void commit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
         0: .line 48
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.getHandle:()Lorg/jdbi/v3/core/Handle;
            invokevirtual org.jdbi.v3.core.Handle.commit:()Lorg/jdbi/v3/core/Handle;
            pop
         1: .line 49
            return
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;

  public void rollback();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
         0: .line 55
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.getHandle:()Lorg/jdbi/v3/core/Handle;
            invokevirtual org.jdbi.v3.core.Handle.rollback:()Lorg/jdbi/v3/core/Handle;
            pop
         1: .line 56
            return
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;

  public void savepoint(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
        start local 1 // java.lang.String savepointName
         0: .line 64
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.getHandle:()Lorg/jdbi/v3/core/Handle;
            aload 1 /* savepointName */
            invokevirtual org.jdbi.v3.core.Handle.savepoint:(Ljava/lang/String;)Lorg/jdbi/v3/core/Handle;
            pop
         1: .line 65
            return
        end local 1 // java.lang.String savepointName
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;
            0    2     1  savepointName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      savepointName  

  public void rollbackToSavepoint(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
        start local 1 // java.lang.String savepointName
         0: .line 73
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.getHandle:()Lorg/jdbi/v3/core/Handle;
            aload 1 /* savepointName */
            invokevirtual org.jdbi.v3.core.Handle.rollbackToSavepoint:(Ljava/lang/String;)Lorg/jdbi/v3/core/Handle;
            pop
         1: .line 74
            return
        end local 1 // java.lang.String savepointName
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;
            0    2     1  savepointName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      savepointName  

  public void releaseSavepoint(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
        start local 1 // java.lang.String savepointName
         0: .line 82
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.getHandle:()Lorg/jdbi/v3/core/Handle;
            aload 1 /* savepointName */
            invokevirtual org.jdbi.v3.core.Handle.release:(Ljava/lang/String;)Lorg/jdbi/v3/core/Handle;
            pop
         1: .line 83
            return
        end local 1 // java.lang.String savepointName
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;
            0    2     1  savepointName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      savepointName  

  public <R, X extends java.lang.Exception> R inTransaction(org.jdbi.v3.sqlobject.transaction.TransactionalCallback<R, This, X>) throws X;
    descriptor: (Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
        start local 1 // org.jdbi.v3.sqlobject.transaction.TransactionalCallback callback
         0: .line 96
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.getHandle:()Lorg/jdbi/v3/core/Handle;
            aload 0 /* this */
            aload 1 /* callback */
            invokedynamic withHandle(Lorg/jdbi/v3/sqlobject/transaction/Transactional;Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;)Lorg/jdbi/v3/core/HandleCallback;
              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:
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/transaction/Transactional.lambda$0(Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object; (7 itf)
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
            invokevirtual org.jdbi.v3.core.Handle.inTransaction:(Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
            areturn
        end local 1 // org.jdbi.v3.sqlobject.transaction.TransactionalCallback callback
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;
            0    1     1  callback  Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback<TR;TThis;TX;>;
    Exceptions:
      throws java.lang.Exception
    Signature: <R:Ljava/lang/Object;X:Ljava/lang/Exception;>(Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback<TR;TThis;TX;>;)TR;^TX;
    MethodParameters:
          Name  Flags
      callback  

  public <R, X extends java.lang.Exception> R inTransaction(org.jdbi.v3.core.transaction.TransactionIsolationLevel, org.jdbi.v3.sqlobject.transaction.TransactionalCallback<R, This, X>) throws X;
    descriptor: (Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
        start local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel isolation
        start local 2 // org.jdbi.v3.sqlobject.transaction.TransactionalCallback callback
         0: .line 112
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.getHandle:()Lorg/jdbi/v3/core/Handle;
            aload 1 /* isolation */
            aload 0 /* this */
            aload 2 /* callback */
            invokedynamic withHandle(Lorg/jdbi/v3/sqlobject/transaction/Transactional;Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;)Lorg/jdbi/v3/core/HandleCallback;
              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:
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/transaction/Transactional.lambda$1(Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object; (7 itf)
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
            invokevirtual org.jdbi.v3.core.Handle.inTransaction:(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
            areturn
        end local 2 // org.jdbi.v3.sqlobject.transaction.TransactionalCallback callback
        end local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel isolation
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;
            0    1     1  isolation  Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            0    1     2   callback  Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback<TR;TThis;TX;>;
    Exceptions:
      throws java.lang.Exception
    Signature: <R:Ljava/lang/Object;X:Ljava/lang/Exception;>(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback<TR;TThis;TX;>;)TR;^TX;
    MethodParameters:
           Name  Flags
      isolation  
      callback   

  public <X extends java.lang.Exception> void useTransaction(org.jdbi.v3.sqlobject.transaction.TransactionalConsumer<This, X>) throws X;
    descriptor: (Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
        start local 1 // org.jdbi.v3.sqlobject.transaction.TransactionalConsumer callback
         0: .line 123
            aload 0 /* this */
            aload 1 /* callback */
            invokedynamic inTransaction(Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer;)Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;
              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:
                  (Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/transaction/Transactional.lambda$2(Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer;Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object; (6 itf)
                  (Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object;
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.inTransaction:(Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;)Ljava/lang/Object;
            pop
         1: .line 127
            return
        end local 1 // org.jdbi.v3.sqlobject.transaction.TransactionalConsumer callback
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;
            0    2     1  callback  Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer<TThis;TX;>;
    Exceptions:
      throws java.lang.Exception
    Signature: <X:Ljava/lang/Exception;>(Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer<TThis;TX;>;)V^TX;
    MethodParameters:
          Name  Flags
      callback  

  public <X extends java.lang.Exception> void useTransaction(org.jdbi.v3.core.transaction.TransactionIsolationLevel, org.jdbi.v3.sqlobject.transaction.TransactionalConsumer<This, X>) throws X;
    descriptor: (Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
        start local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel isolation
        start local 2 // org.jdbi.v3.sqlobject.transaction.TransactionalConsumer callback
         0: .line 139
            aload 0 /* this */
            aload 1 /* isolation */
            aload 2 /* callback */
            invokedynamic inTransaction(Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer;)Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;
              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:
                  (Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/transaction/Transactional.lambda$3(Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer;Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object; (6 itf)
                  (Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object;
            invokeinterface org.jdbi.v3.sqlobject.transaction.Transactional.inTransaction:(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;)Ljava/lang/Object;
            pop
         1: .line 143
            return
        end local 2 // org.jdbi.v3.sqlobject.transaction.TransactionalConsumer callback
        end local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel isolation
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;
            0    2     1  isolation  Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            0    2     2   callback  Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer<TThis;TX;>;
    Exceptions:
      throws java.lang.Exception
    Signature: <X:Ljava/lang/Exception;>(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer<TThis;TX;>;)V^TX;
    MethodParameters:
           Name  Flags
      isolation  
      callback   

  private java.lang.Object lambda$0(org.jdbi.v3.sqlobject.transaction.TransactionalCallback, org.jdbi.v3.core.Handle);
    descriptor: (Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
        start local 2 // org.jdbi.v3.core.Handle h
         0: .line 96
            aload 1
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.TransactionalCallback.inTransaction:(Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object;
            areturn
        end local 2 // org.jdbi.v3.core.Handle h
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;
            0    1     2     h  Lorg/jdbi/v3/core/Handle;
    Exceptions:
      throws java.lang.Exception

  private java.lang.Object lambda$1(org.jdbi.v3.sqlobject.transaction.TransactionalCallback, org.jdbi.v3.core.Handle);
    descriptor: (Lorg/jdbi/v3/sqlobject/transaction/TransactionalCallback;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
        start local 2 // org.jdbi.v3.core.Handle h
         0: .line 112
            aload 1
            aload 0 /* this */
            invokeinterface org.jdbi.v3.sqlobject.transaction.TransactionalCallback.inTransaction:(Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object;
            areturn
        end local 2 // org.jdbi.v3.core.Handle h
        end local 0 // org.jdbi.v3.sqlobject.transaction.Transactional this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;
            0    1     2     h  Lorg/jdbi/v3/core/Handle;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$2(org.jdbi.v3.sqlobject.transaction.TransactionalConsumer, org.jdbi.v3.sqlobject.transaction.Transactional);
    descriptor: (Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer;Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.jdbi.v3.sqlobject.transaction.Transactional transactional
         0: .line 124
            aload 0
            aload 1 /* transactional */
            invokeinterface org.jdbi.v3.sqlobject.transaction.TransactionalConsumer.useTransaction:(Lorg/jdbi/v3/sqlobject/transaction/Transactional;)V
         1: .line 125
            aconst_null
            areturn
        end local 1 // org.jdbi.v3.sqlobject.transaction.Transactional transactional
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     1  transactional  TThis;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$3(org.jdbi.v3.sqlobject.transaction.TransactionalConsumer, org.jdbi.v3.sqlobject.transaction.Transactional);
    descriptor: (Lorg/jdbi/v3/sqlobject/transaction/TransactionalConsumer;Lorg/jdbi/v3/sqlobject/transaction/Transactional;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.jdbi.v3.sqlobject.transaction.Transactional transactional
         0: .line 140
            aload 0
            aload 1 /* transactional */
            invokeinterface org.jdbi.v3.sqlobject.transaction.TransactionalConsumer.useTransaction:(Lorg/jdbi/v3/sqlobject/transaction/Transactional;)V
         1: .line 141
            aconst_null
            areturn
        end local 1 // org.jdbi.v3.sqlobject.transaction.Transactional transactional
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     1  transactional  TThis;
    Exceptions:
      throws java.lang.Exception
}
Signature: <This::Lorg/jdbi/v3/sqlobject/transaction/Transactional<TThis;>;>Ljava/lang/Object;Lorg/jdbi/v3/sqlobject/SqlObject;
SourceFile: "Transactional.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles