public final class io.ebeaninternal.server.deploy.TableJoin
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.ebeaninternal.server.deploy.TableJoin
  super_class: java.lang.Object
{
  private final java.lang.String table;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.query.SqlJoinType type;
    descriptor: Lio/ebeaninternal/server/query/SqlJoinType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.deploy.InheritInfo inheritInfo;
    descriptor: Lio/ebeaninternal/server/deploy/InheritInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.deploy.TableJoinColumn[] columns;
    descriptor: [Lio/ebeaninternal/server/deploy/TableJoinColumn;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int queryHash;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.deploy.PropertyForeignKey foreignKey;
    descriptor: Lio/ebeaninternal/server/deploy/PropertyForeignKey;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(io.ebeaninternal.server.deploy.meta.DeployTableJoin);
    descriptor: (Lio/ebeaninternal/server/deploy/meta/DeployTableJoin;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
        start local 1 // io.ebeaninternal.server.deploy.meta.DeployTableJoin deploy
         0: .line 39
            aload 0 /* this */
            aload 1 /* deploy */
            aconst_null
            invokespecial io.ebeaninternal.server.deploy.TableJoin.<init>:(Lio/ebeaninternal/server/deploy/meta/DeployTableJoin;Lio/ebeaninternal/server/deploy/PropertyForeignKey;)V
         1: .line 40
            return
        end local 1 // io.ebeaninternal.server.deploy.meta.DeployTableJoin deploy
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/ebeaninternal/server/deploy/TableJoin;
            0    2     1  deploy  Lio/ebeaninternal/server/deploy/meta/DeployTableJoin;
    MethodParameters:
        Name  Flags
      deploy  

  public void <init>(io.ebeaninternal.server.deploy.meta.DeployTableJoin, io.ebeaninternal.server.deploy.PropertyForeignKey);
    descriptor: (Lio/ebeaninternal/server/deploy/meta/DeployTableJoin;Lio/ebeaninternal/server/deploy/PropertyForeignKey;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
        start local 1 // io.ebeaninternal.server.deploy.meta.DeployTableJoin deploy
        start local 2 // io.ebeaninternal.server.deploy.PropertyForeignKey foreignKey
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 2 /* foreignKey */
            putfield io.ebeaninternal.server.deploy.TableJoin.foreignKey:Lio/ebeaninternal/server/deploy/PropertyForeignKey;
         2: .line 47
            aload 0 /* this */
            aload 1 /* deploy */
            invokevirtual io.ebeaninternal.server.deploy.meta.DeployTableJoin.getTable:()Ljava/lang/String;
            invokestatic io.ebeaninternal.server.core.InternString.intern:(Ljava/lang/String;)Ljava/lang/String;
            putfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
         3: .line 48
            aload 0 /* this */
            aload 1 /* deploy */
            invokevirtual io.ebeaninternal.server.deploy.meta.DeployTableJoin.getType:()Lio/ebeaninternal/server/query/SqlJoinType;
            putfield io.ebeaninternal.server.deploy.TableJoin.type:Lio/ebeaninternal/server/query/SqlJoinType;
         4: .line 49
            aload 0 /* this */
            aload 1 /* deploy */
            invokevirtual io.ebeaninternal.server.deploy.meta.DeployTableJoin.getInheritInfo:()Lio/ebeaninternal/server/deploy/InheritInfo;
            putfield io.ebeaninternal.server.deploy.TableJoin.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
         5: .line 50
            aload 1 /* deploy */
            invokevirtual io.ebeaninternal.server.deploy.meta.DeployTableJoin.columns:()[Lio/ebeaninternal/server/deploy/meta/DeployTableJoinColumn;
            astore 3 /* deployCols */
        start local 3 // io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn[] deployCols
         6: .line 51
            aload 0 /* this */
            aload 3 /* deployCols */
            arraylength
            anewarray io.ebeaninternal.server.deploy.TableJoinColumn
            putfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
         7: .line 52
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         8: goto 11
         9: .line 53
      StackMap locals: io.ebeaninternal.server.deploy.TableJoin io.ebeaninternal.server.deploy.meta.DeployTableJoin io.ebeaninternal.server.deploy.PropertyForeignKey io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn[] int
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            iload 4 /* i */
            new io.ebeaninternal.server.deploy.TableJoinColumn
            dup
            aload 3 /* deployCols */
            iload 4 /* i */
            aaload
            invokespecial io.ebeaninternal.server.deploy.TableJoinColumn.<init>:(Lio/ebeaninternal/server/deploy/meta/DeployTableJoinColumn;)V
            aastore
        10: .line 52
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 3 /* deployCols */
            arraylength
            if_icmplt 9
        end local 4 // int i
        12: .line 55
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.deploy.TableJoin.calcQueryHash:()I
            putfield io.ebeaninternal.server.deploy.TableJoin.queryHash:I
        13: .line 56
            return
        end local 3 // io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn[] deployCols
        end local 2 // io.ebeaninternal.server.deploy.PropertyForeignKey foreignKey
        end local 1 // io.ebeaninternal.server.deploy.meta.DeployTableJoin deploy
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lio/ebeaninternal/server/deploy/TableJoin;
            0   14     1      deploy  Lio/ebeaninternal/server/deploy/meta/DeployTableJoin;
            0   14     2  foreignKey  Lio/ebeaninternal/server/deploy/PropertyForeignKey;
            6   14     3  deployCols  [Lio/ebeaninternal/server/deploy/meta/DeployTableJoinColumn;
            8   12     4           i  I
    MethodParameters:
            Name  Flags
      deploy      
      foreignKey  

  private void <init>(io.ebeaninternal.server.deploy.TableJoin, java.lang.String);
    descriptor: (Lio/ebeaninternal/server/deploy/TableJoin;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
        start local 1 // io.ebeaninternal.server.deploy.TableJoin source
        start local 2 // java.lang.String overrideColumn
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            aconst_null
            putfield io.ebeaninternal.server.deploy.TableJoin.foreignKey:Lio/ebeaninternal/server/deploy/PropertyForeignKey;
         2: .line 60
            aload 0 /* this */
            aload 1 /* source */
            getfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
            putfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
         3: .line 61
            aload 0 /* this */
            aload 1 /* source */
            getfield io.ebeaninternal.server.deploy.TableJoin.type:Lio/ebeaninternal/server/query/SqlJoinType;
            putfield io.ebeaninternal.server.deploy.TableJoin.type:Lio/ebeaninternal/server/query/SqlJoinType;
         4: .line 62
            aload 0 /* this */
            aload 1 /* source */
            getfield io.ebeaninternal.server.deploy.TableJoin.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
            putfield io.ebeaninternal.server.deploy.TableJoin.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
         5: .line 63
            aload 0 /* this */
            iconst_1
            anewarray io.ebeaninternal.server.deploy.TableJoinColumn
            putfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
         6: .line 64
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            iconst_0
            aload 1 /* source */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            iconst_0
            aaload
            aload 2 /* overrideColumn */
            invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.withOverrideColumn:(Ljava/lang/String;)Lio/ebeaninternal/server/deploy/TableJoinColumn;
            aastore
         7: .line 65
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.deploy.TableJoin.calcQueryHash:()I
            putfield io.ebeaninternal.server.deploy.TableJoin.queryHash:I
         8: .line 66
            return
        end local 2 // java.lang.String overrideColumn
        end local 1 // io.ebeaninternal.server.deploy.TableJoin source
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lio/ebeaninternal/server/deploy/TableJoin;
            0    9     1          source  Lio/ebeaninternal/server/deploy/TableJoin;
            0    9     2  overrideColumn  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      source          
      overrideColumn  

  private int calcQueryHash();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
         0: .line 72
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.type:Lio/ebeaninternal/server/query/SqlJoinType;
            invokevirtual io.ebeaninternal.server.query.SqlJoinType.hashCode:()I
            istore 1 /* hc */
        start local 1 // int hc
         1: .line 73
            iload 1 /* hc */
            ldc 92821
            imul
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: io.ebeaninternal.server.deploy.TableJoin int
      StackMap stack: int
         2: aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
      StackMap locals: io.ebeaninternal.server.deploy.TableJoin int
      StackMap stack: int int
         3: iadd
            istore 1 /* hc */
         4: .line 74
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: io.ebeaninternal.server.deploy.TableJoin int top int int io.ebeaninternal.server.deploy.TableJoinColumn[]
      StackMap stack:
         5: aload 5
            iload 3
            aaload
            astore 2 /* column */
        start local 2 // io.ebeaninternal.server.deploy.TableJoinColumn column
         6: .line 75
            iload 1 /* hc */
            ldc 92821
            imul
            aload 2 /* column */
            invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.queryHash:()I
            iadd
            istore 1 /* hc */
        end local 2 // io.ebeaninternal.server.deploy.TableJoinColumn column
         7: .line 74
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 5
         9: .line 77
            iload 1 /* hc */
            ireturn
        end local 1 // int hc
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lio/ebeaninternal/server/deploy/TableJoin;
            1   10     1      hc  I
            6    7     2  column  Lio/ebeaninternal/server/deploy/TableJoinColumn;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
         0: .line 82
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.queryHash:I
            ireturn
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/deploy/TableJoin;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
        start local 1 // java.lang.Object o
         0: .line 87
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 1
            iconst_1
            ireturn
         1: .line 88
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            ifnull 2
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 89
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast io.ebeaninternal.server.deploy.TableJoin
            astore 2 /* that */
        start local 2 // io.ebeaninternal.server.deploy.TableJoin that
         4: .line 90
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
            aload 2 /* that */
            getfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            iconst_0
            ireturn
         5: .line 91
      StackMap locals: io.ebeaninternal.server.deploy.TableJoin
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.type:Lio/ebeaninternal/server/query/SqlJoinType;
            aload 2 /* that */
            getfield io.ebeaninternal.server.deploy.TableJoin.type:Lio/ebeaninternal/server/query/SqlJoinType;
            if_acmpeq 6
            iconst_0
            ireturn
         6: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            arraylength
            aload 2 /* that */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            arraylength
            if_icmpeq 7
            iconst_0
            ireturn
         7: .line 93
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: goto 12
         9: .line 94
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            iload 3 /* i */
            aaload
            aload 2 /* that */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            iload 3 /* i */
            aaload
            invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.equals:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 95
            iconst_0
            ireturn
        11: .line 93
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            arraylength
            if_icmplt 9
        end local 3 // int i
        13: .line 98
            iconst_1
            ireturn
        end local 2 // io.ebeaninternal.server.deploy.TableJoin that
        end local 1 // java.lang.Object o
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lio/ebeaninternal/server/deploy/TableJoin;
            0   14     1     o  Ljava/lang/Object;
            4   14     2  that  Lio/ebeaninternal/server/deploy/TableJoin;
            8   13     3     i  I
    MethodParameters:
      Name  Flags
      o     

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
         0: .line 103
            new java.lang.StringBuilder
            dup
            bipush 30
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 104
            aload 1 /* sb */
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.type:Lio/ebeaninternal/server/query/SqlJoinType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 105
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: io.ebeaninternal.server.deploy.TableJoin java.lang.StringBuilder top int int io.ebeaninternal.server.deploy.TableJoinColumn[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* column */
        start local 2 // io.ebeaninternal.server.deploy.TableJoinColumn column
         4: .line 106
            aload 1 /* sb */
            aload 2 /* column */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // io.ebeaninternal.server.deploy.TableJoinColumn column
         5: .line 105
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 108
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lio/ebeaninternal/server/deploy/TableJoin;
            1    8     1      sb  Ljava/lang/StringBuilder;
            4    5     2  column  Lio/ebeaninternal/server/deploy/TableJoinColumn;

  public io.ebeaninternal.server.deploy.PropertyForeignKey getForeignKey();
    descriptor: ()Lio/ebeaninternal/server/deploy/PropertyForeignKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
         0: .line 115
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.foreignKey:Lio/ebeaninternal/server/deploy/PropertyForeignKey;
            areturn
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/deploy/TableJoin;

  public io.ebeaninternal.server.deploy.TableJoinColumn[] columns();
    descriptor: ()[Lio/ebeaninternal/server/deploy/TableJoinColumn;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
         0: .line 122
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            areturn
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/deploy/TableJoin;

  public java.lang.String getTable();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
         0: .line 129
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/deploy/TableJoin;

  public void addJoin(io.ebeaninternal.server.query.SqlJoinType, java.lang.String, io.ebeaninternal.server.deploy.DbSqlContext, java.lang.String);
    descriptor: (Lio/ebeaninternal/server/query/SqlJoinType;Ljava/lang/String;Lio/ebeaninternal/server/deploy/DbSqlContext;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
        start local 1 // io.ebeaninternal.server.query.SqlJoinType joinType
        start local 2 // java.lang.String prefix
        start local 3 // io.ebeaninternal.server.deploy.DbSqlContext ctx
        start local 4 // java.lang.String predicate
         0: .line 133
            aload 2 /* prefix */
            invokestatic io.ebean.util.SplitName.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 5 /* names */
        start local 5 // java.lang.String[] names
         1: .line 134
            aload 3 /* ctx */
            aload 5 /* names */
            iconst_0
            aaload
            invokeinterface io.ebeaninternal.server.deploy.DbSqlContext.getTableAlias:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* a1 */
        start local 6 // java.lang.String a1
         2: .line 135
            aload 3 /* ctx */
            aload 2 /* prefix */
            invokeinterface io.ebeaninternal.server.deploy.DbSqlContext.getTableAlias:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* a2 */
        start local 7 // java.lang.String a2
         3: .line 136
            aload 0 /* this */
            aload 1 /* joinType */
            aload 6 /* a1 */
            aload 7 /* a2 */
            aload 3 /* ctx */
            invokevirtual io.ebeaninternal.server.deploy.TableJoin.addJoin:(Lio/ebeaninternal/server/query/SqlJoinType;Ljava/lang/String;Ljava/lang/String;Lio/ebeaninternal/server/deploy/DbSqlContext;)Lio/ebeaninternal/server/query/SqlJoinType;
            pop
         4: .line 137
            aload 3 /* ctx */
            ldc " and "
            invokeinterface io.ebeaninternal.server.deploy.DbSqlContext.append:(Ljava/lang/String;)Lio/ebeaninternal/server/deploy/DbSqlContext;
            aload 7 /* a2 */
            invokeinterface io.ebeaninternal.server.deploy.DbSqlContext.append:(Ljava/lang/String;)Lio/ebeaninternal/server/deploy/DbSqlContext;
            aload 4 /* predicate */
            invokeinterface io.ebeaninternal.server.deploy.DbSqlContext.append:(Ljava/lang/String;)Lio/ebeaninternal/server/deploy/DbSqlContext;
            pop
         5: .line 138
            return
        end local 7 // java.lang.String a2
        end local 6 // java.lang.String a1
        end local 5 // java.lang.String[] names
        end local 4 // java.lang.String predicate
        end local 3 // io.ebeaninternal.server.deploy.DbSqlContext ctx
        end local 2 // java.lang.String prefix
        end local 1 // io.ebeaninternal.server.query.SqlJoinType joinType
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lio/ebeaninternal/server/deploy/TableJoin;
            0    6     1   joinType  Lio/ebeaninternal/server/query/SqlJoinType;
            0    6     2     prefix  Ljava/lang/String;
            0    6     3        ctx  Lio/ebeaninternal/server/deploy/DbSqlContext;
            0    6     4  predicate  Ljava/lang/String;
            1    6     5      names  [Ljava/lang/String;
            2    6     6         a1  Ljava/lang/String;
            3    6     7         a2  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      joinType   
      prefix     
      ctx        
      predicate  

  public io.ebeaninternal.server.query.SqlJoinType addJoin(io.ebeaninternal.server.query.SqlJoinType, java.lang.String, io.ebeaninternal.server.deploy.DbSqlContext);
    descriptor: (Lio/ebeaninternal/server/query/SqlJoinType;Ljava/lang/String;Lio/ebeaninternal/server/deploy/DbSqlContext;)Lio/ebeaninternal/server/query/SqlJoinType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
        start local 1 // io.ebeaninternal.server.query.SqlJoinType joinType
        start local 2 // java.lang.String prefix
        start local 3 // io.ebeaninternal.server.deploy.DbSqlContext ctx
         0: .line 141
            aload 2 /* prefix */
            invokestatic io.ebean.util.SplitName.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 4 /* names */
        start local 4 // java.lang.String[] names
         1: .line 142
            aload 3 /* ctx */
            aload 4 /* names */
            iconst_0
            aaload
            invokeinterface io.ebeaninternal.server.deploy.DbSqlContext.getTableAlias:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* a1 */
        start local 5 // java.lang.String a1
         2: .line 143
            aload 3 /* ctx */
            aload 2 /* prefix */
            invokeinterface io.ebeaninternal.server.deploy.DbSqlContext.getTableAlias:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* a2 */
        start local 6 // java.lang.String a2
         3: .line 144
            aload 0 /* this */
            aload 1 /* joinType */
            aload 5 /* a1 */
            aload 6 /* a2 */
            aload 3 /* ctx */
            invokevirtual io.ebeaninternal.server.deploy.TableJoin.addJoin:(Lio/ebeaninternal/server/query/SqlJoinType;Ljava/lang/String;Ljava/lang/String;Lio/ebeaninternal/server/deploy/DbSqlContext;)Lio/ebeaninternal/server/query/SqlJoinType;
            areturn
        end local 6 // java.lang.String a2
        end local 5 // java.lang.String a1
        end local 4 // java.lang.String[] names
        end local 3 // io.ebeaninternal.server.deploy.DbSqlContext ctx
        end local 2 // java.lang.String prefix
        end local 1 // io.ebeaninternal.server.query.SqlJoinType joinType
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lio/ebeaninternal/server/deploy/TableJoin;
            0    4     1  joinType  Lio/ebeaninternal/server/query/SqlJoinType;
            0    4     2    prefix  Ljava/lang/String;
            0    4     3       ctx  Lio/ebeaninternal/server/deploy/DbSqlContext;
            1    4     4     names  [Ljava/lang/String;
            2    4     5        a1  Ljava/lang/String;
            3    4     6        a2  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      joinType  
      prefix    
      ctx       

  public io.ebeaninternal.server.query.SqlJoinType addJoin(io.ebeaninternal.server.query.SqlJoinType, java.lang.String, java.lang.String, io.ebeaninternal.server.deploy.DbSqlContext);
    descriptor: (Lio/ebeaninternal/server/query/SqlJoinType;Ljava/lang/String;Ljava/lang/String;Lio/ebeaninternal/server/deploy/DbSqlContext;)Lio/ebeaninternal/server/query/SqlJoinType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
        start local 1 // io.ebeaninternal.server.query.SqlJoinType joinType
        start local 2 // java.lang.String a1
        start local 3 // java.lang.String a2
        start local 4 // io.ebeaninternal.server.deploy.DbSqlContext ctx
         0: .line 148
            aload 1 /* joinType */
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.type:Lio/ebeaninternal/server/query/SqlJoinType;
            invokevirtual io.ebeaninternal.server.query.SqlJoinType.getLiteral:(Lio/ebeaninternal/server/query/SqlJoinType;)Ljava/lang/String;
            astore 5 /* joinLiteral */
        start local 5 // java.lang.String joinLiteral
         1: .line 149
            aload 4 /* ctx */
            aload 5 /* joinLiteral */
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.table:Ljava/lang/String;
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.deploy.TableJoin.columns:()[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            aload 2 /* a1 */
            aload 3 /* a2 */
            invokeinterface io.ebeaninternal.server.deploy.DbSqlContext.addJoin:(Ljava/lang/String;Ljava/lang/String;[Lio/ebeaninternal/server/deploy/TableJoinColumn;Ljava/lang/String;Ljava/lang/String;)V
         2: .line 150
            aload 1 /* joinType */
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.type:Lio/ebeaninternal/server/query/SqlJoinType;
            invokevirtual io.ebeaninternal.server.query.SqlJoinType.autoToOuter:(Lio/ebeaninternal/server/query/SqlJoinType;)Lio/ebeaninternal/server/query/SqlJoinType;
            areturn
        end local 5 // java.lang.String joinLiteral
        end local 4 // io.ebeaninternal.server.deploy.DbSqlContext ctx
        end local 3 // java.lang.String a2
        end local 2 // java.lang.String a1
        end local 1 // io.ebeaninternal.server.query.SqlJoinType joinType
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lio/ebeaninternal/server/deploy/TableJoin;
            0    3     1     joinType  Lio/ebeaninternal/server/query/SqlJoinType;
            0    3     2           a1  Ljava/lang/String;
            0    3     3           a2  Ljava/lang/String;
            0    3     4          ctx  Lio/ebeaninternal/server/deploy/DbSqlContext;
            1    3     5  joinLiteral  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      joinType  
      a1        
      a2        
      ctx       

  public void addJoin(java.lang.String, java.lang.String, java.lang.StringBuilder);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
        start local 1 // java.lang.String a1
        start local 2 // java.lang.String a2
        start local 3 // java.lang.StringBuilder sb
         0: .line 154
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 9
         2: .line 155
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            iload 4 /* i */
            aaload
            astore 5 /* pair */
        start local 5 // io.ebeaninternal.server.deploy.TableJoinColumn pair
         3: .line 156
            iload 4 /* i */
            ifle 5
         4: .line 157
            aload 3 /* sb */
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 159
      StackMap locals: io.ebeaninternal.server.deploy.TableJoinColumn
      StackMap stack:
            aload 3 /* sb */
            aload 1 /* a1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* pair */
            invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.getLocalDbColumn:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 160
            aload 3 /* sb */
            ldc " = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 161
            aload 3 /* sb */
            aload 2 /* a2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* pair */
            invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.getForeignDbColumn:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 5 // io.ebeaninternal.server.deploy.TableJoinColumn pair
         8: .line 154
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            arraylength
            if_icmplt 2
        end local 4 // int i
        10: .line 163
            return
        end local 3 // java.lang.StringBuilder sb
        end local 2 // java.lang.String a2
        end local 1 // java.lang.String a1
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lio/ebeaninternal/server/deploy/TableJoin;
            0   11     1    a1  Ljava/lang/String;
            0   11     2    a2  Ljava/lang/String;
            0   11     3    sb  Ljava/lang/StringBuilder;
            1   10     4     i  I
            3    8     5  pair  Lio/ebeaninternal/server/deploy/TableJoinColumn;
    MethodParameters:
      Name  Flags
      a1    
      a2    
      sb    

  io.ebeaninternal.server.deploy.TableJoin withOverrideColumn(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/ebeaninternal/server/deploy/TableJoin;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.deploy.TableJoin this
        start local 1 // java.lang.String overrideColumn
         0: .line 166
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            arraylength
            iconst_1
            if_icmpne 2
            aload 1 /* overrideColumn */
            ifnull 2
            aload 1 /* overrideColumn */
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.TableJoin.columns:[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            iconst_0
            aaload
            invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.getLocalDbColumn:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 167
            new io.ebeaninternal.server.deploy.TableJoin
            dup
            aload 0 /* this */
            aload 1 /* overrideColumn */
            invokespecial io.ebeaninternal.server.deploy.TableJoin.<init>:(Lio/ebeaninternal/server/deploy/TableJoin;Ljava/lang/String;)V
            areturn
         2: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String overrideColumn
        end local 0 // io.ebeaninternal.server.deploy.TableJoin this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lio/ebeaninternal/server/deploy/TableJoin;
            0    3     1  overrideColumn  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      overrideColumn  
}
SourceFile: "TableJoin.java"