public class org.hibernate.loader.entity.EntityJoinWalker extends org.hibernate.loader.AbstractEntityJoinWalker
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.loader.entity.EntityJoinWalker
  super_class: org.hibernate.loader.AbstractEntityJoinWalker
{
  private final org.hibernate.LockOptions lockOptions;
    descriptor: Lorg/hibernate/LockOptions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[][] compositeKeyManyToOneTargetIndices;
    descriptor: [[I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.hibernate.persister.entity.OuterJoinLoadable, java.lang.String[], int, org.hibernate.LockMode, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.LoadQueryInfluencers);
    descriptor: (Lorg/hibernate/persister/entity/OuterJoinLoadable;[Ljava/lang/String;ILorg/hibernate/LockMode;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=7
        start local 0 // org.hibernate.loader.entity.EntityJoinWalker this
        start local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        start local 2 // java.lang.String[] uniqueKey
        start local 3 // int batchSize
        start local 4 // org.hibernate.LockMode lockMode
        start local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 6 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
         0: .line 66
            aload 0 /* this */
            aload 1 /* persister */
            aload 5 /* factory */
            aload 6 /* loadQueryInfluencers */
            invokespecial org.hibernate.loader.AbstractEntityJoinWalker.<init>:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
         1: .line 56
            aload 0 /* this */
            new org.hibernate.LockOptions
            dup
            invokespecial org.hibernate.LockOptions.<init>:()V
            putfield org.hibernate.loader.entity.EntityJoinWalker.lockOptions:Lorg/hibernate/LockOptions;
         2: .line 68
            aload 0 /* this */
            getfield org.hibernate.loader.entity.EntityJoinWalker.lockOptions:Lorg/hibernate/LockOptions;
            aload 4 /* lockMode */
            invokevirtual org.hibernate.LockOptions.setLockMode:(Lorg/hibernate/LockMode;)Lorg/hibernate/LockOptions;
            pop
         3: .line 70
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.getAlias:()Ljava/lang/String;
            aload 2 /* uniqueKey */
            iload 3 /* batchSize */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.whereString:(Ljava/lang/String;[Ljava/lang/String;I)Ljava/lang/StringBuilder;
         4: .line 72
            aload 1 /* persister */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.getAlias:()Ljava/lang/String;
            getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.filterFragment:(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 70
            astore 7 /* whereCondition */
        start local 7 // java.lang.StringBuilder whereCondition
         6: .line 74
            new org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl
            dup
            aload 5 /* factory */
            invokespecial org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            astore 8 /* callback */
        start local 8 // org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl callback
         7: .line 75
            aload 0 /* this */
            aload 7 /* whereCondition */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc ""
            aload 0 /* this */
            getfield org.hibernate.loader.entity.EntityJoinWalker.lockOptions:Lorg/hibernate/LockOptions;
            aload 8 /* callback */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.initAll:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/LockOptions;Lorg/hibernate/loader/JoinWalker$AssociationInitCallback;)V
         8: .line 76
            aload 0 /* this */
            aload 8 /* callback */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl.resolve:()[[I
            putfield org.hibernate.loader.entity.EntityJoinWalker.compositeKeyManyToOneTargetIndices:[[I
         9: .line 77
            return
        end local 8 // org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl callback
        end local 7 // java.lang.StringBuilder whereCondition
        end local 6 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
        end local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 4 // org.hibernate.LockMode lockMode
        end local 3 // int batchSize
        end local 2 // java.lang.String[] uniqueKey
        end local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        end local 0 // org.hibernate.loader.entity.EntityJoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   10     0                  this  Lorg/hibernate/loader/entity/EntityJoinWalker;
            0   10     1             persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   10     2             uniqueKey  [Ljava/lang/String;
            0   10     3             batchSize  I
            0   10     4              lockMode  Lorg/hibernate/LockMode;
            0   10     5               factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   10     6  loadQueryInfluencers  Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            6   10     7        whereCondition  Ljava/lang/StringBuilder;
            7   10     8              callback  Lorg/hibernate/loader/entity/EntityJoinWalker$AssociationInitCallbackImpl;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      persister             
      uniqueKey             
      batchSize             
      lockMode              
      factory               final
      loadQueryInfluencers  

  public void <init>(org.hibernate.persister.entity.OuterJoinLoadable, java.lang.String[], int, org.hibernate.LockOptions, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.LoadQueryInfluencers);
    descriptor: (Lorg/hibernate/persister/entity/OuterJoinLoadable;[Ljava/lang/String;ILorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=7
        start local 0 // org.hibernate.loader.entity.EntityJoinWalker this
        start local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        start local 2 // java.lang.String[] uniqueKey
        start local 3 // int batchSize
        start local 4 // org.hibernate.LockOptions lockOptions
        start local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 6 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
         0: .line 86
            aload 0 /* this */
            aload 1 /* persister */
            aload 5 /* factory */
            aload 6 /* loadQueryInfluencers */
            invokespecial org.hibernate.loader.AbstractEntityJoinWalker.<init>:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
         1: .line 56
            aload 0 /* this */
            new org.hibernate.LockOptions
            dup
            invokespecial org.hibernate.LockOptions.<init>:()V
            putfield org.hibernate.loader.entity.EntityJoinWalker.lockOptions:Lorg/hibernate/LockOptions;
         2: .line 87
            aload 4 /* lockOptions */
            aload 0 /* this */
            getfield org.hibernate.loader.entity.EntityJoinWalker.lockOptions:Lorg/hibernate/LockOptions;
            invokestatic org.hibernate.LockOptions.copy:(Lorg/hibernate/LockOptions;Lorg/hibernate/LockOptions;)Lorg/hibernate/LockOptions;
            pop
         3: .line 89
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.getAlias:()Ljava/lang/String;
            aload 2 /* uniqueKey */
            iload 3 /* batchSize */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.whereString:(Ljava/lang/String;[Ljava/lang/String;I)Ljava/lang/StringBuilder;
         4: .line 91
            aload 1 /* persister */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.getAlias:()Ljava/lang/String;
            getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.filterFragment:(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 89
            astore 7 /* whereCondition */
        start local 7 // java.lang.StringBuilder whereCondition
         6: .line 93
            new org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl
            dup
            aload 5 /* factory */
            invokespecial org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            astore 8 /* callback */
        start local 8 // org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl callback
         7: .line 94
            aload 0 /* this */
            aload 7 /* whereCondition */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc ""
            aload 4 /* lockOptions */
            aload 8 /* callback */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.initAll:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/LockOptions;Lorg/hibernate/loader/JoinWalker$AssociationInitCallback;)V
         8: .line 95
            aload 0 /* this */
            aload 8 /* callback */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl.resolve:()[[I
            putfield org.hibernate.loader.entity.EntityJoinWalker.compositeKeyManyToOneTargetIndices:[[I
         9: .line 96
            return
        end local 8 // org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl callback
        end local 7 // java.lang.StringBuilder whereCondition
        end local 6 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
        end local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 4 // org.hibernate.LockOptions lockOptions
        end local 3 // int batchSize
        end local 2 // java.lang.String[] uniqueKey
        end local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        end local 0 // org.hibernate.loader.entity.EntityJoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   10     0                  this  Lorg/hibernate/loader/entity/EntityJoinWalker;
            0   10     1             persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   10     2             uniqueKey  [Ljava/lang/String;
            0   10     3             batchSize  I
            0   10     4           lockOptions  Lorg/hibernate/LockOptions;
            0   10     5               factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   10     6  loadQueryInfluencers  Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            6   10     7        whereCondition  Ljava/lang/StringBuilder;
            7   10     8              callback  Lorg/hibernate/loader/entity/EntityJoinWalker$AssociationInitCallbackImpl;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      persister             
      uniqueKey             
      batchSize             
      lockOptions           
      factory               
      loadQueryInfluencers  

  protected org.hibernate.sql.JoinType getJoinType(org.hibernate.persister.entity.OuterJoinLoadable, org.hibernate.loader.PropertyPath, int, org.hibernate.type.AssociationType, org.hibernate.FetchMode, org.hibernate.engine.spi.CascadeStyle, java.lang.String, java.lang.String[], boolean, int);
    descriptor: (Lorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/loader/PropertyPath;ILorg/hibernate/type/AssociationType;Lorg/hibernate/FetchMode;Lorg/hibernate/engine/spi/CascadeStyle;Ljava/lang/String;[Ljava/lang/String;ZI)Lorg/hibernate/sql/JoinType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=11, args_size=11
        start local 0 // org.hibernate.loader.entity.EntityJoinWalker this
        start local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        start local 2 // org.hibernate.loader.PropertyPath path
        start local 3 // int propertyNumber
        start local 4 // org.hibernate.type.AssociationType associationType
        start local 5 // org.hibernate.FetchMode metadataFetchMode
        start local 6 // org.hibernate.engine.spi.CascadeStyle metadataCascadeStyle
        start local 7 // java.lang.String lhsTable
        start local 8 // java.lang.String[] lhsColumns
        start local 9 // boolean nullable
        start local 10 // int currentDepth
         0: .line 112
            aload 0 /* this */
            getfield org.hibernate.loader.entity.EntityJoinWalker.lockOptions:Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.greaterThan:(Lorg/hibernate/LockMode;)Z
            ifeq 2
         1: .line 113
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            areturn
         2: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 10 /* currentDepth */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.isTooDeep:(I)Z
            ifne 4
         3: .line 116
            aload 4 /* associationType */
            invokeinterface org.hibernate.type.AssociationType.isCollectionType:()Z
            ifeq 5
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.isTooManyCollections:()Z
            ifeq 5
         4: .line 117
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            areturn
         5: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* metadataFetchMode */
            aload 4 /* associationType */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.isJoinedFetchEnabledInMapping:(Lorg/hibernate/FetchMode;Lorg/hibernate/type/AssociationType;)Z
            ifne 8
         6: .line 120
            aload 0 /* this */
            aload 1 /* persister */
            aload 2 /* path */
            iload 3 /* propertyNumber */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.isJoinFetchEnabledByProfile:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/loader/PropertyPath;I)Z
            ifne 8
         7: .line 121
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            areturn
         8: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* lhsTable */
            aload 8 /* lhsColumns */
            aload 4 /* associationType */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.isDuplicateAssociation:(Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/type/AssociationType;)Z
            ifeq 10
         9: .line 124
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            areturn
        10: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 9 /* nullable */
            iload 10 /* currentDepth */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.getJoinType:(ZI)Lorg/hibernate/sql/JoinType;
            areturn
        end local 10 // int currentDepth
        end local 9 // boolean nullable
        end local 8 // java.lang.String[] lhsColumns
        end local 7 // java.lang.String lhsTable
        end local 6 // org.hibernate.engine.spi.CascadeStyle metadataCascadeStyle
        end local 5 // org.hibernate.FetchMode metadataFetchMode
        end local 4 // org.hibernate.type.AssociationType associationType
        end local 3 // int propertyNumber
        end local 2 // org.hibernate.loader.PropertyPath path
        end local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        end local 0 // org.hibernate.loader.entity.EntityJoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Lorg/hibernate/loader/entity/EntityJoinWalker;
            0   11     1             persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   11     2                  path  Lorg/hibernate/loader/PropertyPath;
            0   11     3        propertyNumber  I
            0   11     4       associationType  Lorg/hibernate/type/AssociationType;
            0   11     5     metadataFetchMode  Lorg/hibernate/FetchMode;
            0   11     6  metadataCascadeStyle  Lorg/hibernate/engine/spi/CascadeStyle;
            0   11     7              lhsTable  Ljava/lang/String;
            0   11     8            lhsColumns  [Ljava/lang/String;
            0   11     9              nullable  Z
            0   11    10          currentDepth  I
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      persister             
      path                  
      propertyNumber        
      associationType       
      metadataFetchMode     
      metadataCascadeStyle  
      lhsTable              
      lhsColumns            
      nullable              
      currentDepth          

  public java.lang.String getComment();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.loader.entity.EntityJoinWalker this
         0: .line 130
            new java.lang.StringBuilder
            dup
            ldc "load "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.EntityJoinWalker.getPersister:()Lorg/hibernate/persister/entity/Loadable;
            invokeinterface org.hibernate.persister.entity.Loadable.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.entity.EntityJoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/entity/EntityJoinWalker;

  public int[][] getCompositeKeyManyToOneTargetIndices();
    descriptor: ()[[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.entity.EntityJoinWalker this
         0: .line 134
            aload 0 /* this */
            getfield org.hibernate.loader.entity.EntityJoinWalker.compositeKeyManyToOneTargetIndices:[[I
            areturn
        end local 0 // org.hibernate.loader.entity.EntityJoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/entity/EntityJoinWalker;
}
SourceFile: "EntityJoinWalker.java"
NestMembers:
  org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl
InnerClasses:
  protected abstract AssociationInitCallback = org.hibernate.loader.JoinWalker$AssociationInitCallback of org.hibernate.loader.JoinWalker
  private AssociationInitCallbackImpl = org.hibernate.loader.entity.EntityJoinWalker$AssociationInitCallbackImpl of org.hibernate.loader.entity.EntityJoinWalker