public class io.ebeaninternal.server.expression.ArrayContainsExpression extends io.ebeaninternal.server.expression.AbstractExpression
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.ebeaninternal.server.expression.ArrayContainsExpression
  super_class: io.ebeaninternal.server.expression.AbstractExpression
{
  private final boolean contains;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object[] values;
    descriptor: [Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.lang.String, boolean, java.lang.Object[]);
    descriptor: (Ljava/lang/String;Z[Ljava/lang/Object;)V
    flags: (0x0080) ACC_VARARGS
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
        start local 1 // java.lang.String propName
        start local 2 // boolean contains
        start local 3 // java.lang.Object[] values
         0: .line 18
            aload 0 /* this */
            aload 1 /* propName */
            invokespecial io.ebeaninternal.server.expression.AbstractExpression.<init>:(Ljava/lang/String;)V
         1: .line 19
            aload 0 /* this */
            iload 2 /* contains */
            putfield io.ebeaninternal.server.expression.ArrayContainsExpression.contains:Z
         2: .line 20
            aload 0 /* this */
            aload 3 /* values */
            putfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
         3: .line 21
            aload 3 /* values */
            ifnull 4
            aload 3 /* values */
            arraylength
            ifne 5
         4: .line 22
      StackMap locals: io.ebeaninternal.server.expression.ArrayContainsExpression java.lang.String int java.lang.Object[]
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "values must not be null or empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 24
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object[] values
        end local 2 // boolean contains
        end local 1 // java.lang.String propName
        end local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lio/ebeaninternal/server/expression/ArrayContainsExpression;
            0    6     1  propName  Ljava/lang/String;
            0    6     2  contains  Z
            0    6     3    values  [Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      propName  
      contains  
      values    

  public void writeDocQuery(io.ebeaninternal.server.expression.DocQueryContext);
    descriptor: (Lio/ebeaninternal/server/expression/DocQueryContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
        start local 1 // io.ebeaninternal.server.expression.DocQueryContext context
         0: .line 29
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            arraylength
            iconst_1
            if_icmpne 3
         1: .line 30
            aload 1 /* context */
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.propName:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            iconst_0
            aaload
            invokeinterface io.ebeaninternal.server.expression.DocQueryContext.writeEqualTo:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 31
            goto 13
         3: .line 32
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.contains:Z
            ifeq 6
         4: .line 33
            aload 1 /* context */
            invokeinterface io.ebeaninternal.server.expression.DocQueryContext.startBoolMust:()V
         5: .line 34
            goto 7
         6: .line 35
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokeinterface io.ebeaninternal.server.expression.DocQueryContext.startBoolMustNot:()V
         7: .line 37
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 11
      StackMap locals: io.ebeaninternal.server.expression.ArrayContainsExpression io.ebeaninternal.server.expression.DocQueryContext top int int java.lang.Object[]
      StackMap stack:
         8: aload 5
            iload 3
            aaload
            astore 2 /* value */
        start local 2 // java.lang.Object value
         9: .line 38
            aload 1 /* context */
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.propName:Ljava/lang/String;
            aload 2 /* value */
            invokeinterface io.ebeaninternal.server.expression.DocQueryContext.writeEqualTo:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 2 // java.lang.Object value
        10: .line 37
            iinc 3 1
      StackMap locals:
      StackMap stack:
        11: iload 3
            iload 4
            if_icmplt 8
        12: .line 40
            aload 1 /* context */
            invokeinterface io.ebeaninternal.server.expression.DocQueryContext.endBool:()V
        13: .line 42
      StackMap locals: io.ebeaninternal.server.expression.ArrayContainsExpression io.ebeaninternal.server.expression.DocQueryContext
      StackMap stack:
            return
        end local 1 // io.ebeaninternal.server.expression.DocQueryContext context
        end local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lio/ebeaninternal/server/expression/ArrayContainsExpression;
            0   14     1  context  Lio/ebeaninternal/server/expression/DocQueryContext;
            9   10     2    value  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  

  public void queryPlanHash(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
        start local 1 // java.lang.StringBuilder builder
         0: .line 46
            aload 1 /* builder */
            ldc "ArrayContains["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.propName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 47
            ldc " b:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.contains:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
         2: .line 48
            ldc " ?:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 49
            return
        end local 1 // java.lang.StringBuilder builder
        end local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/ebeaninternal/server/expression/ArrayContainsExpression;
            0    4     1  builder  Ljava/lang/StringBuilder;
    MethodParameters:
         Name  Flags
      builder  

  public int queryBindHash();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
         0: .line 53
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            iconst_0
            aaload
            invokevirtual java.lang.Object.hashCode:()I
            istore 1 /* hc */
        start local 1 // int hc
         1: .line 54
            iconst_1
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 55
      StackMap locals: int int
      StackMap stack:
            iload 1 /* hc */
            ldc 92821
            imul
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            iload 2 /* i */
            aaload
            invokevirtual java.lang.Object.hashCode:()I
            iadd
            istore 1 /* hc */
         4: .line 54
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 57
            iload 1 /* hc */
            ireturn
        end local 1 // int hc
        end local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lio/ebeaninternal/server/expression/ArrayContainsExpression;
            1    7     1    hc  I
            2    6     2     i  I

  public boolean isSameByBind(io.ebeaninternal.api.SpiExpression);
    descriptor: (Lio/ebeaninternal/api/SpiExpression;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
        start local 1 // io.ebeaninternal.api.SpiExpression other
         0: .line 62
            aload 1 /* other */
            checkcast io.ebeaninternal.server.expression.ArrayContainsExpression
            astore 2 /* that */
        start local 2 // io.ebeaninternal.server.expression.ArrayContainsExpression that
         1: .line 63
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 64
      StackMap locals: io.ebeaninternal.server.expression.ArrayContainsExpression int
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            aload 2 /* that */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 65
            iconst_0
            ireturn
         5: .line 63
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            arraylength
            if_icmplt 3
        end local 3 // int i
         7: .line 68
            iconst_1
            ireturn
        end local 2 // io.ebeaninternal.server.expression.ArrayContainsExpression that
        end local 1 // io.ebeaninternal.api.SpiExpression other
        end local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lio/ebeaninternal/server/expression/ArrayContainsExpression;
            0    8     1  other  Lio/ebeaninternal/api/SpiExpression;
            1    8     2   that  Lio/ebeaninternal/server/expression/ArrayContainsExpression;
            2    7     3      i  I
    MethodParameters:
       Name  Flags
      other  

  public void addSql(io.ebeaninternal.api.SpiExpressionRequest);
    descriptor: (Lio/ebeaninternal/api/SpiExpressionRequest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
        start local 1 // io.ebeaninternal.api.SpiExpressionRequest request
         0: .line 73
            aload 1 /* request */
            invokeinterface io.ebeaninternal.api.SpiExpressionRequest.getDbPlatformHandler:()Lio/ebeaninternal/server/expression/platform/DbExpressionHandler;
            aload 1 /* request */
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.propName:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.contains:Z
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            invokeinterface io.ebeaninternal.server.expression.platform.DbExpressionHandler.arrayContains:(Lio/ebeaninternal/api/SpiExpressionRequest;Ljava/lang/String;Z[Ljava/lang/Object;)V
         1: .line 74
            return
        end local 1 // io.ebeaninternal.api.SpiExpressionRequest request
        end local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/ebeaninternal/server/expression/ArrayContainsExpression;
            0    2     1  request  Lio/ebeaninternal/api/SpiExpressionRequest;
    MethodParameters:
         Name  Flags
      request  

  public void addBindValues(io.ebeaninternal.api.SpiExpressionRequest);
    descriptor: (Lio/ebeaninternal/api/SpiExpressionRequest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
        start local 1 // io.ebeaninternal.api.SpiExpressionRequest request
         0: .line 78
            aload 0 /* this */
            getfield io.ebeaninternal.server.expression.ArrayContainsExpression.values:[Ljava/lang/Object;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 4
      StackMap locals: io.ebeaninternal.server.expression.ArrayContainsExpression io.ebeaninternal.api.SpiExpressionRequest top int int java.lang.Object[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* value */
        start local 2 // java.lang.Object value
         2: .line 79
            aload 1 /* request */
            aload 2 /* value */
            invokeinterface io.ebeaninternal.api.SpiExpressionRequest.addBindValue:(Ljava/lang/Object;)V
        end local 2 // java.lang.Object value
         3: .line 78
            iinc 3 1
      StackMap locals:
      StackMap stack:
         4: iload 3
            iload 4
            if_icmplt 1
         5: .line 81
            return
        end local 1 // io.ebeaninternal.api.SpiExpressionRequest request
        end local 0 // io.ebeaninternal.server.expression.ArrayContainsExpression this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/ebeaninternal/server/expression/ArrayContainsExpression;
            0    6     1  request  Lio/ebeaninternal/api/SpiExpressionRequest;
            2    3     2    value  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      request  
}
SourceFile: "ArrayContainsExpression.java"