class io.ebeaninternal.server.expression.RawExpressionBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.ebeaninternal.server.expression.RawExpressionBuilder
  super_class: java.lang.Object
{
  private static final java.lang.String BP_1;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "?1"

  private static final java.lang.String[] BP;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.String expanded;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.lang.Object> params;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/Object;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 11
            bipush 20
            anewarray java.lang.String
            dup
            iconst_0
            ldc "?1"
            aastore
            dup
            iconst_1
            ldc "?2"
            aastore
            dup
            iconst_2
            ldc "?3"
            aastore
            dup
            iconst_3
            ldc "?4"
            aastore
            dup
            iconst_4
            ldc "?5"
            aastore
            dup
            iconst_5
            ldc "?6"
            aastore
            dup
            bipush 6
            ldc "?7"
            aastore
            dup
            bipush 7
            ldc "?8"
            aastore
            dup
            bipush 8
         1: .line 12
            ldc "?9"
            aastore
            dup
            bipush 9
            ldc "?10"
            aastore
            dup
            bipush 10
            ldc "?11"
            aastore
            dup
            bipush 11
            ldc "?12"
            aastore
            dup
            bipush 12
            ldc "?13"
            aastore
            dup
            bipush 13
            ldc "?14"
            aastore
            dup
            bipush 14
            ldc "?15"
            aastore
            dup
            bipush 15
            ldc "?16"
            aastore
            dup
            bipush 16
            ldc "?17"
            aastore
            dup
            bipush 17
            ldc "?18"
            aastore
            dup
            bipush 18
            ldc "?19"
            aastore
            dup
            bipush 19
            ldc "?20"
            aastore
         2: .line 11
            putstatic io.ebeaninternal.server.expression.RawExpressionBuilder.BP:[Ljava/lang/String;
         3: .line 12
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static io.ebeaninternal.server.expression.RawExpression buildSingle(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lio/ebeaninternal/server/expression/RawExpression;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // java.lang.String raw
        start local 1 // java.lang.Object value
         0: .line 18
            aload 1 /* value */
            aload 0 /* raw */
            ldc "?1"
            invokestatic io.ebeaninternal.server.expression.RawExpressionBuilder.isExpand:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 4
         1: .line 19
            aload 1 /* value */
            checkcast java.util.Collection
            astore 2 /* val */
        start local 2 // java.util.Collection val
         2: .line 20
            aload 0 /* raw */
            ldc "?1"
            aload 2 /* val */
            invokestatic io.ebeaninternal.server.expression.RawExpressionBuilder.expand:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 0 /* raw */
         3: .line 21
            new io.ebeaninternal.server.expression.RawExpression
            dup
            aload 0 /* raw */
            aload 2 /* val */
            invokeinterface java.util.Collection.toArray:()[Ljava/lang/Object;
            invokespecial io.ebeaninternal.server.expression.RawExpression.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            areturn
        end local 2 // java.util.Collection val
         4: .line 23
      StackMap locals:
      StackMap stack:
            new io.ebeaninternal.server.expression.RawExpression
            dup
            aload 0 /* raw */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* value */
            aastore
            invokespecial io.ebeaninternal.server.expression.RawExpression.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object value
        end local 0 // java.lang.String raw
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0    raw  Ljava/lang/String;
            0    5     1  value  Ljava/lang/Object;
            2    4     2    val  Ljava/util/Collection;
    MethodParameters:
       Name  Flags
      raw    
      value  

  static io.ebeaninternal.server.expression.RawExpression build(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Lio/ebeaninternal/server/expression/RawExpression;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.String raw
        start local 1 // java.lang.Object[] values
         0: .line 31
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 32
      StackMap locals: int
      StackMap stack:
            aload 1 /* values */
            iload 2 /* i */
            aaload
            aload 0 /* raw */
            iload 2 /* i */
            invokestatic io.ebeaninternal.server.expression.RawExpressionBuilder.match:(I)Ljava/lang/String;
            invokestatic io.ebeaninternal.server.expression.RawExpressionBuilder.isExpand:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 4
         3: .line 33
            new io.ebeaninternal.server.expression.RawExpressionBuilder
            dup
            aload 0 /* raw */
            aload 1 /* values */
            invokespecial io.ebeaninternal.server.expression.RawExpressionBuilder.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            invokevirtual io.ebeaninternal.server.expression.RawExpressionBuilder.build:()Lio/ebeaninternal/server/expression/RawExpression;
            areturn
         4: .line 31
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 1 /* values */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 36
            new io.ebeaninternal.server.expression.RawExpression
            dup
            aload 0 /* raw */
            aload 1 /* values */
            invokespecial io.ebeaninternal.server.expression.RawExpression.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object[] values
        end local 0 // java.lang.String raw
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0     raw  Ljava/lang/String;
            0    7     1  values  [Ljava/lang/Object;
            1    6     2       i  I
    MethodParameters:
        Name  Flags
      raw     
      values  

  private static boolean isExpand(java.lang.Object, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object value
        start local 1 // java.lang.String raw
        start local 2 // java.lang.String bindMatch
         0: .line 43
            aload 0 /* value */
            instanceof java.util.Collection
            ifeq 1
            aload 1 /* raw */
            aload 2 /* bindMatch */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.lang.String bindMatch
        end local 1 // java.lang.String raw
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0      value  Ljava/lang/Object;
            0    2     1        raw  Ljava/lang/String;
            0    2     2  bindMatch  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      value      
      raw        
      bindMatch  

  private static java.lang.String match(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int i
         0: .line 47
            iload 0 /* i */
            bipush 20
            if_icmpge 2
         1: .line 48
            getstatic io.ebeaninternal.server.expression.RawExpressionBuilder.BP:[Ljava/lang/String;
            iload 0 /* i */
            aaload
            areturn
         2: .line 50
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "?"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     i  I
    MethodParameters:
      Name  Flags
      i     

  private static java.lang.String expand(java.util.Collection);
    descriptor: (Ljava/util/Collection;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.util.Collection values
         0: .line 55
            new java.lang.StringBuilder
            dup
            aload 0 /* values */
            invokeinterface java.util.Collection.size:()I
            iconst_2
            imul
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sqlExpand */
        start local 1 // java.lang.StringBuilder sqlExpand
         1: .line 56
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 57
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 2 /* i */
            ifle 5
         4: .line 58
            aload 1 /* sqlExpand */
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 60
      StackMap locals:
      StackMap stack:
            aload 1 /* sqlExpand */
            ldc "?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 56
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* values */
            invokeinterface java.util.Collection.size:()I
            if_icmplt 3
        end local 2 // int i
         8: .line 62
            aload 1 /* sqlExpand */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sqlExpand
        end local 0 // java.util.Collection values
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0     values  Ljava/util/Collection;
            1    9     1  sqlExpand  Ljava/lang/StringBuilder;
            2    8     2          i  I
    MethodParameters:
        Name  Flags
      values  

  private void <init>(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // io.ebeaninternal.server.expression.RawExpressionBuilder this
        start local 1 // java.lang.String raw
        start local 2 // java.lang.Object[] values
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield io.ebeaninternal.server.expression.RawExpressionBuilder.params:Ljava/util/List;
         2: .line 70
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 12
         4: .line 71
      StackMap locals: io.ebeaninternal.server.expression.RawExpressionBuilder java.lang.String java.lang.Object[] int
      StackMap stack:
            iload 3 /* i */
            invokestatic io.ebeaninternal.server.expression.RawExpressionBuilder.match:(I)Ljava/lang/String;
            astore 4 /* match */
        start local 4 // java.lang.String match
         5: .line 72
            aload 2 /* values */
            iload 3 /* i */
            aaload
            aload 1 /* raw */
            aload 4 /* match */
            invokestatic io.ebeaninternal.server.expression.RawExpressionBuilder.isExpand:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Z
            ifne 8
         6: .line 73
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.RawExpressionBuilder.params:Ljava/util/List;
            aload 2 /* values */
            iload 3 /* i */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 74
            goto 11
         8: .line 75
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* values */
            iload 3 /* i */
            aaload
            checkcast java.util.Collection
            astore 5 /* val */
        start local 5 // java.util.Collection val
         9: .line 76
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.RawExpressionBuilder.params:Ljava/util/List;
            aload 5 /* val */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        10: .line 77
            aload 1 /* raw */
            aload 4 /* match */
            aload 5 /* val */
            invokestatic io.ebeaninternal.server.expression.RawExpressionBuilder.expand:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 1 /* raw */
        end local 5 // java.util.Collection val
        end local 4 // java.lang.String match
        11: .line 70
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            aload 2 /* values */
            arraylength
            if_icmplt 4
        end local 3 // int i
        13: .line 80
            aload 0 /* this */
            aload 1 /* raw */
            putfield io.ebeaninternal.server.expression.RawExpressionBuilder.expanded:Ljava/lang/String;
        14: .line 81
            return
        end local 2 // java.lang.Object[] values
        end local 1 // java.lang.String raw
        end local 0 // io.ebeaninternal.server.expression.RawExpressionBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lio/ebeaninternal/server/expression/RawExpressionBuilder;
            0   15     1     raw  Ljava/lang/String;
            0   15     2  values  [Ljava/lang/Object;
            3   13     3       i  I
            5   11     4   match  Ljava/lang/String;
            9   11     5     val  Ljava/util/Collection;
    MethodParameters:
        Name  Flags
      raw     
      values  

  private io.ebeaninternal.server.expression.RawExpression build();
    descriptor: ()Lio/ebeaninternal/server/expression/RawExpression;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.expression.RawExpressionBuilder this
         0: .line 84
            new io.ebeaninternal.server.expression.RawExpression
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.RawExpressionBuilder.expanded:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.RawExpressionBuilder.params:Ljava/util/List;
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokespecial io.ebeaninternal.server.expression.RawExpression.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            areturn
        end local 0 // io.ebeaninternal.server.expression.RawExpressionBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/expression/RawExpressionBuilder;
}
SourceFile: "RawExpressionBuilder.java"