public final class org.hibernate.engine.internal.JoinHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hibernate.engine.internal.JoinHelper
  super_class: java.lang.Object
{
  public static java.lang.String[] getAliasedLHSColumnNames(org.hibernate.type.AssociationType, java.lang.String, int, org.hibernate.persister.entity.OuterJoinLoadable, org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/type/AssociationType;Ljava/lang/String;ILorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/Mapping;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.hibernate.type.AssociationType type
        start local 1 // java.lang.String alias
        start local 2 // int property
        start local 3 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
        start local 4 // org.hibernate.engine.spi.Mapping mapping
         0: .line 41
            aload 0 /* type */
            aload 1 /* alias */
            iload 2 /* property */
            iconst_0
            aload 3 /* lhsPersister */
            aload 4 /* mapping */
            invokestatic org.hibernate.engine.internal.JoinHelper.getAliasedLHSColumnNames:(Lorg/hibernate/type/AssociationType;Ljava/lang/String;IILorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/Mapping;)[Ljava/lang/String;
            areturn
        end local 4 // org.hibernate.engine.spi.Mapping mapping
        end local 3 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
        end local 2 // int property
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.type.AssociationType type
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          type  Lorg/hibernate/type/AssociationType;
            0    1     1         alias  Ljava/lang/String;
            0    1     2      property  I
            0    1     3  lhsPersister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0    1     4       mapping  Lorg/hibernate/engine/spi/Mapping;
    MethodParameters:
              Name  Flags
      type          
      alias         
      property      
      lhsPersister  
      mapping       

  public static java.lang.String[] getLHSColumnNames(org.hibernate.type.AssociationType, int, org.hibernate.persister.entity.OuterJoinLoadable, org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/type/AssociationType;ILorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/Mapping;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.type.AssociationType type
        start local 1 // int property
        start local 2 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
        start local 3 // org.hibernate.engine.spi.Mapping mapping
         0: .line 59
            aload 0 /* type */
            iload 1 /* property */
            iconst_0
            aload 2 /* lhsPersister */
            aload 3 /* mapping */
            invokestatic org.hibernate.engine.internal.JoinHelper.getLHSColumnNames:(Lorg/hibernate/type/AssociationType;IILorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/Mapping;)[Ljava/lang/String;
            areturn
        end local 3 // org.hibernate.engine.spi.Mapping mapping
        end local 2 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
        end local 1 // int property
        end local 0 // org.hibernate.type.AssociationType type
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          type  Lorg/hibernate/type/AssociationType;
            0    1     1      property  I
            0    1     2  lhsPersister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0    1     3       mapping  Lorg/hibernate/engine/spi/Mapping;
    MethodParameters:
              Name  Flags
      type          
      property      
      lhsPersister  
      mapping       

  public static java.lang.String[] getAliasedLHSColumnNames(org.hibernate.type.AssociationType, java.lang.String, int, int, org.hibernate.persister.entity.OuterJoinLoadable, org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/type/AssociationType;Ljava/lang/String;IILorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/Mapping;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=6
        start local 0 // org.hibernate.type.AssociationType associationType
        start local 1 // java.lang.String columnQualifier
        start local 2 // int propertyIndex
        start local 3 // int begin
        start local 4 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
        start local 5 // org.hibernate.engine.spi.Mapping mapping
         0: .line 84
            aload 0 /* associationType */
            invokeinterface org.hibernate.type.AssociationType.useLHSPrimaryKey:()Z
            ifeq 2
         1: .line 85
            aload 1 /* columnQualifier */
            aload 4 /* lhsPersister */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getIdentifierColumnNames:()[Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
            areturn
         2: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* associationType */
            invokeinterface org.hibernate.type.AssociationType.getLHSPropertyName:()Ljava/lang/String;
            astore 6 /* propertyName */
        start local 6 // java.lang.String propertyName
         3: .line 89
            aload 6 /* propertyName */
            ifnonnull 8
         4: .line 91
            aload 4 /* lhsPersister */
            aload 1 /* columnQualifier */
            iload 2 /* propertyIndex */
            invokestatic org.hibernate.engine.internal.JoinHelper.toColumns:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;I)[Ljava/lang/String;
         5: .line 92
            iload 3 /* begin */
         6: .line 93
            aload 0 /* associationType */
            aload 5 /* mapping */
            invokeinterface org.hibernate.type.AssociationType.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
         7: .line 90
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.slice:([Ljava/lang/String;II)[Ljava/lang/String;
            areturn
         8: .line 98
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* lhsPersister */
            checkcast org.hibernate.persister.entity.PropertyMapping
            aload 1 /* columnQualifier */
            aload 6 /* propertyName */
            invokeinterface org.hibernate.persister.entity.PropertyMapping.toColumns:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 6 // java.lang.String propertyName
        end local 5 // org.hibernate.engine.spi.Mapping mapping
        end local 4 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
        end local 3 // int begin
        end local 2 // int propertyIndex
        end local 1 // java.lang.String columnQualifier
        end local 0 // org.hibernate.type.AssociationType associationType
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0  associationType  Lorg/hibernate/type/AssociationType;
            0    9     1  columnQualifier  Ljava/lang/String;
            0    9     2    propertyIndex  I
            0    9     3            begin  I
            0    9     4     lhsPersister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0    9     5          mapping  Lorg/hibernate/engine/spi/Mapping;
            3    9     6     propertyName  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      associationType  
      columnQualifier  
      propertyIndex    
      begin            
      lhsPersister     
      mapping          

  private static java.lang.String[] toColumns(org.hibernate.persister.entity.OuterJoinLoadable, java.lang.String, int);
    descriptor: (Lorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;I)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.hibernate.persister.entity.OuterJoinLoadable persister
        start local 1 // java.lang.String columnQualifier
        start local 2 // int propertyIndex
         0: .line 104
            iload 2 /* propertyIndex */
            iflt 2
         1: .line 105
            aload 0 /* persister */
            aload 1 /* columnQualifier */
            iload 2 /* propertyIndex */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.toColumns:(Ljava/lang/String;I)[Ljava/lang/String;
            areturn
         2: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* persister */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getIdentifierColumnNames:()[Ljava/lang/String;
            astore 3 /* cols */
        start local 3 // java.lang.String[] cols
         3: .line 109
            aload 3 /* cols */
            arraylength
            anewarray java.lang.String
            astore 4 /* result */
        start local 4 // java.lang.String[] result
         4: .line 111
            iconst_0
            istore 5 /* j */
        start local 5 // int j
         5: goto 8
         6: .line 112
      StackMap locals: java.lang.String[] java.lang.String[] int
      StackMap stack:
            aload 4 /* result */
            iload 5 /* j */
            aload 1 /* columnQualifier */
            aload 3 /* cols */
            iload 5 /* j */
            aaload
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aastore
         7: .line 111
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* j */
            aload 3 /* cols */
            arraylength
            if_icmplt 6
        end local 5 // int j
         9: .line 115
            aload 4 /* result */
            areturn
        end local 4 // java.lang.String[] result
        end local 3 // java.lang.String[] cols
        end local 2 // int propertyIndex
        end local 1 // java.lang.String columnQualifier
        end local 0 // org.hibernate.persister.entity.OuterJoinLoadable persister
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0        persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   10     1  columnQualifier  Ljava/lang/String;
            0   10     2    propertyIndex  I
            3   10     3             cols  [Ljava/lang/String;
            4   10     4           result  [Ljava/lang/String;
            5    9     5                j  I
    MethodParameters:
                 Name  Flags
      persister        
      columnQualifier  
      propertyIndex    

  public static java.lang.String[] getLHSColumnNames(org.hibernate.type.AssociationType, int, int, org.hibernate.persister.entity.OuterJoinLoadable, org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/type/AssociationType;IILorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/Mapping;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.hibernate.type.AssociationType type
        start local 1 // int property
        start local 2 // int begin
        start local 3 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
        start local 4 // org.hibernate.engine.spi.Mapping mapping
         0: .line 136
            aload 0 /* type */
            invokeinterface org.hibernate.type.AssociationType.useLHSPrimaryKey:()Z
            ifeq 2
         1: .line 138
            aload 3 /* lhsPersister */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getIdentifierColumnNames:()[Ljava/lang/String;
            areturn
         2: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokeinterface org.hibernate.type.AssociationType.getLHSPropertyName:()Ljava/lang/String;
            astore 5 /* propertyName */
        start local 5 // java.lang.String propertyName
         3: .line 142
            aload 5 /* propertyName */
            ifnonnull 10
         4: .line 146
            iload 1 /* property */
            ifge 6
         5: .line 147
            aload 3 /* lhsPersister */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getIdentifierColumnNames:()[Ljava/lang/String;
            goto 7
         6: .line 148
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* lhsPersister */
            iload 1 /* property */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getSubclassPropertyColumnNames:(I)[Ljava/lang/String;
         7: .line 149
      StackMap locals:
      StackMap stack: java.lang.String[]
            iload 2 /* begin */
         8: .line 150
            aload 0 /* type */
            aload 4 /* mapping */
            invokeinterface org.hibernate.type.AssociationType.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
         9: .line 145
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.slice:([Ljava/lang/String;II)[Ljava/lang/String;
            areturn
        10: .line 156
      StackMap locals:
      StackMap stack:
            aload 3 /* lhsPersister */
            aload 5 /* propertyName */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getPropertyColumnNames:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 5 // java.lang.String propertyName
        end local 4 // org.hibernate.engine.spi.Mapping mapping
        end local 3 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
        end local 2 // int begin
        end local 1 // int property
        end local 0 // org.hibernate.type.AssociationType type
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          type  Lorg/hibernate/type/AssociationType;
            0   11     1      property  I
            0   11     2         begin  I
            0   11     3  lhsPersister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   11     4       mapping  Lorg/hibernate/engine/spi/Mapping;
            3   11     5  propertyName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      type          
      property      
      begin         
      lhsPersister  
      mapping       

  public static java.lang.String getLHSTableName(org.hibernate.type.AssociationType, int, org.hibernate.persister.entity.OuterJoinLoadable);
    descriptor: (Lorg/hibernate/type/AssociationType;ILorg/hibernate/persister/entity/OuterJoinLoadable;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.hibernate.type.AssociationType type
        start local 1 // int propertyIndex
        start local 2 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
         0: .line 175
            aload 0 /* type */
            invokeinterface org.hibernate.type.AssociationType.useLHSPrimaryKey:()Z
            ifne 1
            iload 1 /* propertyIndex */
            ifge 2
         1: .line 176
      StackMap locals:
      StackMap stack:
            aload 2 /* lhsPersister */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getTableName:()Ljava/lang/String;
            areturn
         2: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokeinterface org.hibernate.type.AssociationType.getLHSPropertyName:()Ljava/lang/String;
            astore 3 /* propertyName */
        start local 3 // java.lang.String propertyName
         3: .line 180
            aload 3 /* propertyName */
            ifnonnull 5
         4: .line 184
            aload 2 /* lhsPersister */
            iload 1 /* propertyIndex */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getSubclassPropertyTableName:(I)Ljava/lang/String;
            areturn
         5: .line 188
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* lhsPersister */
            aload 3 /* propertyName */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getPropertyTableName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* propertyRefTable */
        start local 4 // java.lang.String propertyRefTable
         6: .line 189
            aload 4 /* propertyRefTable */
            ifnonnull 8
         7: .line 197
            aload 2 /* lhsPersister */
            iload 1 /* propertyIndex */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getSubclassPropertyTableName:(I)Ljava/lang/String;
            astore 4 /* propertyRefTable */
         8: .line 199
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* propertyRefTable */
            areturn
        end local 4 // java.lang.String propertyRefTable
        end local 3 // java.lang.String propertyName
        end local 2 // org.hibernate.persister.entity.OuterJoinLoadable lhsPersister
        end local 1 // int propertyIndex
        end local 0 // org.hibernate.type.AssociationType type
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              type  Lorg/hibernate/type/AssociationType;
            0    9     1     propertyIndex  I
            0    9     2      lhsPersister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            3    9     3      propertyName  Ljava/lang/String;
            6    9     4  propertyRefTable  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      type           
      propertyIndex  
      lhsPersister   

  public static java.lang.String[] getRHSColumnNames(org.hibernate.type.AssociationType, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/type/AssociationType;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.type.AssociationType type
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 213
            aload 0 /* type */
            invokeinterface org.hibernate.type.AssociationType.getRHSUniqueKeyPropertyName:()Ljava/lang/String;
            astore 2 /* uniqueKeyPropertyName */
        start local 2 // java.lang.String uniqueKeyPropertyName
         1: .line 214
            aload 0 /* type */
            aload 1 /* factory */
            invokeinterface org.hibernate.type.AssociationType.getAssociatedJoinable:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/entity/Joinable;
            astore 3 /* joinable */
        start local 3 // org.hibernate.persister.entity.Joinable joinable
         2: .line 215
            aload 2 /* uniqueKeyPropertyName */
            ifnonnull 4
         3: .line 216
            aload 3 /* joinable */
            invokeinterface org.hibernate.persister.entity.Joinable.getKeyColumnNames:()[Ljava/lang/String;
            areturn
         4: .line 219
      StackMap locals: java.lang.String org.hibernate.persister.entity.Joinable
      StackMap stack:
            aload 3 /* joinable */
            checkcast org.hibernate.persister.entity.OuterJoinLoadable
            aload 2 /* uniqueKeyPropertyName */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getPropertyColumnNames:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 3 // org.hibernate.persister.entity.Joinable joinable
        end local 2 // java.lang.String uniqueKeyPropertyName
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 0 // org.hibernate.type.AssociationType type
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   type  Lorg/hibernate/type/AssociationType;
            0    5     1                factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            1    5     2  uniqueKeyPropertyName  Ljava/lang/String;
            2    5     3               joinable  Lorg/hibernate/persister/entity/Joinable;
    MethodParameters:
         Name  Flags
      type     
      factory  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.internal.JoinHelper this
         0: .line 223
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 224
            return
        end local 0 // org.hibernate.engine.internal.JoinHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/engine/internal/JoinHelper;
}
SourceFile: "JoinHelper.java"