public class org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter implements org.springframework.jdbc.core.PreparedStatementSetter, org.springframework.jdbc.core.ParameterDisposer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter
  super_class: java.lang.Object
{
  private final java.lang.Object[] args;
    descriptor: [Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private final int[] argTypes;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>(java.lang.Object[], int[]);
    descriptor: ([Ljava/lang/Object;[I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter this
        start local 1 // java.lang.Object[] args
        start local 2 // int[] argTypes
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            aload 1 /* args */
            ifnull 2
            aload 2 /* argTypes */
            ifnull 4
      StackMap locals: org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter java.lang.Object[] int[]
      StackMap stack:
         2: aload 1 /* args */
            ifnonnull 3
            aload 2 /* argTypes */
            ifnonnull 4
         3: .line 50
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            ifnull 5
            aload 1 /* args */
            arraylength
            aload 2 /* argTypes */
            arraylength
            if_icmpeq 5
         4: .line 51
      StackMap locals:
      StackMap stack:
            new org.springframework.dao.InvalidDataAccessApiUsageException
            dup
            ldc "args and argTypes parameters must match"
            invokespecial org.springframework.dao.InvalidDataAccessApiUsageException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 53
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            putfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.args:[Ljava/lang/Object;
         6: .line 54
            aload 0 /* this */
            aload 2 /* argTypes */
            putfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.argTypes:[I
         7: .line 55
            return
        end local 2 // int[] argTypes
        end local 1 // java.lang.Object[] args
        end local 0 // org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/springframework/jdbc/core/ArgumentTypePreparedStatementSetter;
            0    8     1      args  [Ljava/lang/Object;
            0    8     2  argTypes  [I
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      args      
      argTypes  

  public void setValues(java.sql.PreparedStatement);
    descriptor: (Ljava/sql/PreparedStatement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=13, args_size=2
        start local 0 // org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter this
        start local 1 // java.sql.PreparedStatement ps
         0: .line 60
            iconst_1
            istore 2 /* parameterPosition */
        start local 2 // int parameterPosition
         1: .line 61
            aload 0 /* this */
            getfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.args:[Ljava/lang/Object;
            ifnull 26
            aload 0 /* this */
            getfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.argTypes:[I
            ifnull 26
         2: .line 62
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 25
         4: .line 63
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.args:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            astore 4 /* arg */
        start local 4 // java.lang.Object arg
         5: .line 64
            aload 4 /* arg */
            instanceof java.util.Collection
            ifeq 22
            aload 0 /* this */
            getfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.argTypes:[I
            iload 3 /* i */
            iaload
            sipush 2003
            if_icmpeq 22
         6: .line 65
            aload 4 /* arg */
            checkcast java.util.Collection
            astore 5 /* entries */
        start local 5 // java.util.Collection entries
         7: .line 66
            aload 5 /* entries */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 20
      StackMap locals: org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter java.sql.PreparedStatement int int java.lang.Object java.util.Collection top java.util.Iterator
      StackMap stack:
         8: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 6 /* entry */
        start local 6 // java.lang.Object entry
         9: .line 67
            aload 6 /* entry */
            instanceof java.lang.Object[]
            ifeq 18
        10: .line 68
            aload 6 /* entry */
            checkcast java.lang.Object[]
            astore 8 /* valueArray */
        start local 8 // java.lang.Object[] valueArray
        11: .line 69
            aload 8 /* valueArray */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 16
      StackMap locals: org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter java.sql.PreparedStatement int int java.lang.Object java.util.Collection java.lang.Object java.util.Iterator java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
        12: aload 12
            iload 10
            aaload
            astore 9 /* argValue */
        start local 9 // java.lang.Object argValue
        13: .line 70
            aload 0 /* this */
            aload 1 /* ps */
            iload 2 /* parameterPosition */
            aload 0 /* this */
            getfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.argTypes:[I
            iload 3 /* i */
            iaload
            aload 9 /* argValue */
            invokevirtual org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.doSetValue:(Ljava/sql/PreparedStatement;IILjava/lang/Object;)V
        14: .line 71
            iinc 2 /* parameterPosition */ 1
        end local 9 // java.lang.Object argValue
        15: .line 69
            iinc 10 1
      StackMap locals:
      StackMap stack:
        16: iload 10
            iload 11
            if_icmplt 12
        end local 8 // java.lang.Object[] valueArray
        17: .line 73
            goto 20
        18: .line 75
      StackMap locals: org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter java.sql.PreparedStatement int int java.lang.Object java.util.Collection java.lang.Object java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ps */
            iload 2 /* parameterPosition */
            aload 0 /* this */
            getfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.argTypes:[I
            iload 3 /* i */
            iaload
            aload 6 /* entry */
            invokevirtual org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.doSetValue:(Ljava/sql/PreparedStatement;IILjava/lang/Object;)V
        19: .line 76
            iinc 2 /* parameterPosition */ 1
        end local 6 // java.lang.Object entry
        20: .line 66
      StackMap locals: org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter java.sql.PreparedStatement int int java.lang.Object java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 5 // java.util.Collection entries
        21: .line 79
            goto 24
        22: .line 81
      StackMap locals: org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter java.sql.PreparedStatement int int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ps */
            iload 2 /* parameterPosition */
            aload 0 /* this */
            getfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.argTypes:[I
            iload 3 /* i */
            iaload
            aload 4 /* arg */
            invokevirtual org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.doSetValue:(Ljava/sql/PreparedStatement;IILjava/lang/Object;)V
        23: .line 82
            iinc 2 /* parameterPosition */ 1
        end local 4 // java.lang.Object arg
        24: .line 62
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 3 /* i */
            aload 0 /* this */
            getfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.args:[Ljava/lang/Object;
            arraylength
            if_icmplt 4
        end local 3 // int i
        26: .line 86
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int parameterPosition
        end local 1 // java.sql.PreparedStatement ps
        end local 0 // org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lorg/springframework/jdbc/core/ArgumentTypePreparedStatementSetter;
            0   27     1                 ps  Ljava/sql/PreparedStatement;
            1   27     2  parameterPosition  I
            3   26     3                  i  I
            5   24     4                arg  Ljava/lang/Object;
            7   21     5            entries  Ljava/util/Collection<*>;
            9   20     6              entry  Ljava/lang/Object;
           11   17     8         valueArray  [Ljava/lang/Object;
           13   15     9           argValue  Ljava/lang/Object;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      ps    

  protected void doSetValue(java.sql.PreparedStatement, int, int, java.lang.Object);
    descriptor: (Ljava/sql/PreparedStatement;IILjava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter this
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // int parameterPosition
        start local 3 // int argType
        start local 4 // java.lang.Object argValue
         0: .line 100
            aload 1 /* ps */
            iload 2 /* parameterPosition */
            iload 3 /* argType */
            aload 4 /* argValue */
            invokestatic org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue:(Ljava/sql/PreparedStatement;IILjava/lang/Object;)V
         1: .line 101
            return
        end local 4 // java.lang.Object argValue
        end local 3 // int argType
        end local 2 // int parameterPosition
        end local 1 // java.sql.PreparedStatement ps
        end local 0 // org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/springframework/jdbc/core/ArgumentTypePreparedStatementSetter;
            0    2     1                 ps  Ljava/sql/PreparedStatement;
            0    2     2  parameterPosition  I
            0    2     3            argType  I
            0    2     4           argValue  Ljava/lang/Object;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                   Name  Flags
      ps                 
      parameterPosition  
      argType            
      argValue           

  public void cleanupParameters();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter this
         0: .line 105
            aload 0 /* this */
            getfield org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter.args:[Ljava/lang/Object;
            invokestatic org.springframework.jdbc.core.StatementCreatorUtils.cleanupParameters:([Ljava/lang/Object;)V
         1: .line 106
            return
        end local 0 // org.springframework.jdbc.core.ArgumentTypePreparedStatementSetter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/jdbc/core/ArgumentTypePreparedStatementSetter;
}
SourceFile: "ArgumentTypePreparedStatementSetter.java"