public final class io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper
  super_class: java.lang.Object
{
  private static final io.vertx.core.logging.Logger log;
    descriptor: Lio/vertx/core/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.vertx.core.json.JsonArray EMPTY;
    descriptor: Lio/vertx/core/json/JsonArray;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern DATETIME;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern DATE;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern TIME;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern UUID;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final boolean castUUID;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 58
            ldc Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;
            invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
            putstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.log:Lio/vertx/core/logging/Logger;
         1: .line 60
            new io.vertx.core.json.JsonArray
            dup
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            invokespecial io.vertx.core.json.JsonArray.<init>:(Ljava/util/List;)V
            putstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.EMPTY:Lio/vertx/core/json/JsonArray;
         2: .line 62
            ldc "^\\d{4}-(?:0[0-9]|1[0-2])-[0-9]{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3,9})?Z$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.DATETIME:Ljava/util/regex/Pattern;
         3: .line 63
            ldc "^\\d{4}-(?:0[0-9]|1[0-2])-[0-9]{2}$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.DATE:Ljava/util/regex/Pattern;
         4: .line 64
            ldc "^\\d{2}:\\d{2}:\\d{2}$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.TIME:Ljava/util/regex/Pattern;
         5: .line 65
            ldc "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.UUID:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
         0: .line 70
            aload 0 /* this */
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            invokespecial io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.<init>:(Lio/vertx/core/json/JsonObject;)V
         1: .line 71
            return
        end local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;

  public void <init>(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
        start local 1 // io.vertx.core.json.JsonObject config
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 0 /* this */
            aload 1 /* config */
            ldc "castUUID"
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual io.vertx.core.json.JsonObject.getBoolean:(Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.castUUID:Z
         2: .line 75
            return
        end local 1 // io.vertx.core.json.JsonObject config
        end local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;
            0    3     1  config  Lio/vertx/core/json/JsonObject;
    MethodParameters:
        Name  Flags
      config  

  public void fillStatement(java.sql.PreparedStatement, io.vertx.core.json.JsonArray);
    descriptor: (Ljava/sql/PreparedStatement;Lio/vertx/core/json/JsonArray;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
        start local 1 // java.sql.PreparedStatement statement
        start local 2 // io.vertx.core.json.JsonArray in
         0: .line 78
            aload 2 /* in */
            ifnonnull 2
         1: .line 79
            getstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.EMPTY:Lio/vertx/core/json/JsonArray;
            astore 2 /* in */
         2: .line 82
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 13
         4: .line 83
      StackMap locals: int
      StackMap stack:
            aload 2 /* in */
            iload 3 /* i */
            invokevirtual io.vertx.core.json.JsonArray.getValue:(I)Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         5: .line 85
            aload 4 /* value */
            ifnull 11
         6: .line 86
            aload 4 /* value */
            instanceof java.lang.String
            ifeq 9
         7: .line 87
            aload 1 /* statement */
            iload 3 /* i */
            iconst_1
            iadd
            aload 0 /* this */
            aload 4 /* value */
            checkcast java.lang.String
            invokevirtual io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.optimisticCast:(Ljava/lang/String;)Ljava/lang/Object;
            invokeinterface java.sql.PreparedStatement.setObject:(ILjava/lang/Object;)V
         8: .line 88
            goto 12
         9: .line 89
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* statement */
            iload 3 /* i */
            iconst_1
            iadd
            aload 4 /* value */
            invokeinterface java.sql.PreparedStatement.setObject:(ILjava/lang/Object;)V
        10: .line 91
            goto 12
        11: .line 92
      StackMap locals:
      StackMap stack:
            aload 1 /* statement */
            iload 3 /* i */
            iconst_1
            iadd
            aconst_null
            invokeinterface java.sql.PreparedStatement.setObject:(ILjava/lang/Object;)V
        end local 4 // java.lang.Object value
        12: .line 82
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            aload 2 /* in */
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            if_icmplt 4
        end local 3 // int i
        14: .line 95
            return
        end local 2 // io.vertx.core.json.JsonArray in
        end local 1 // java.sql.PreparedStatement statement
        end local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;
            0   15     1  statement  Ljava/sql/PreparedStatement;
            0   15     2         in  Lio/vertx/core/json/JsonArray;
            3   14     3          i  I
            5   12     4      value  Ljava/lang/Object;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
           Name  Flags
      statement  
      in         

  public void fillStatement(java.sql.CallableStatement, io.vertx.core.json.JsonArray, io.vertx.core.json.JsonArray);
    descriptor: (Ljava/sql/CallableStatement;Lio/vertx/core/json/JsonArray;Lio/vertx/core/json/JsonArray;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
        start local 1 // java.sql.CallableStatement statement
        start local 2 // io.vertx.core.json.JsonArray in
        start local 3 // io.vertx.core.json.JsonArray out
         0: .line 98
            aload 2 /* in */
            ifnonnull 2
         1: .line 99
            getstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.EMPTY:Lio/vertx/core/json/JsonArray;
            astore 2 /* in */
         2: .line 102
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            ifnonnull 4
         3: .line 103
            getstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.EMPTY:Lio/vertx/core/json/JsonArray;
            astore 3 /* out */
         4: .line 106
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            aload 3 /* out */
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* max */
        start local 4 // int max
         5: .line 108
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 30
         7: .line 109
      StackMap locals: int int
      StackMap stack:
            aconst_null
            astore 6 /* value */
        start local 6 // java.lang.Object value
         8: .line 110
            iconst_0
            istore 7 /* set */
        start local 7 // boolean set
         9: .line 112
            iload 5 /* i */
            aload 2 /* in */
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            if_icmpge 11
        10: .line 113
            aload 2 /* in */
            iload 5 /* i */
            invokevirtual io.vertx.core.json.JsonArray.getValue:(I)Ljava/lang/Object;
            astore 6 /* value */
        11: .line 117
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 6 /* value */
            ifnull 17
        12: .line 118
            aload 6 /* value */
            instanceof java.lang.String
            ifeq 15
        13: .line 119
            aload 1 /* statement */
            iload 5 /* i */
            iconst_1
            iadd
            aload 0 /* this */
            aload 6 /* value */
            checkcast java.lang.String
            invokevirtual io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.optimisticCast:(Ljava/lang/String;)Ljava/lang/Object;
            invokeinterface java.sql.CallableStatement.setObject:(ILjava/lang/Object;)V
        14: .line 120
            goto 16
        15: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* statement */
            iload 5 /* i */
            iconst_1
            iadd
            aload 6 /* value */
            invokeinterface java.sql.CallableStatement.setObject:(ILjava/lang/Object;)V
        16: .line 123
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* set */
        17: .line 127
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* value */
        18: .line 129
            iload 5 /* i */
            aload 3 /* out */
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            if_icmpge 20
        19: .line 130
            aload 3 /* out */
            iload 5 /* i */
            invokevirtual io.vertx.core.json.JsonArray.getValue:(I)Ljava/lang/Object;
            astore 6 /* value */
        20: .line 134
      StackMap locals:
      StackMap stack:
            aload 6 /* value */
            ifnull 27
        21: .line 137
            aload 6 /* value */
            instanceof java.lang.String
            ifeq 24
        22: .line 138
            aload 1 /* statement */
            iload 5 /* i */
            iconst_1
            iadd
            aload 6 /* value */
            checkcast java.lang.String
            invokestatic java.sql.JDBCType.valueOf:(Ljava/lang/String;)Ljava/sql/JDBCType;
            invokevirtual java.sql.JDBCType.getVendorTypeNumber:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface java.sql.CallableStatement.registerOutParameter:(II)V
        23: .line 139
            goto 26
      StackMap locals:
      StackMap stack:
        24: aload 6 /* value */
            instanceof java.lang.Number
            ifeq 26
        25: .line 141
            aload 1 /* statement */
            iload 5 /* i */
            iconst_1
            iadd
            aload 6 /* value */
            checkcast java.lang.Number
            invokevirtual java.lang.Number.intValue:()I
            invokeinterface java.sql.CallableStatement.registerOutParameter:(II)V
        26: .line 143
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* set */
        27: .line 146
      StackMap locals:
      StackMap stack:
            iload 7 /* set */
            ifne 29
        28: .line 148
            aload 1 /* statement */
            iload 5 /* i */
            iconst_1
            iadd
            iconst_0
            invokeinterface java.sql.CallableStatement.setNull:(II)V
        end local 7 // boolean set
        end local 6 // java.lang.Object value
        29: .line 108
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 5 /* i */
            iload 4 /* max */
            if_icmplt 7
        end local 5 // int i
        31: .line 151
            return
        end local 4 // int max
        end local 3 // io.vertx.core.json.JsonArray out
        end local 2 // io.vertx.core.json.JsonArray in
        end local 1 // java.sql.CallableStatement statement
        end local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       this  Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;
            0   32     1  statement  Ljava/sql/CallableStatement;
            0   32     2         in  Lio/vertx/core/json/JsonArray;
            0   32     3        out  Lio/vertx/core/json/JsonArray;
            5   32     4        max  I
            6   31     5          i  I
            8   29     6      value  Ljava/lang/Object;
            9   29     7        set  Z
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
           Name  Flags
      statement  
      in         
      out        

  public io.vertx.ext.sql.ResultSet asList(java.sql.ResultSet);
    descriptor: (Ljava/sql/ResultSet;)Lio/vertx/ext/sql/ResultSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
        start local 1 // java.sql.ResultSet rs
         0: .line 155
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* columnNames */
        start local 2 // java.util.List columnNames
         1: .line 156
            aload 1 /* rs */
            invokeinterface java.sql.ResultSet.getMetaData:()Ljava/sql/ResultSetMetaData;
            astore 3 /* metaData */
        start local 3 // java.sql.ResultSetMetaData metaData
         2: .line 157
            aload 3 /* metaData */
            invokeinterface java.sql.ResultSetMetaData.getColumnCount:()I
            istore 4 /* cols */
        start local 4 // int cols
         3: .line 158
            iconst_1
            istore 5 /* i */
        start local 5 // int i
         4: goto 7
         5: .line 159
      StackMap locals: io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper java.sql.ResultSet java.util.List java.sql.ResultSetMetaData int int
      StackMap stack:
            aload 2 /* columnNames */
            aload 3 /* metaData */
            iload 5 /* i */
            invokeinterface java.sql.ResultSetMetaData.getColumnLabel:(I)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 158
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            iload 4 /* cols */
            if_icmple 5
        end local 5 // int i
         8: .line 162
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* results */
        start local 5 // java.util.List results
         9: .line 164
            goto 21
        10: .line 165
      StackMap locals: io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper java.sql.ResultSet java.util.List java.sql.ResultSetMetaData int java.util.List
      StackMap stack:
            new io.vertx.core.json.JsonArray
            dup
            invokespecial io.vertx.core.json.JsonArray.<init>:()V
            astore 6 /* result */
        start local 6 // io.vertx.core.json.JsonArray result
        11: .line 166
            iconst_1
            istore 7 /* i */
        start local 7 // int i
        12: goto 19
        13: .line 167
      StackMap locals: io.vertx.core.json.JsonArray int
      StackMap stack:
            aload 1 /* rs */
            iload 7 /* i */
            invokeinterface java.sql.ResultSet.getObject:(I)Ljava/lang/Object;
            invokestatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.convertSqlValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* res */
        start local 8 // java.lang.Object res
        14: .line 168
            aload 8 /* res */
            ifnull 17
        15: .line 169
            aload 6 /* result */
            aload 8 /* res */
            invokevirtual io.vertx.core.json.JsonArray.add:(Ljava/lang/Object;)Lio/vertx/core/json/JsonArray;
            pop
        16: .line 170
            goto 18
        17: .line 171
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 6 /* result */
            invokevirtual io.vertx.core.json.JsonArray.addNull:()Lio/vertx/core/json/JsonArray;
            pop
        end local 8 // java.lang.Object res
        18: .line 166
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 7 /* i */
            iload 4 /* cols */
            if_icmple 13
        end local 7 // int i
        20: .line 174
            aload 5 /* results */
            aload 6 /* result */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // io.vertx.core.json.JsonArray result
        21: .line 164
      StackMap locals:
      StackMap stack:
            aload 1 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 10
        22: .line 177
            new io.vertx.ext.sql.ResultSet
            dup
            aload 2 /* columnNames */
            aload 5 /* results */
            aconst_null
            invokespecial io.vertx.ext.sql.ResultSet.<init>:(Ljava/util/List;Ljava/util/List;Lio/vertx/ext/sql/ResultSet;)V
            areturn
        end local 5 // java.util.List results
        end local 4 // int cols
        end local 3 // java.sql.ResultSetMetaData metaData
        end local 2 // java.util.List columnNames
        end local 1 // java.sql.ResultSet rs
        end local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;
            0   23     1           rs  Ljava/sql/ResultSet;
            1   23     2  columnNames  Ljava/util/List<Ljava/lang/String;>;
            2   23     3     metaData  Ljava/sql/ResultSetMetaData;
            3   23     4         cols  I
            4    8     5            i  I
            9   23     5      results  Ljava/util/List<Lio/vertx/core/json/JsonArray;>;
           11   21     6       result  Lio/vertx/core/json/JsonArray;
           12   20     7            i  I
           14   18     8          res  Ljava/lang/Object;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      rs    

  public static java.lang.Object convertSqlValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // java.lang.Object value
         0: .line 181
            aload 0 /* value */
            ifnonnull 2
         1: .line 182
            aconst_null
            areturn
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            instanceof java.lang.Boolean
            ifne 3
            aload 0 /* value */
            instanceof java.lang.String
            ifne 3
            aload 0 /* value */
            instanceof byte[]
            ifeq 4
         3: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            areturn
         4: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            instanceof java.lang.Number
            ifeq 11
         5: .line 192
            aload 0 /* value */
            instanceof java.math.BigDecimal
            ifeq 10
         6: .line 193
            aload 0 /* value */
            checkcast java.math.BigDecimal
            astore 1 /* d */
        start local 1 // java.math.BigDecimal d
         7: .line 194
            aload 1 /* d */
            invokevirtual java.math.BigDecimal.scale:()I
            ifne 9
         8: .line 195
            aload 0 /* value */
            checkcast java.math.BigDecimal
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            areturn
         9: .line 198
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 0 /* value */
            checkcast java.math.BigDecimal
            invokevirtual java.math.BigDecimal.doubleValue:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        end local 1 // java.math.BigDecimal d
        10: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            areturn
        11: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            instanceof java.sql.Time
            ifeq 13
        12: .line 207
            aload 0 /* value */
            checkcast java.sql.Time
            invokevirtual java.sql.Time.toLocalTime:()Ljava/time/LocalTime;
            getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
            invokevirtual java.time.LocalTime.atOffset:(Ljava/time/ZoneOffset;)Ljava/time/OffsetTime;
            getstatic java.time.format.DateTimeFormatter.ISO_LOCAL_TIME:Ljava/time/format/DateTimeFormatter;
            invokevirtual java.time.OffsetTime.format:(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;
            areturn
        13: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            instanceof java.sql.Date
            ifeq 15
        14: .line 211
            aload 0 /* value */
            checkcast java.sql.Date
            invokevirtual java.sql.Date.toLocalDate:()Ljava/time/LocalDate;
            getstatic java.time.format.DateTimeFormatter.ISO_LOCAL_DATE:Ljava/time/format/DateTimeFormatter;
            invokevirtual java.time.LocalDate.format:(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;
            areturn
        15: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            instanceof java.sql.Timestamp
            ifeq 17
        16: .line 215
            aload 0 /* value */
            checkcast java.sql.Timestamp
            invokevirtual java.sql.Timestamp.toInstant:()Ljava/time/Instant;
            getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
            invokestatic java.time.OffsetDateTime.ofInstant:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/OffsetDateTime;
            getstatic java.time.format.DateTimeFormatter.ISO_OFFSET_DATE_TIME:Ljava/time/format/DateTimeFormatter;
            invokevirtual java.time.OffsetDateTime.format:(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;
            areturn
        17: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            instanceof java.sql.Clob
            ifeq 29
        18: .line 220
            aload 0 /* value */
            checkcast java.sql.Clob
            astore 1 /* c */
        start local 1 // java.sql.Clob c
        19: .line 223
            aload 1 /* c */
            lconst_1
            aload 1 /* c */
            invokeinterface java.sql.Clob.length:()J
            l2i
            invokeinterface java.sql.Clob.getSubString:(JI)Ljava/lang/String;
            astore 3
        20: .line 226
            aload 1 /* c */
            invokeinterface java.sql.Clob.free:()V
        21: .line 227
            goto 23
      StackMap locals: java.lang.Object java.sql.Clob top java.lang.Object
      StackMap stack: java.lang.Throwable
        22: pop
        23: .line 223
      StackMap locals:
      StackMap stack:
            aload 3
            areturn
        24: .line 224
      StackMap locals: java.lang.Object java.sql.Clob
      StackMap stack: java.lang.Throwable
            astore 2
        25: .line 226
            aload 1 /* c */
            invokeinterface java.sql.Clob.free:()V
        26: .line 227
            goto 28
      StackMap locals: java.lang.Object java.sql.Clob java.lang.Throwable
      StackMap stack: java.lang.Throwable
        27: pop
        28: .line 230
      StackMap locals:
      StackMap stack:
            aload 2
            athrow
        end local 1 // java.sql.Clob c
        29: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            instanceof java.sql.Blob
            ifeq 41
        30: .line 234
            aload 0 /* value */
            checkcast java.sql.Blob
            astore 1 /* b */
        start local 1 // java.sql.Blob b
        31: .line 237
            aload 1 /* b */
            lconst_1
            aload 1 /* b */
            invokeinterface java.sql.Blob.length:()J
            l2i
            invokeinterface java.sql.Blob.getBytes:(JI)[B
            astore 3
        32: .line 240
            aload 1 /* b */
            invokeinterface java.sql.Blob.free:()V
        33: .line 241
            goto 35
      StackMap locals: java.lang.Object java.sql.Blob top java.lang.Object
      StackMap stack: java.lang.Throwable
        34: pop
        35: .line 237
      StackMap locals:
      StackMap stack:
            aload 3
            areturn
        36: .line 238
      StackMap locals: java.lang.Object java.sql.Blob
      StackMap stack: java.lang.Throwable
            astore 2
        37: .line 240
            aload 1 /* b */
            invokeinterface java.sql.Blob.free:()V
        38: .line 241
            goto 40
      StackMap locals: java.lang.Object java.sql.Blob java.lang.Throwable
      StackMap stack: java.lang.Throwable
        39: pop
        40: .line 244
      StackMap locals:
      StackMap stack:
            aload 2
            athrow
        end local 1 // java.sql.Blob b
        41: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            instanceof java.sql.Array
            ifeq 58
        42: .line 249
            aload 0 /* value */
            checkcast java.sql.Array
            astore 1 /* a */
        start local 1 // java.sql.Array a
        43: .line 251
            aload 1 /* a */
            invokeinterface java.sql.Array.getArray:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 2 /* arr */
        start local 2 // java.lang.Object[] arr
        44: .line 252
            aload 2 /* arr */
            ifnull 57
        45: .line 253
            new io.vertx.core.json.JsonArray
            dup
            invokespecial io.vertx.core.json.JsonArray.<init>:()V
            astore 3 /* jsonArray */
        start local 3 // io.vertx.core.json.JsonArray jsonArray
        46: .line 254
            aload 2 /* arr */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 50
      StackMap locals: java.lang.Object java.sql.Array java.lang.Object[] io.vertx.core.json.JsonArray top int int java.lang.Object[]
      StackMap stack:
        47: aload 7
            iload 5
            aaload
            astore 4 /* o */
        start local 4 // java.lang.Object o
        48: .line 255
            aload 3 /* jsonArray */
            aload 4 /* o */
            invokestatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.convertSqlValue:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual io.vertx.core.json.JsonArray.add:(Ljava/lang/Object;)Lio/vertx/core/json/JsonArray;
            pop
        end local 4 // java.lang.Object o
        49: .line 254
            iinc 5 1
      StackMap locals:
      StackMap stack:
        50: iload 5
            iload 6
            if_icmplt 47
        51: .line 257
            aload 3 /* jsonArray */
            astore 9
        52: .line 260
            aload 1 /* a */
            invokeinterface java.sql.Array.free:()V
        53: .line 257
            aload 9
            areturn
        end local 3 // io.vertx.core.json.JsonArray jsonArray
        end local 2 // java.lang.Object[] arr
        54: .line 259
      StackMap locals: java.lang.Object java.sql.Array
      StackMap stack: java.lang.Throwable
            astore 8
        55: .line 260
            aload 1 /* a */
            invokeinterface java.sql.Array.free:()V
        56: .line 261
            aload 8
            athrow
        57: .line 260
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            invokeinterface java.sql.Array.free:()V
        end local 1 // java.sql.Array a
        58: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   59     0      value  Ljava/lang/Object;
            7   10     1          d  Ljava/math/BigDecimal;
           19   29     1          c  Ljava/sql/Clob;
           31   41     1          b  Ljava/sql/Blob;
           43   58     1          a  Ljava/sql/Array;
           44   54     2        arr  [Ljava/lang/Object;
           46   54     3  jsonArray  Lio/vertx/core/json/JsonArray;
           48   49     4          o  Ljava/lang/Object;
      Exception table:
        from    to  target  type
          20    21      22  Class java.lang.AbstractMethodError
          20    21      22  Class java.sql.SQLFeatureNotSupportedException
          19    20      24  any
          25    26      27  Class java.lang.AbstractMethodError
          25    26      27  Class java.sql.SQLFeatureNotSupportedException
          32    33      34  Class java.lang.AbstractMethodError
          32    33      34  Class java.sql.SQLFeatureNotSupportedException
          31    32      36  any
          37    38      39  Class java.lang.AbstractMethodError
          37    38      39  Class java.sql.SQLFeatureNotSupportedException
          43    52      54  any
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object optimisticCast(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
        start local 1 // java.lang.String value
         0: .line 269
            aload 1 /* value */
            ifnonnull 2
         1: .line 270
            aconst_null
            areturn
         2: .line 275
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.TIME:Ljava/util/regex/Pattern;
            aload 1 /* value */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 7
         3: .line 277
            aload 1 /* value */
            invokestatic java.time.LocalTime.parse:(Ljava/lang/CharSequence;)Ljava/time/LocalTime;
            sipush 1970
            iconst_1
            iconst_1
            invokestatic java.time.LocalDate.of:(III)Ljava/time/LocalDate;
            invokevirtual java.time.LocalTime.atDate:(Ljava/time/LocalDate;)Ljava/time/LocalDateTime;
            getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
            invokevirtual java.time.LocalDateTime.toInstant:(Ljava/time/ZoneOffset;)Ljava/time/Instant;
            astore 2 /* instant */
        start local 2 // java.time.Instant instant
         4: .line 279
            invokestatic java.util.TimeZone.getDefault:()Ljava/util/TimeZone;
            aload 2 /* instant */
            invokevirtual java.time.Instant.toEpochMilli:()J
            invokevirtual java.util.TimeZone.getOffset:(J)I
            istore 3 /* offset */
        start local 3 // int offset
         5: .line 281
            new java.sql.Time
            dup
            aload 2 /* instant */
            invokevirtual java.time.Instant.toEpochMilli:()J
            iload 3 /* offset */
            i2l
            lsub
            invokespecial java.sql.Time.<init>:(J)V
         6: areturn
        end local 3 // int offset
        end local 2 // java.time.Instant instant
         7: .line 285
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.DATE:Ljava/util/regex/Pattern;
            aload 1 /* value */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 12
         8: .line 287
            aload 1 /* value */
            invokestatic java.time.LocalDate.parse:(Ljava/lang/CharSequence;)Ljava/time/LocalDate;
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokestatic java.time.LocalTime.of:(IIII)Ljava/time/LocalTime;
            invokevirtual java.time.LocalDate.atTime:(Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
            getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
            invokevirtual java.time.LocalDateTime.toInstant:(Ljava/time/ZoneOffset;)Ljava/time/Instant;
            astore 2 /* instant */
        start local 2 // java.time.Instant instant
         9: .line 289
            invokestatic java.util.TimeZone.getDefault:()Ljava/util/TimeZone;
            aload 2 /* instant */
            invokevirtual java.time.Instant.toEpochMilli:()J
            invokevirtual java.util.TimeZone.getOffset:(J)I
            istore 3 /* offset */
        start local 3 // int offset
        10: .line 291
            new java.sql.Date
            dup
            aload 2 /* instant */
            invokevirtual java.time.Instant.toEpochMilli:()J
            iload 3 /* offset */
            i2l
            lsub
            invokespecial java.sql.Date.<init>:(J)V
        11: areturn
        end local 3 // int offset
        end local 2 // java.time.Instant instant
        12: .line 295
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.DATETIME:Ljava/util/regex/Pattern;
            aload 1 /* value */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 16
        13: .line 296
            getstatic java.time.format.DateTimeFormatter.ISO_INSTANT:Ljava/time/format/DateTimeFormatter;
            aload 1 /* value */
            invokevirtual java.time.format.DateTimeFormatter.parse:(Ljava/lang/CharSequence;)Ljava/time/temporal/TemporalAccessor;
            invokestatic java.time.Instant.from:(Ljava/time/temporal/TemporalAccessor;)Ljava/time/Instant;
            astore 2 /* instant */
        start local 2 // java.time.Instant instant
        14: .line 297
            aload 2 /* instant */
            invokestatic java.sql.Timestamp.from:(Ljava/time/Instant;)Ljava/sql/Timestamp;
        15: areturn
        end local 2 // java.time.Instant instant
        16: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.castUUID:Z
            ifeq 21
            getstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.UUID:Ljava/util/regex/Pattern;
            aload 1 /* value */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 21
        17: .line 302
            aload 1 /* value */
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
        18: areturn
        19: .line 305
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
        20: .line 306
            getstatic io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper.log:Lio/vertx/core/logging/Logger;
            aload 2 /* e */
            invokevirtual io.vertx.core.logging.Logger.debug:(Ljava/lang/Object;)V
        end local 2 // java.lang.RuntimeException e
        21: .line 310
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 1 // java.lang.String value
        end local 0 // io.vertx.ext.jdbc.impl.actions.JDBCStatementHelper this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lio/vertx/ext/jdbc/impl/actions/JDBCStatementHelper;
            0   22     1    value  Ljava/lang/String;
            4    7     2  instant  Ljava/time/Instant;
            5    7     3   offset  I
            9   12     2  instant  Ljava/time/Instant;
           10   12     3   offset  I
           14   16     2  instant  Ljava/time/Instant;
           20   21     2        e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           2     6      19  Class java.lang.RuntimeException
           7    11      19  Class java.lang.RuntimeException
          12    15      19  Class java.lang.RuntimeException
          16    18      19  Class java.lang.RuntimeException
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "JDBCStatementHelper.java"