class org.jooq.impl.Expression$DefaultExpression<T> extends org.jooq.impl.AbstractField<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.jooq.impl.Expression$DefaultExpression
  super_class: org.jooq.impl.AbstractField
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -5105004317793995419

  private final org.jooq.Field<T> lhs;
    descriptor: Lorg/jooq/Field;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/jooq/Field<TT;>;

  private final org.jooq.impl.ExpressionOperator operator;
    descriptor: Lorg/jooq/impl/ExpressionOperator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.jooq.Field<?> rhs;
    descriptor: Lorg/jooq/Field;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/jooq/Field<*>;

  void <init>(org.jooq.Field<T>, org.jooq.impl.ExpressionOperator, org.jooq.Field<?>);
    descriptor: (Lorg/jooq/Field;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jooq.impl.Expression$DefaultExpression this
        start local 1 // org.jooq.Field lhs
        start local 2 // org.jooq.impl.ExpressionOperator operator
        start local 3 // org.jooq.Field rhs
         0: .line 872
            aload 0 /* this */
            aload 2 /* operator */
            invokevirtual org.jooq.impl.ExpressionOperator.toName:()Lorg/jooq/Name;
            aload 1 /* lhs */
            invokeinterface org.jooq.Field.getDataType:()Lorg/jooq/DataType;
            invokespecial org.jooq.impl.AbstractField.<init>:(Lorg/jooq/Name;Lorg/jooq/DataType;)V
         1: .line 874
            aload 0 /* this */
            aload 1 /* lhs */
            putfield org.jooq.impl.Expression$DefaultExpression.lhs:Lorg/jooq/Field;
         2: .line 875
            aload 0 /* this */
            aload 2 /* operator */
            putfield org.jooq.impl.Expression$DefaultExpression.operator:Lorg/jooq/impl/ExpressionOperator;
         3: .line 876
            aload 0 /* this */
            aload 3 /* rhs */
            putfield org.jooq.impl.Expression$DefaultExpression.rhs:Lorg/jooq/Field;
         4: .line 877
            return
        end local 3 // org.jooq.Field rhs
        end local 2 // org.jooq.impl.ExpressionOperator operator
        end local 1 // org.jooq.Field lhs
        end local 0 // org.jooq.impl.Expression$DefaultExpression this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/jooq/impl/Expression$DefaultExpression<TT;>;
            0    5     1       lhs  Lorg/jooq/Field<TT;>;
            0    5     2  operator  Lorg/jooq/impl/ExpressionOperator;
            0    5     3       rhs  Lorg/jooq/Field<*>;
    Signature: (Lorg/jooq/Field<TT;>;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field<*>;)V
    MethodParameters:
          Name  Flags
      lhs       
      operator  
      rhs       

  public final void accept(org.jooq.Context<?>);
    descriptor: (Lorg/jooq/Context;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jooq.impl.Expression$DefaultExpression this
        start local 1 // org.jooq.Context ctx
         0: .line 881
            aload 1 /* ctx */
            bipush 40
            invokeinterface org.jooq.Context.sql:(C)Lorg/jooq/Context;
            pop
         1: .line 882
            aload 1 /* ctx */
            aload 0 /* this */
            getfield org.jooq.impl.Expression$DefaultExpression.operator:Lorg/jooq/impl/ExpressionOperator;
            aload 0 /* this */
            getfield org.jooq.impl.Expression$DefaultExpression.lhs:Lorg/jooq/Field;
            aload 0 /* this */
            getfield org.jooq.impl.Expression$DefaultExpression.rhs:Lorg/jooq/Field;
            invokestatic org.jooq.impl.Expression$DefaultExpression.accept0:(Lorg/jooq/Context;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field;Lorg/jooq/Field;)V
         2: .line 883
            aload 1 /* ctx */
            bipush 41
            invokeinterface org.jooq.Context.sql:(C)Lorg/jooq/Context;
            pop
         3: .line 884
            return
        end local 1 // org.jooq.Context ctx
        end local 0 // org.jooq.impl.Expression$DefaultExpression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jooq/impl/Expression$DefaultExpression<TT;>;
            0    4     1   ctx  Lorg/jooq/Context<*>;
    Signature: (Lorg/jooq/Context<*>;)V
    MethodParameters:
      Name  Flags
      ctx   

  private static final void accept0(org.jooq.Context<?>, org.jooq.impl.ExpressionOperator, org.jooq.Field<?>, org.jooq.Field<?>);
    descriptor: (Lorg/jooq/Context;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field;Lorg/jooq/Field;)V
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.jooq.Context ctx
        start local 1 // org.jooq.impl.ExpressionOperator operator
        start local 2 // org.jooq.Field lhs
        start local 3 // org.jooq.Field rhs
         0: .line 887
            aload 1 /* operator */
            invokevirtual org.jooq.impl.ExpressionOperator.toSQL:()Ljava/lang/String;
            astore 4 /* op */
        start local 4 // java.lang.String op
         1: .line 889
            aload 1 /* operator */
            getstatic org.jooq.impl.ExpressionOperator.BIT_XOR:Lorg/jooq/impl/ExpressionOperator;
            if_acmpne 3
            getstatic org.jooq.impl.Expression.HASH_OP_FOR_BIT_XOR:Ljava/util/Set;
            aload 0 /* ctx */
            invokeinterface org.jooq.Context.dialect:()Lorg/jooq/SQLDialect;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 890
            ldc "#"
            astore 4 /* op */
         3: .line 893
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* operator */
            invokevirtual org.jooq.impl.ExpressionOperator.associative:()Z
            ifeq 4
            aload 2 /* lhs */
            invokeinterface org.jooq.Field.getDataType:()Lorg/jooq/DataType;
            aload 3 /* rhs */
            invokeinterface org.jooq.Field.getDataType:()Lorg/jooq/DataType;
            invokeinterface org.jooq.DataType.equals:(Ljava/lang/Object;)Z
            ifeq 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* associativity */
        start local 5 // boolean associativity
         6: .line 895
            aload 0 /* ctx */
            aload 1 /* operator */
            aload 2 /* lhs */
            iload 5 /* associativity */
            invokestatic org.jooq.impl.Expression$DefaultExpression.accept1:(Lorg/jooq/Context;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field;Z)V
         7: .line 896
            aload 0 /* ctx */
            bipush 32
            invokeinterface org.jooq.Context.sql:(C)Lorg/jooq/Context;
            checkcast org.jooq.Context
         8: .line 897
            aload 4 /* op */
            invokeinterface org.jooq.Context.sql:(Ljava/lang/String;)Lorg/jooq/Context;
         9: .line 896
            checkcast org.jooq.Context
        10: .line 898
            bipush 32
            invokeinterface org.jooq.Context.sql:(C)Lorg/jooq/Context;
            pop
        11: .line 899
            aload 0 /* ctx */
            aload 1 /* operator */
            aload 3 /* rhs */
            iload 5 /* associativity */
            invokestatic org.jooq.impl.Expression$DefaultExpression.accept1:(Lorg/jooq/Context;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field;Z)V
        12: .line 900
            return
        end local 5 // boolean associativity
        end local 4 // java.lang.String op
        end local 3 // org.jooq.Field rhs
        end local 2 // org.jooq.Field lhs
        end local 1 // org.jooq.impl.ExpressionOperator operator
        end local 0 // org.jooq.Context ctx
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0            ctx  Lorg/jooq/Context<*>;
            0   13     1       operator  Lorg/jooq/impl/ExpressionOperator;
            0   13     2            lhs  Lorg/jooq/Field<*>;
            0   13     3            rhs  Lorg/jooq/Field<*>;
            1   13     4             op  Ljava/lang/String;
            6   13     5  associativity  Z
    Signature: (Lorg/jooq/Context<*>;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field<*>;Lorg/jooq/Field<*>;)V
    MethodParameters:
          Name  Flags
      ctx       
      operator  
      lhs       
      rhs       

  private static final void accept1(org.jooq.Context<?>, org.jooq.impl.ExpressionOperator, org.jooq.Field<?>, );
    descriptor: (Lorg/jooq/Context;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field;Z)V
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.jooq.Context ctx
        start local 1 // org.jooq.impl.ExpressionOperator operator
        start local 2 // org.jooq.Field field
        start local 3 // boolean associativity
         0: .line 903
            iload 3 /* associativity */
            ifeq 5
            aload 2 /* field */
            instanceof org.jooq.impl.Expression
            ifeq 5
         1: .line 904
            aload 2 /* field */
            checkcast org.jooq.impl.Expression
            astore 4 /* expr */
        start local 4 // org.jooq.impl.Expression expr
         2: .line 906
            aload 1 /* operator */
            aload 4 /* expr */
            getfield org.jooq.impl.Expression.operator:Lorg/jooq/impl/ExpressionOperator;
            if_acmpne 5
         3: .line 907
            aload 0 /* ctx */
            aload 4 /* expr */
            getfield org.jooq.impl.Expression.operator:Lorg/jooq/impl/ExpressionOperator;
            aload 4 /* expr */
            getfield org.jooq.impl.Expression.lhs:Lorg/jooq/Field;
            aload 4 /* expr */
            getfield org.jooq.impl.Expression.rhs:Lorg/jooq/Field;
            invokestatic org.jooq.impl.Expression$DefaultExpression.accept0:(Lorg/jooq/Context;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field;Lorg/jooq/Field;)V
         4: .line 908
            return
        end local 4 // org.jooq.impl.Expression expr
         5: .line 912
      StackMap locals:
      StackMap stack:
            aload 0 /* ctx */
            aload 2 /* field */
            invokeinterface org.jooq.Context.visit:(Lorg/jooq/QueryPart;)Lorg/jooq/Context;
            pop
         6: .line 913
            return
        end local 3 // boolean associativity
        end local 2 // org.jooq.Field field
        end local 1 // org.jooq.impl.ExpressionOperator operator
        end local 0 // org.jooq.Context ctx
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0            ctx  Lorg/jooq/Context<*>;
            0    7     1       operator  Lorg/jooq/impl/ExpressionOperator;
            0    7     2          field  Lorg/jooq/Field<*>;
            0    7     3  associativity  Z
            2    5     4           expr  Lorg/jooq/impl/Expression<*>;
    Signature: (Lorg/jooq/Context<*>;Lorg/jooq/impl/ExpressionOperator;Lorg/jooq/Field<*>;Z)V
    MethodParameters:
               Name  Flags
      ctx            
      operator       
      field          
      associativity  
}
Signature: <T:Ljava/lang/Object;>Lorg/jooq/impl/AbstractField<TT;>;
SourceFile: "Expression.java"
NestHost: org.jooq.impl.Expression
InnerClasses:
  private DefaultExpression = org.jooq.impl.Expression$DefaultExpression of org.jooq.impl.Expression