public class org.hibernate.loader.JoinWalker
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.loader.JoinWalker
  super_class: java.lang.Object
{
  private final org.hibernate.engine.spi.SessionFactoryImplementor factory;
    descriptor: Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final java.util.List associations;
    descriptor: Ljava/util/List;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final java.util.Set visitedAssociationKeys;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers;
    descriptor: Lorg/hibernate/engine/spi/LoadQueryInfluencers;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected java.lang.String[] suffixes;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] collectionSuffixes;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected org.hibernate.persister.entity.Loadable[] persisters;
    descriptor: [Lorg/hibernate/persister/entity/Loadable;
    flags: (0x0004) ACC_PROTECTED

  protected int[] owners;
    descriptor: [I
    flags: (0x0004) ACC_PROTECTED

  protected org.hibernate.type.EntityType[] ownerAssociationTypes;
    descriptor: [Lorg/hibernate/type/EntityType;
    flags: (0x0004) ACC_PROTECTED

  protected org.hibernate.persister.collection.CollectionPersister[] collectionPersisters;
    descriptor: [Lorg/hibernate/persister/collection/CollectionPersister;
    flags: (0x0004) ACC_PROTECTED

  protected int[] collectionOwners;
    descriptor: [I
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] aliases;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected org.hibernate.LockOptions lockOptions;
    descriptor: Lorg/hibernate/LockOptions;
    flags: (0x0004) ACC_PROTECTED

  protected org.hibernate.LockMode[] lockModeArray;
    descriptor: [Lorg/hibernate/LockMode;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String sql;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected void <init>(org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.LoadQueryInfluencers);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 2 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
         0: .line 87
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.loader.JoinWalker.associations:Ljava/util/List;
         2: .line 72
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.loader.JoinWalker.visitedAssociationKeys:Ljava/util/Set;
         3: .line 90
            aload 0 /* this */
            aload 1 /* factory */
            putfield org.hibernate.loader.JoinWalker.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         4: .line 91
            aload 0 /* this */
            aload 2 /* loadQueryInfluencers */
            putfield org.hibernate.loader.JoinWalker.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
         5: .line 93
            return
        end local 2 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    6     0                  this  Lorg/hibernate/loader/JoinWalker;
            0    6     1               factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0    6     2  loadQueryInfluencers  Lorg/hibernate/engine/spi/LoadQueryInfluencers;
    MethodParameters:
                      Name  Flags
      factory               
      loadQueryInfluencers  

  public java.util.List getAssociations();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 96
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.associations:Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public java.lang.String[] getCollectionSuffixes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 100
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionSuffixes:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public void setCollectionSuffixes(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.lang.String[] collectionSuffixes
         0: .line 104
            aload 0 /* this */
            aload 1 /* collectionSuffixes */
            putfield org.hibernate.loader.JoinWalker.collectionSuffixes:[Ljava/lang/String;
         1: .line 105
            return
        end local 1 // java.lang.String[] collectionSuffixes
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  collectionSuffixes  [Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      collectionSuffixes  

  public org.hibernate.LockOptions getLockModeOptions();
    descriptor: ()Lorg/hibernate/LockOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 108
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.lockOptions:Lorg/hibernate/LockOptions;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public org.hibernate.LockMode[] getLockModeArray();
    descriptor: ()[Lorg/hibernate/LockMode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 112
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.lockModeArray:[Lorg/hibernate/LockMode;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public java.lang.String[] getSuffixes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 116
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.suffixes:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public void setSuffixes(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.lang.String[] suffixes
         0: .line 120
            aload 0 /* this */
            aload 1 /* suffixes */
            putfield org.hibernate.loader.JoinWalker.suffixes:[Ljava/lang/String;
         1: .line 121
            return
        end local 1 // java.lang.String[] suffixes
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  suffixes  [Ljava/lang/String;
    MethodParameters:
          Name  Flags
      suffixes  

  public java.lang.String[] getAliases();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 124
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.aliases:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public void setAliases(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.lang.String[] aliases
         0: .line 128
            aload 0 /* this */
            aload 1 /* aliases */
            putfield org.hibernate.loader.JoinWalker.aliases:[Ljava/lang/String;
         1: .line 129
            return
        end local 1 // java.lang.String[] aliases
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  aliases  [Ljava/lang/String;
    MethodParameters:
         Name  Flags
      aliases  

  public int[] getCollectionOwners();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 132
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionOwners:[I
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public void setCollectionOwners(int[]);
    descriptor: ([I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // int[] collectionOwners
         0: .line 136
            aload 0 /* this */
            aload 1 /* collectionOwners */
            putfield org.hibernate.loader.JoinWalker.collectionOwners:[I
         1: .line 137
            return
        end local 1 // int[] collectionOwners
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  collectionOwners  [I
    MethodParameters:
                  Name  Flags
      collectionOwners  

  public org.hibernate.persister.collection.CollectionPersister[] getCollectionPersisters();
    descriptor: ()[Lorg/hibernate/persister/collection/CollectionPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 140
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionPersisters:[Lorg/hibernate/persister/collection/CollectionPersister;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public void setCollectionPersisters(org.hibernate.persister.collection.CollectionPersister[]);
    descriptor: ([Lorg/hibernate/persister/collection/CollectionPersister;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.persister.collection.CollectionPersister[] collectionPersisters
         0: .line 144
            aload 0 /* this */
            aload 1 /* collectionPersisters */
            putfield org.hibernate.loader.JoinWalker.collectionPersisters:[Lorg/hibernate/persister/collection/CollectionPersister;
         1: .line 145
            return
        end local 1 // org.hibernate.persister.collection.CollectionPersister[] collectionPersisters
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  collectionPersisters  [Lorg/hibernate/persister/collection/CollectionPersister;
    MethodParameters:
                      Name  Flags
      collectionPersisters  

  public org.hibernate.type.EntityType[] getOwnerAssociationTypes();
    descriptor: ()[Lorg/hibernate/type/EntityType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 148
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.ownerAssociationTypes:[Lorg/hibernate/type/EntityType;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public void setOwnerAssociationTypes(org.hibernate.type.EntityType[]);
    descriptor: ([Lorg/hibernate/type/EntityType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.type.EntityType[] ownerAssociationType
         0: .line 152
            aload 0 /* this */
            aload 1 /* ownerAssociationType */
            putfield org.hibernate.loader.JoinWalker.ownerAssociationTypes:[Lorg/hibernate/type/EntityType;
         1: .line 153
            return
        end local 1 // org.hibernate.type.EntityType[] ownerAssociationType
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  ownerAssociationType  [Lorg/hibernate/type/EntityType;
    MethodParameters:
                      Name  Flags
      ownerAssociationType  

  public int[] getOwners();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 156
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.owners:[I
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public void setOwners(int[]);
    descriptor: ([I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // int[] owners
         0: .line 160
            aload 0 /* this */
            aload 1 /* owners */
            putfield org.hibernate.loader.JoinWalker.owners:[I
         1: .line 161
            return
        end local 1 // int[] owners
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  owners  [I
    MethodParameters:
        Name  Flags
      owners  

  public org.hibernate.persister.entity.Loadable[] getPersisters();
    descriptor: ()[Lorg/hibernate/persister/entity/Loadable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 164
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.persisters:[Lorg/hibernate/persister/entity/Loadable;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public void setPersisters(org.hibernate.persister.entity.Loadable[]);
    descriptor: ([Lorg/hibernate/persister/entity/Loadable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.persister.entity.Loadable[] persisters
         0: .line 168
            aload 0 /* this */
            aload 1 /* persisters */
            putfield org.hibernate.loader.JoinWalker.persisters:[Lorg/hibernate/persister/entity/Loadable;
         1: .line 169
            return
        end local 1 // org.hibernate.persister.entity.Loadable[] persisters
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  persisters  [Lorg/hibernate/persister/entity/Loadable;
    MethodParameters:
            Name  Flags
      persisters  

  public java.lang.String getSQLString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 172
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.sql:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public void setSql(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.lang.String sql
         0: .line 176
            aload 0 /* this */
            aload 1 /* sql */
            putfield org.hibernate.loader.JoinWalker.sql:Ljava/lang/String;
         1: .line 177
            return
        end local 1 // java.lang.String sql
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/loader/JoinWalker;
            0    2     1   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  protected org.hibernate.engine.spi.SessionFactoryImplementor getFactory();
    descriptor: ()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 180
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  protected org.hibernate.dialect.Dialect getDialect();
    descriptor: ()Lorg/hibernate/dialect/Dialect;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 184
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  public org.hibernate.engine.spi.LoadQueryInfluencers getLoadQueryInfluencers();
    descriptor: ()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 188
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            areturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  private void addAssociationToJoinTreeIfNecessary(org.hibernate.type.AssociationType, java.lang.String[], java.lang.String, org.hibernate.loader.PropertyPath, int, org.hibernate.sql.JoinType);
    descriptor: (Lorg/hibernate/type/AssociationType;[Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;ILorg/hibernate/sql/JoinType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.type.AssociationType type
        start local 2 // java.lang.String[] aliasedLhsColumns
        start local 3 // java.lang.String alias
        start local 4 // org.hibernate.loader.PropertyPath path
        start local 5 // int currentDepth
        start local 6 // org.hibernate.sql.JoinType joinType
         0: .line 202
            aload 6 /* joinType */
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            if_acmpeq 9
         1: .line 203
            aload 0 /* this */
         2: .line 204
            aload 1 /* type */
         3: .line 205
            aload 2 /* aliasedLhsColumns */
         4: .line 206
            aload 3 /* alias */
         5: .line 207
            aload 4 /* path */
         6: .line 208
            iload 5 /* currentDepth */
         7: .line 209
            aload 6 /* joinType */
         8: .line 203
            invokevirtual org.hibernate.loader.JoinWalker.addAssociationToJoinTree:(Lorg/hibernate/type/AssociationType;[Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;ILorg/hibernate/sql/JoinType;)V
         9: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.hibernate.sql.JoinType joinType
        end local 5 // int currentDepth
        end local 4 // org.hibernate.loader.PropertyPath path
        end local 3 // java.lang.String alias
        end local 2 // java.lang.String[] aliasedLhsColumns
        end local 1 // org.hibernate.type.AssociationType type
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lorg/hibernate/loader/JoinWalker;
            0   10     1               type  Lorg/hibernate/type/AssociationType;
            0   10     2  aliasedLhsColumns  [Ljava/lang/String;
            0   10     3              alias  Ljava/lang/String;
            0   10     4               path  Lorg/hibernate/loader/PropertyPath;
            0   10     5       currentDepth  I
            0   10     6           joinType  Lorg/hibernate/sql/JoinType;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                   Name  Flags
      type               final
      aliasedLhsColumns  final
      alias              final
      path               final
      currentDepth       
      joinType           final

  protected boolean hasRestriction(org.hibernate.loader.PropertyPath);
    descriptor: (Lorg/hibernate/loader/PropertyPath;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.loader.PropertyPath path
         0: .line 215
            iconst_0
            ireturn
        end local 1 // org.hibernate.loader.PropertyPath path
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;
            0    1     1  path  Lorg/hibernate/loader/PropertyPath;
    MethodParameters:
      Name  Flags
      path  

  protected java.lang.String getWithClause(org.hibernate.loader.PropertyPath);
    descriptor: (Lorg/hibernate/loader/PropertyPath;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.loader.PropertyPath path
         0: .line 219
            ldc ""
            areturn
        end local 1 // org.hibernate.loader.PropertyPath path
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;
            0    1     1  path  Lorg/hibernate/loader/PropertyPath;
    MethodParameters:
      Name  Flags
      path  

  private void addAssociationToJoinTree(org.hibernate.type.AssociationType, java.lang.String[], java.lang.String, org.hibernate.loader.PropertyPath, int, org.hibernate.sql.JoinType);
    descriptor: (Lorg/hibernate/type/AssociationType;[Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;ILorg/hibernate/sql/JoinType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=11, args_size=7
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.type.AssociationType type
        start local 2 // java.lang.String[] aliasedLhsColumns
        start local 3 // java.lang.String alias
        start local 4 // org.hibernate.loader.PropertyPath path
        start local 5 // int currentDepth
        start local 6 // org.hibernate.sql.JoinType joinType
         0: .line 234
            aload 1 /* type */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.AssociationType.getAssociatedJoinable:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/entity/Joinable;
            astore 7 /* joinable */
        start local 7 // org.hibernate.persister.entity.Joinable joinable
         1: .line 238
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.associations:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            iadd
            aload 4 /* path */
            aload 7 /* joinable */
            invokevirtual org.hibernate.loader.JoinWalker.generateTableAlias:(ILorg/hibernate/loader/PropertyPath;Lorg/hibernate/persister/entity/Joinable;)Ljava/lang/String;
            astore 8 /* subalias */
        start local 8 // java.lang.String subalias
         2: .line 244
            new org.hibernate.loader.OuterJoinableAssociation
            dup
         3: .line 245
            aload 4 /* path */
         4: .line 246
            aload 1 /* type */
         5: .line 247
            aload 3 /* alias */
         6: .line 248
            aload 2 /* aliasedLhsColumns */
         7: .line 249
            aload 8 /* subalias */
         8: .line 250
            aload 6 /* joinType */
         9: .line 251
            aload 0 /* this */
            aload 4 /* path */
            invokevirtual org.hibernate.loader.JoinWalker.getWithClause:(Lorg/hibernate/loader/PropertyPath;)Ljava/lang/String;
        10: .line 252
            aload 0 /* this */
            aload 4 /* path */
            invokevirtual org.hibernate.loader.JoinWalker.hasRestriction:(Lorg/hibernate/loader/PropertyPath;)Z
        11: .line 253
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
        12: .line 254
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.loadQueryInfluencers:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilters:()Ljava/util/Map;
        13: .line 244
            invokespecial org.hibernate.loader.OuterJoinableAssociation.<init>:(Lorg/hibernate/loader/PropertyPath;Lorg/hibernate/type/AssociationType;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/sql/JoinType;Ljava/lang/String;ZLorg/hibernate/engine/spi/SessionFactoryImplementor;Ljava/util/Map;)V
            astore 9 /* assoc */
        start local 9 // org.hibernate.loader.OuterJoinableAssociation assoc
        14: .line 256
            aload 9 /* assoc */
            aload 4 /* path */
            invokevirtual org.hibernate.loader.PropertyPath.getFullPath:()Ljava/lang/String;
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.validateJoin:(Ljava/lang/String;)V
        15: .line 257
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.associations:Ljava/util/List;
            aload 9 /* assoc */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 259
            iload 5 /* currentDepth */
            iconst_1
            iadd
            istore 10 /* nextDepth */
        start local 10 // int nextDepth
        17: .line 261
            aload 7 /* joinable */
            invokeinterface org.hibernate.persister.entity.Joinable.isCollection:()Z
            ifne 26
        18: .line 262
            aload 7 /* joinable */
            instanceof org.hibernate.persister.entity.OuterJoinLoadable
            ifeq 33
        19: .line 263
            aload 0 /* this */
        20: .line 264
            aload 7 /* joinable */
            checkcast org.hibernate.persister.entity.OuterJoinLoadable
        21: .line 265
            aload 8 /* subalias */
        22: .line 266
            aload 4 /* path */
        23: .line 267
            iload 10 /* nextDepth */
        24: .line 263
            invokevirtual org.hibernate.loader.JoinWalker.walkEntityTree:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
        25: .line 270
            goto 33
        26: .line 272
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.type.AssociationType java.lang.String[] java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.sql.JoinType org.hibernate.persister.entity.Joinable java.lang.String org.hibernate.loader.OuterJoinableAssociation int
      StackMap stack:
            aload 7 /* joinable */
            instanceof org.hibernate.persister.collection.QueryableCollection
            ifeq 33
        27: .line 273
            aload 0 /* this */
        28: .line 274
            aload 7 /* joinable */
            checkcast org.hibernate.persister.collection.QueryableCollection
        29: .line 275
            aload 8 /* subalias */
        30: .line 276
            aload 4 /* path */
        31: .line 277
            iload 10 /* nextDepth */
        32: .line 273
            invokevirtual org.hibernate.loader.JoinWalker.walkCollectionTree:(Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
        33: .line 282
      StackMap locals:
      StackMap stack:
            return
        end local 10 // int nextDepth
        end local 9 // org.hibernate.loader.OuterJoinableAssociation assoc
        end local 8 // java.lang.String subalias
        end local 7 // org.hibernate.persister.entity.Joinable joinable
        end local 6 // org.hibernate.sql.JoinType joinType
        end local 5 // int currentDepth
        end local 4 // org.hibernate.loader.PropertyPath path
        end local 3 // java.lang.String alias
        end local 2 // java.lang.String[] aliasedLhsColumns
        end local 1 // org.hibernate.type.AssociationType type
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   34     0               this  Lorg/hibernate/loader/JoinWalker;
            0   34     1               type  Lorg/hibernate/type/AssociationType;
            0   34     2  aliasedLhsColumns  [Ljava/lang/String;
            0   34     3              alias  Ljava/lang/String;
            0   34     4               path  Lorg/hibernate/loader/PropertyPath;
            0   34     5       currentDepth  I
            0   34     6           joinType  Lorg/hibernate/sql/JoinType;
            1   34     7           joinable  Lorg/hibernate/persister/entity/Joinable;
            2   34     8           subalias  Ljava/lang/String;
           14   34     9              assoc  Lorg/hibernate/loader/OuterJoinableAssociation;
           17   34    10          nextDepth  I
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                   Name  Flags
      type               final
      aliasedLhsColumns  final
      alias              final
      path               final
      currentDepth       final
      joinType           final

  protected final void walkEntityTree(org.hibernate.persister.entity.OuterJoinLoadable, java.lang.String);
    descriptor: (Lorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        start local 2 // java.lang.String alias
         0: .line 297
            aload 0 /* this */
            aload 1 /* persister */
            aload 2 /* alias */
            new org.hibernate.loader.PropertyPath
            dup
            invokespecial org.hibernate.loader.PropertyPath.<init>:()V
            iconst_0
            invokevirtual org.hibernate.loader.JoinWalker.walkEntityTree:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
         1: .line 298
            return
        end local 2 // java.lang.String alias
        end local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0    2     2      alias  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
           Name  Flags
      persister  
      alias      

  protected final void walkCollectionTree(org.hibernate.persister.collection.QueryableCollection, java.lang.String);
    descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.persister.collection.QueryableCollection persister
        start local 2 // java.lang.String alias
         0: .line 304
            aload 0 /* this */
            aload 1 /* persister */
            aload 2 /* alias */
            new org.hibernate.loader.PropertyPath
            dup
            invokespecial org.hibernate.loader.PropertyPath.<init>:()V
            iconst_0
            invokevirtual org.hibernate.loader.JoinWalker.walkCollectionTree:(Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
         1: .line 306
            return
        end local 2 // java.lang.String alias
        end local 1 // org.hibernate.persister.collection.QueryableCollection persister
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  persister  Lorg/hibernate/persister/collection/QueryableCollection;
            0    2     2      alias  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
           Name  Flags
      persister  
      alias      

  private void walkCollectionTree(org.hibernate.persister.collection.QueryableCollection, java.lang.String, org.hibernate.loader.PropertyPath, int);
    descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=11, args_size=5
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.persister.collection.QueryableCollection persister
        start local 2 // java.lang.String alias
        start local 3 // org.hibernate.loader.PropertyPath path
        start local 4 // int currentDepth
         0: .line 317
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.isOneToMany:()Z
            ifeq 8
         1: .line 318
            aload 0 /* this */
         2: .line 319
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.OuterJoinLoadable
         3: .line 320
            aload 2 /* alias */
         4: .line 321
            aload 3 /* path */
         5: .line 322
            iload 4 /* currentDepth */
         6: .line 318
            invokevirtual org.hibernate.loader.JoinWalker.walkEntityTree:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
         7: .line 324
            goto 45
         8: .line 326
      StackMap locals:
      StackMap stack:
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            astore 5 /* type */
        start local 5 // org.hibernate.type.Type type
         9: .line 327
            aload 5 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 36
        10: .line 331
            aload 5 /* type */
            checkcast org.hibernate.type.AssociationType
            astore 6 /* associationType */
        start local 6 // org.hibernate.type.AssociationType associationType
        11: .line 332
            aload 1 /* persister */
            aload 2 /* alias */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementColumnNames:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* aliasedLhsColumns */
        start local 7 // java.lang.String[] aliasedLhsColumns
        12: .line 333
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementColumnNames:()[Ljava/lang/String;
            astore 8 /* lhsColumns */
        start local 8 // java.lang.String[] lhsColumns
        13: .line 337
            iload 4 /* currentDepth */
            ifne 14
            iconst_1
            goto 15
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type org.hibernate.type.AssociationType java.lang.String[] java.lang.String[]
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 9 /* useInnerJoin */
        start local 9 // boolean useInnerJoin
        16: .line 338
            aload 0 /* this */
        17: .line 339
            aload 6 /* associationType */
        18: .line 340
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getFetchMode:()Lorg/hibernate/FetchMode;
        19: .line 341
            aload 3 /* path */
        20: .line 342
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getTableName:()Ljava/lang/String;
        21: .line 343
            aload 8 /* lhsColumns */
        22: .line 344
            iload 9 /* useInnerJoin */
            ifeq 23
            iconst_0
            goto 24
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type org.hibernate.type.AssociationType java.lang.String[] java.lang.String[] int
      StackMap stack: org.hibernate.loader.JoinWalker org.hibernate.type.AssociationType org.hibernate.FetchMode org.hibernate.loader.PropertyPath java.lang.String java.lang.String[]
        23: iconst_1
        24: .line 345
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type org.hibernate.type.AssociationType java.lang.String[] java.lang.String[] int
      StackMap stack: org.hibernate.loader.JoinWalker org.hibernate.type.AssociationType org.hibernate.FetchMode org.hibernate.loader.PropertyPath java.lang.String java.lang.String[] int
            iload 4 /* currentDepth */
            iconst_1
            isub
        25: .line 346
            aconst_null
        26: .line 338
            invokevirtual org.hibernate.loader.JoinWalker.getJoinType:(Lorg/hibernate/type/AssociationType;Lorg/hibernate/FetchMode;Lorg/hibernate/loader/PropertyPath;Ljava/lang/String;[Ljava/lang/String;ZILorg/hibernate/engine/spi/CascadeStyle;)Lorg/hibernate/sql/JoinType;
            astore 10 /* joinType */
        start local 10 // org.hibernate.sql.JoinType joinType
        27: .line 348
            aload 0 /* this */
        28: .line 349
            aload 6 /* associationType */
        29: .line 350
            aload 7 /* aliasedLhsColumns */
        30: .line 351
            aload 2 /* alias */
        31: .line 352
            aload 3 /* path */
        32: .line 353
            iload 4 /* currentDepth */
            iconst_1
            isub
        33: .line 354
            aload 10 /* joinType */
        34: .line 348
            invokevirtual org.hibernate.loader.JoinWalker.addAssociationToJoinTreeIfNecessary:(Lorg/hibernate/type/AssociationType;[Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;ILorg/hibernate/sql/JoinType;)V
        end local 10 // org.hibernate.sql.JoinType joinType
        end local 9 // boolean useInnerJoin
        end local 8 // java.lang.String[] lhsColumns
        end local 7 // java.lang.String[] aliasedLhsColumns
        end local 6 // org.hibernate.type.AssociationType associationType
        35: .line 356
            goto 45
        36: .line 357
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type
      StackMap stack:
            aload 5 /* type */
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 45
        37: .line 358
            aload 0 /* this */
        38: .line 359
            aload 5 /* type */
            checkcast org.hibernate.type.CompositeType
        39: .line 360
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementColumnNames:()[Ljava/lang/String;
        40: .line 361
            aload 1 /* persister */
        41: .line 362
            aload 2 /* alias */
        42: .line 363
            aload 3 /* path */
        43: .line 364
            iload 4 /* currentDepth */
        44: .line 358
            invokevirtual org.hibernate.loader.JoinWalker.walkCompositeElementTree:(Lorg/hibernate/type/CompositeType;[Ljava/lang/String;Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
        end local 5 // org.hibernate.type.Type type
        45: .line 369
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int currentDepth
        end local 3 // org.hibernate.loader.PropertyPath path
        end local 2 // java.lang.String alias
        end local 1 // org.hibernate.persister.collection.QueryableCollection persister
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   46     0               this  Lorg/hibernate/loader/JoinWalker;
            0   46     1          persister  Lorg/hibernate/persister/collection/QueryableCollection;
            0   46     2              alias  Ljava/lang/String;
            0   46     3               path  Lorg/hibernate/loader/PropertyPath;
            0   46     4       currentDepth  I
            9   45     5               type  Lorg/hibernate/type/Type;
           11   35     6    associationType  Lorg/hibernate/type/AssociationType;
           12   35     7  aliasedLhsColumns  [Ljava/lang/String;
           13   35     8         lhsColumns  [Ljava/lang/String;
           16   35     9       useInnerJoin  Z
           27   35    10           joinType  Lorg/hibernate/sql/JoinType;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      persister     final
      alias         final
      path          final
      currentDepth  final

  private void walkEntityAssociationTree(org.hibernate.type.AssociationType, org.hibernate.persister.entity.OuterJoinLoadable, int, java.lang.String, org.hibernate.loader.PropertyPath, boolean, int);
    descriptor: (Lorg/hibernate/type/AssociationType;Lorg/hibernate/persister/entity/OuterJoinLoadable;ILjava/lang/String;Lorg/hibernate/loader/PropertyPath;ZI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=13, args_size=8
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.type.AssociationType associationType
        start local 2 // org.hibernate.persister.entity.OuterJoinLoadable persister
        start local 3 // int propertyNumber
        start local 4 // java.lang.String alias
        start local 5 // org.hibernate.loader.PropertyPath path
        start local 6 // boolean nullable
        start local 7 // int currentDepth
         0: .line 395
            aload 1 /* associationType */
            aload 4 /* alias */
            iload 3 /* propertyNumber */
            aload 2 /* persister */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         1: .line 394
            invokestatic org.hibernate.engine.internal.JoinHelper.getAliasedLHSColumnNames:(Lorg/hibernate/type/AssociationType;Ljava/lang/String;ILorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/Mapping;)[Ljava/lang/String;
            astore 8 /* aliasedLhsColumns */
        start local 8 // java.lang.String[] aliasedLhsColumns
         2: .line 398
            aload 1 /* associationType */
            iload 3 /* propertyNumber */
            aload 2 /* persister */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         3: .line 397
            invokestatic org.hibernate.engine.internal.JoinHelper.getLHSColumnNames:(Lorg/hibernate/type/AssociationType;ILorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/Mapping;)[Ljava/lang/String;
            astore 9 /* lhsColumns */
        start local 9 // java.lang.String[] lhsColumns
         4: .line 400
            aload 1 /* associationType */
            iload 3 /* propertyNumber */
            aload 2 /* persister */
            invokestatic org.hibernate.engine.internal.JoinHelper.getLHSTableName:(Lorg/hibernate/type/AssociationType;ILorg/hibernate/persister/entity/OuterJoinLoadable;)Ljava/lang/String;
            astore 10 /* lhsTable */
        start local 10 // java.lang.String lhsTable
         5: .line 402
            aload 5 /* path */
            aload 2 /* persister */
            iload 3 /* propertyNumber */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getSubclassPropertyName:(I)Ljava/lang/String;
            invokevirtual org.hibernate.loader.PropertyPath.append:(Ljava/lang/String;)Lorg/hibernate/loader/PropertyPath;
            astore 11 /* subPath */
        start local 11 // org.hibernate.loader.PropertyPath subPath
         6: .line 403
            aload 0 /* this */
         7: .line 404
            aload 2 /* persister */
         8: .line 405
            aload 11 /* subPath */
         9: .line 406
            iload 3 /* propertyNumber */
        10: .line 407
            aload 1 /* associationType */
        11: .line 408
            aload 2 /* persister */
            iload 3 /* propertyNumber */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getFetchMode:(I)Lorg/hibernate/FetchMode;
        12: .line 409
            aload 2 /* persister */
            iload 3 /* propertyNumber */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getCascadeStyle:(I)Lorg/hibernate/engine/spi/CascadeStyle;
        13: .line 410
            aload 10 /* lhsTable */
        14: .line 411
            aload 9 /* lhsColumns */
        15: .line 412
            iload 6 /* nullable */
        16: .line 413
            iload 7 /* currentDepth */
        17: .line 403
            invokevirtual org.hibernate.loader.JoinWalker.getJoinType:(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;
            astore 12 /* joinType */
        start local 12 // org.hibernate.sql.JoinType joinType
        18: .line 415
            aload 0 /* this */
        19: .line 416
            aload 1 /* associationType */
        20: .line 417
            aload 8 /* aliasedLhsColumns */
        21: .line 418
            aload 4 /* alias */
        22: .line 419
            aload 11 /* subPath */
        23: .line 420
            iload 7 /* currentDepth */
        24: .line 421
            aload 12 /* joinType */
        25: .line 415
            invokevirtual org.hibernate.loader.JoinWalker.addAssociationToJoinTreeIfNecessary:(Lorg/hibernate/type/AssociationType;[Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;ILorg/hibernate/sql/JoinType;)V
        26: .line 423
            return
        end local 12 // org.hibernate.sql.JoinType joinType
        end local 11 // org.hibernate.loader.PropertyPath subPath
        end local 10 // java.lang.String lhsTable
        end local 9 // java.lang.String[] lhsColumns
        end local 8 // java.lang.String[] aliasedLhsColumns
        end local 7 // int currentDepth
        end local 6 // boolean nullable
        end local 5 // org.hibernate.loader.PropertyPath path
        end local 4 // java.lang.String alias
        end local 3 // int propertyNumber
        end local 2 // org.hibernate.persister.entity.OuterJoinLoadable persister
        end local 1 // org.hibernate.type.AssociationType associationType
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lorg/hibernate/loader/JoinWalker;
            0   27     1    associationType  Lorg/hibernate/type/AssociationType;
            0   27     2          persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   27     3     propertyNumber  I
            0   27     4              alias  Ljava/lang/String;
            0   27     5               path  Lorg/hibernate/loader/PropertyPath;
            0   27     6           nullable  Z
            0   27     7       currentDepth  I
            2   27     8  aliasedLhsColumns  [Ljava/lang/String;
            4   27     9         lhsColumns  [Ljava/lang/String;
            5   27    10           lhsTable  Ljava/lang/String;
            6   27    11            subPath  Lorg/hibernate/loader/PropertyPath;
           18   27    12           joinType  Lorg/hibernate/sql/JoinType;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                 Name  Flags
      associationType  final
      persister        final
      propertyNumber   final
      alias            final
      path             final
      nullable         final
      currentDepth     final

  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=9, locals=11, args_size=11
        start local 0 // org.hibernate.loader.JoinWalker 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 454
            aload 0 /* this */
         1: .line 455
            aload 4 /* associationType */
         2: .line 456
            aload 5 /* metadataFetchMode */
         3: .line 457
            aload 2 /* path */
         4: .line 458
            aload 7 /* lhsTable */
         5: .line 459
            aload 8 /* lhsColumns */
         6: .line 460
            iload 9 /* nullable */
         7: .line 461
            iload 10 /* currentDepth */
         8: .line 462
            aload 6 /* metadataCascadeStyle */
         9: .line 454
            invokevirtual org.hibernate.loader.JoinWalker.getJoinType:(Lorg/hibernate/type/AssociationType;Lorg/hibernate/FetchMode;Lorg/hibernate/loader/PropertyPath;Ljava/lang/String;[Ljava/lang/String;ZILorg/hibernate/engine/spi/CascadeStyle;)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.JoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   10     0                  this  Lorg/hibernate/loader/JoinWalker;
            0   10     1             persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   10     2                  path  Lorg/hibernate/loader/PropertyPath;
            0   10     3        propertyNumber  I
            0   10     4       associationType  Lorg/hibernate/type/AssociationType;
            0   10     5     metadataFetchMode  Lorg/hibernate/FetchMode;
            0   10     6  metadataCascadeStyle  Lorg/hibernate/engine/spi/CascadeStyle;
            0   10     7              lhsTable  Ljava/lang/String;
            0   10     8            lhsColumns  [Ljava/lang/String;
            0   10     9              nullable  Z
            0   10    10          currentDepth  I
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      persister             
      path                  final
      propertyNumber        
      associationType       
      metadataFetchMode     
      metadataCascadeStyle  
      lhsTable              
      lhsColumns            
      nullable              final
      currentDepth          final

  protected org.hibernate.sql.JoinType getJoinType(org.hibernate.type.AssociationType, org.hibernate.FetchMode, org.hibernate.loader.PropertyPath, java.lang.String, java.lang.String[], boolean, int, org.hibernate.engine.spi.CascadeStyle);
    descriptor: (Lorg/hibernate/type/AssociationType;Lorg/hibernate/FetchMode;Lorg/hibernate/loader/PropertyPath;Ljava/lang/String;[Ljava/lang/String;ZILorg/hibernate/engine/spi/CascadeStyle;)Lorg/hibernate/sql/JoinType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=9
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.type.AssociationType associationType
        start local 2 // org.hibernate.FetchMode config
        start local 3 // org.hibernate.loader.PropertyPath path
        start local 4 // java.lang.String lhsTable
        start local 5 // java.lang.String[] lhsColumns
        start local 6 // boolean nullable
        start local 7 // int currentDepth
        start local 8 // org.hibernate.engine.spi.CascadeStyle cascadeStyle
         0: .line 491
            aload 0 /* this */
            aload 1 /* associationType */
            aload 2 /* config */
            aload 8 /* cascadeStyle */
            invokevirtual org.hibernate.loader.JoinWalker.isJoinedFetchEnabled:(Lorg/hibernate/type/AssociationType;Lorg/hibernate/FetchMode;Lorg/hibernate/engine/spi/CascadeStyle;)Z
            ifne 2
         1: .line 492
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            areturn
         2: .line 494
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 7 /* currentDepth */
            invokevirtual org.hibernate.loader.JoinWalker.isTooDeep:(I)Z
            ifne 3
            aload 1 /* associationType */
            invokeinterface org.hibernate.type.AssociationType.isCollectionType:()Z
            ifeq 4
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.isTooManyCollections:()Z
            ifeq 4
         3: .line 495
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            areturn
         4: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* lhsTable */
            aload 5 /* lhsColumns */
            aload 1 /* associationType */
            invokevirtual org.hibernate.loader.JoinWalker.isDuplicateAssociation:(Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/type/AssociationType;)Z
            ifeq 6
         5: .line 498
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            areturn
         6: .line 500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* nullable */
            iload 7 /* currentDepth */
            invokevirtual org.hibernate.loader.JoinWalker.getJoinType:(ZI)Lorg/hibernate/sql/JoinType;
            areturn
        end local 8 // org.hibernate.engine.spi.CascadeStyle cascadeStyle
        end local 7 // int currentDepth
        end local 6 // boolean nullable
        end local 5 // java.lang.String[] lhsColumns
        end local 4 // java.lang.String lhsTable
        end local 3 // org.hibernate.loader.PropertyPath path
        end local 2 // org.hibernate.FetchMode config
        end local 1 // org.hibernate.type.AssociationType associationType
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/hibernate/loader/JoinWalker;
            0    7     1  associationType  Lorg/hibernate/type/AssociationType;
            0    7     2           config  Lorg/hibernate/FetchMode;
            0    7     3             path  Lorg/hibernate/loader/PropertyPath;
            0    7     4         lhsTable  Ljava/lang/String;
            0    7     5       lhsColumns  [Ljava/lang/String;
            0    7     6         nullable  Z
            0    7     7     currentDepth  I
            0    7     8     cascadeStyle  Lorg/hibernate/engine/spi/CascadeStyle;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                 Name  Flags
      associationType  
      config           
      path             
      lhsTable         
      lhsColumns       
      nullable         
      currentDepth     
      cascadeStyle     

  private void walkEntityTree(org.hibernate.persister.entity.OuterJoinLoadable, java.lang.String, org.hibernate.loader.PropertyPath, int);
    descriptor: (Lorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=8, args_size=5
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        start local 2 // java.lang.String alias
        start local 3 // org.hibernate.loader.PropertyPath path
        start local 4 // int currentDepth
         0: .line 520
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.countSubclassProperties:()I
            istore 5 /* n */
        start local 5 // int n
         1: .line 521
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 26
         3: .line 522
      StackMap locals: int int
      StackMap stack:
            aload 1 /* persister */
            iload 6 /* i */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getSubclassPropertyType:(I)Lorg/hibernate/type/Type;
            astore 7 /* type */
        start local 7 // org.hibernate.type.Type type
         4: .line 523
            aload 7 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 15
         5: .line 524
            aload 0 /* this */
         6: .line 525
            aload 7 /* type */
            checkcast org.hibernate.type.AssociationType
         7: .line 526
            aload 1 /* persister */
         8: .line 527
            iload 6 /* i */
         9: .line 528
            aload 2 /* alias */
        10: .line 529
            aload 3 /* path */
        11: .line 530
            aload 1 /* persister */
            iload 6 /* i */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.isSubclassPropertyNullable:(I)Z
        12: .line 531
            iload 4 /* currentDepth */
        13: .line 524
            invokevirtual org.hibernate.loader.JoinWalker.walkEntityAssociationTree:(Lorg/hibernate/type/AssociationType;Lorg/hibernate/persister/entity/OuterJoinLoadable;ILjava/lang/String;Lorg/hibernate/loader/PropertyPath;ZI)V
        14: .line 533
            goto 25
        15: .line 534
      StackMap locals: org.hibernate.type.Type
      StackMap stack:
            aload 7 /* type */
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 25
        16: .line 535
            aload 0 /* this */
        17: .line 536
            aload 7 /* type */
            checkcast org.hibernate.type.CompositeType
        18: .line 537
            iload 6 /* i */
        19: .line 538
            iconst_0
        20: .line 539
            aload 1 /* persister */
        21: .line 540
            aload 2 /* alias */
        22: .line 541
            aload 3 /* path */
            aload 1 /* persister */
            iload 6 /* i */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getSubclassPropertyName:(I)Ljava/lang/String;
            invokevirtual org.hibernate.loader.PropertyPath.append:(Ljava/lang/String;)Lorg/hibernate/loader/PropertyPath;
        23: .line 542
            iload 4 /* currentDepth */
        24: .line 535
            invokevirtual org.hibernate.loader.JoinWalker.walkComponentTree:(Lorg/hibernate/type/CompositeType;IILorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
        end local 7 // org.hibernate.type.Type type
        25: .line 521
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            iload 5 /* n */
            if_icmplt 3
        end local 6 // int i
        27: .line 549
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getIdentifierType:()Lorg/hibernate/type/Type;
            astore 6 /* idType */
        start local 6 // org.hibernate.type.Type idType
        28: .line 550
            aload 6 /* idType */
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 41
        29: .line 551
            aload 6 /* idType */
            checkcast org.hibernate.type.CompositeType
            astore 7 /* cidType */
        start local 7 // org.hibernate.type.CompositeType cidType
        30: .line 552
            aload 7 /* cidType */
            invokeinterface org.hibernate.type.CompositeType.isEmbedded:()Z
            ifeq 41
        31: .line 561
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
            invokevirtual org.hibernate.tuple.IdentifierProperty.isEmbedded:()Z
            ifeq 41
        32: .line 562
            aload 0 /* this */
        33: .line 563
            aload 7 /* cidType */
        34: .line 564
            iconst_m1
        35: .line 565
            iconst_0
        36: .line 566
            aload 1 /* persister */
        37: .line 567
            aload 2 /* alias */
        38: .line 568
            aload 3 /* path */
        39: .line 569
            iload 4 /* currentDepth */
        40: .line 562
            invokevirtual org.hibernate.loader.JoinWalker.walkComponentTree:(Lorg/hibernate/type/CompositeType;IILorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
        end local 7 // org.hibernate.type.CompositeType cidType
        41: .line 574
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.persister.entity.OuterJoinLoadable java.lang.String org.hibernate.loader.PropertyPath int int org.hibernate.type.Type
      StackMap stack:
            return
        end local 6 // org.hibernate.type.Type idType
        end local 5 // int n
        end local 4 // int currentDepth
        end local 3 // org.hibernate.loader.PropertyPath path
        end local 2 // java.lang.String alias
        end local 1 // org.hibernate.persister.entity.OuterJoinLoadable persister
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   42     0          this  Lorg/hibernate/loader/JoinWalker;
            0   42     1     persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   42     2         alias  Ljava/lang/String;
            0   42     3          path  Lorg/hibernate/loader/PropertyPath;
            0   42     4  currentDepth  I
            1   42     5             n  I
            2   27     6             i  I
            4   25     7          type  Lorg/hibernate/type/Type;
           28   42     6        idType  Lorg/hibernate/type/Type;
           30   41     7       cidType  Lorg/hibernate/type/CompositeType;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      persister     final
      alias         final
      path          final
      currentDepth  final

  private void walkComponentTree(org.hibernate.type.CompositeType, int, int, org.hibernate.persister.entity.OuterJoinLoadable, java.lang.String, org.hibernate.loader.PropertyPath, int);
    descriptor: (Lorg/hibernate/type/CompositeType;IILorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=18, args_size=8
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.type.CompositeType componentType
        start local 2 // int propertyNumber
        start local 3 // int begin
        start local 4 // org.hibernate.persister.entity.OuterJoinLoadable persister
        start local 5 // java.lang.String alias
        start local 6 // org.hibernate.loader.PropertyPath path
        start local 7 // int currentDepth
         0: .line 598
            aload 1 /* componentType */
            invokeinterface org.hibernate.type.CompositeType.getSubtypes:()[Lorg/hibernate/type/Type;
            astore 8 /* types */
        start local 8 // org.hibernate.type.Type[] types
         1: .line 599
            aload 1 /* componentType */
            invokeinterface org.hibernate.type.CompositeType.getPropertyNames:()[Ljava/lang/String;
            astore 9 /* propertyNames */
        start local 9 // java.lang.String[] propertyNames
         2: .line 600
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         3: goto 48
         4: .line 601
      StackMap locals: org.hibernate.type.Type[] java.lang.String[] int
      StackMap stack:
            aload 8 /* types */
            iload 10 /* i */
            aaload
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 35
         5: .line 602
            aload 8 /* types */
            iload 10 /* i */
            aaload
            checkcast org.hibernate.type.AssociationType
            astore 11 /* associationType */
        start local 11 // org.hibernate.type.AssociationType associationType
         6: .line 604
            aload 11 /* associationType */
            aload 5 /* alias */
            iload 2 /* propertyNumber */
            iload 3 /* begin */
            aload 4 /* persister */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         7: .line 603
            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;
            astore 12 /* aliasedLhsColumns */
        start local 12 // java.lang.String[] aliasedLhsColumns
         8: .line 607
            aload 11 /* associationType */
            iload 2 /* propertyNumber */
            iload 3 /* begin */
            aload 4 /* persister */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         9: .line 606
            invokestatic org.hibernate.engine.internal.JoinHelper.getLHSColumnNames:(Lorg/hibernate/type/AssociationType;IILorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/Mapping;)[Ljava/lang/String;
            astore 13 /* lhsColumns */
        start local 13 // java.lang.String[] lhsColumns
        10: .line 609
            aload 11 /* associationType */
            iload 2 /* propertyNumber */
            aload 4 /* persister */
            invokestatic org.hibernate.engine.internal.JoinHelper.getLHSTableName:(Lorg/hibernate/type/AssociationType;ILorg/hibernate/persister/entity/OuterJoinLoadable;)Ljava/lang/String;
            astore 14 /* lhsTable */
        start local 14 // java.lang.String lhsTable
        11: .line 611
            aload 6 /* path */
            aload 9 /* propertyNames */
            iload 10 /* i */
            aaload
            invokevirtual org.hibernate.loader.PropertyPath.append:(Ljava/lang/String;)Lorg/hibernate/loader/PropertyPath;
            astore 15 /* subPath */
        start local 15 // org.hibernate.loader.PropertyPath subPath
        12: .line 612
            aload 1 /* componentType */
            invokeinterface org.hibernate.type.CompositeType.getPropertyNullability:()[Z
            astore 16 /* propertyNullability */
        start local 16 // boolean[] propertyNullability
        13: .line 613
            aload 0 /* this */
        14: .line 614
            aload 4 /* persister */
        15: .line 615
            aload 15 /* subPath */
        16: .line 616
            iload 2 /* propertyNumber */
        17: .line 617
            aload 11 /* associationType */
        18: .line 618
            aload 1 /* componentType */
            iload 10 /* i */
            invokeinterface org.hibernate.type.CompositeType.getFetchMode:(I)Lorg/hibernate/FetchMode;
        19: .line 619
            aload 1 /* componentType */
            iload 10 /* i */
            invokeinterface org.hibernate.type.CompositeType.getCascadeStyle:(I)Lorg/hibernate/engine/spi/CascadeStyle;
        20: .line 620
            aload 14 /* lhsTable */
        21: .line 621
            aload 13 /* lhsColumns */
        22: .line 622
            aload 16 /* propertyNullability */
            ifnull 23
            aload 16 /* propertyNullability */
            iload 10 /* i */
            baload
            ifne 23
            iconst_0
            goto 24
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.type.CompositeType int int org.hibernate.persister.entity.OuterJoinLoadable java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type[] java.lang.String[] int org.hibernate.type.AssociationType java.lang.String[] java.lang.String[] java.lang.String org.hibernate.loader.PropertyPath boolean[]
      StackMap stack: org.hibernate.loader.JoinWalker 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[]
        23: iconst_1
        24: .line 623
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.type.CompositeType int int org.hibernate.persister.entity.OuterJoinLoadable java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type[] java.lang.String[] int org.hibernate.type.AssociationType java.lang.String[] java.lang.String[] java.lang.String org.hibernate.loader.PropertyPath boolean[]
      StackMap stack: org.hibernate.loader.JoinWalker 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[] int
            iload 7 /* currentDepth */
        25: .line 613
            invokevirtual org.hibernate.loader.JoinWalker.getJoinType:(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;
            astore 17 /* joinType */
        start local 17 // org.hibernate.sql.JoinType joinType
        26: .line 625
            aload 0 /* this */
        27: .line 626
            aload 11 /* associationType */
        28: .line 627
            aload 12 /* aliasedLhsColumns */
        29: .line 628
            aload 5 /* alias */
        30: .line 629
            aload 15 /* subPath */
        31: .line 630
            iload 7 /* currentDepth */
        32: .line 631
            aload 17 /* joinType */
        33: .line 625
            invokevirtual org.hibernate.loader.JoinWalker.addAssociationToJoinTreeIfNecessary:(Lorg/hibernate/type/AssociationType;[Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;ILorg/hibernate/sql/JoinType;)V
        end local 17 // org.hibernate.sql.JoinType joinType
        end local 16 // boolean[] propertyNullability
        end local 15 // org.hibernate.loader.PropertyPath subPath
        end local 14 // java.lang.String lhsTable
        end local 13 // java.lang.String[] lhsColumns
        end local 12 // java.lang.String[] aliasedLhsColumns
        end local 11 // org.hibernate.type.AssociationType associationType
        34: .line 634
            goto 46
        35: .line 635
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.type.CompositeType int int org.hibernate.persister.entity.OuterJoinLoadable java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type[] java.lang.String[] int
      StackMap stack:
            aload 8 /* types */
            iload 10 /* i */
            aaload
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 46
        36: .line 636
            aload 6 /* path */
            aload 9 /* propertyNames */
            iload 10 /* i */
            aaload
            invokevirtual org.hibernate.loader.PropertyPath.append:(Ljava/lang/String;)Lorg/hibernate/loader/PropertyPath;
            astore 11 /* subPath */
        start local 11 // org.hibernate.loader.PropertyPath subPath
        37: .line 637
            aload 0 /* this */
        38: .line 638
            aload 8 /* types */
            iload 10 /* i */
            aaload
            checkcast org.hibernate.type.CompositeType
        39: .line 639
            iload 2 /* propertyNumber */
        40: .line 640
            iload 3 /* begin */
        41: .line 641
            aload 4 /* persister */
        42: .line 642
            aload 5 /* alias */
        43: .line 643
            aload 11 /* subPath */
        44: .line 644
            iload 7 /* currentDepth */
        45: .line 637
            invokevirtual org.hibernate.loader.JoinWalker.walkComponentTree:(Lorg/hibernate/type/CompositeType;IILorg/hibernate/persister/entity/OuterJoinLoadable;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
        end local 11 // org.hibernate.loader.PropertyPath subPath
        46: .line 647
      StackMap locals:
      StackMap stack:
            iload 3 /* begin */
            aload 8 /* types */
            iload 10 /* i */
            aaload
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            iadd
            istore 3 /* begin */
        47: .line 600
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 10 /* i */
            aload 8 /* types */
            arraylength
            if_icmplt 4
        end local 10 // int i
        49: .line 650
            return
        end local 9 // java.lang.String[] propertyNames
        end local 8 // org.hibernate.type.Type[] types
        end local 7 // int currentDepth
        end local 6 // org.hibernate.loader.PropertyPath path
        end local 5 // java.lang.String alias
        end local 4 // org.hibernate.persister.entity.OuterJoinLoadable persister
        end local 3 // int begin
        end local 2 // int propertyNumber
        end local 1 // org.hibernate.type.CompositeType componentType
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   50     0                 this  Lorg/hibernate/loader/JoinWalker;
            0   50     1        componentType  Lorg/hibernate/type/CompositeType;
            0   50     2       propertyNumber  I
            0   50     3                begin  I
            0   50     4            persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   50     5                alias  Ljava/lang/String;
            0   50     6                 path  Lorg/hibernate/loader/PropertyPath;
            0   50     7         currentDepth  I
            1   50     8                types  [Lorg/hibernate/type/Type;
            2   50     9        propertyNames  [Ljava/lang/String;
            3   49    10                    i  I
            6   34    11      associationType  Lorg/hibernate/type/AssociationType;
            8   34    12    aliasedLhsColumns  [Ljava/lang/String;
           10   34    13           lhsColumns  [Ljava/lang/String;
           11   34    14             lhsTable  Ljava/lang/String;
           12   34    15              subPath  Lorg/hibernate/loader/PropertyPath;
           13   34    16  propertyNullability  [Z
           26   34    17             joinType  Lorg/hibernate/sql/JoinType;
           37   46    11              subPath  Lorg/hibernate/loader/PropertyPath;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                Name  Flags
      componentType   final
      propertyNumber  final
      begin           
      persister       final
      alias           final
      path            final
      currentDepth    final

  private void walkCompositeElementTree(org.hibernate.type.CompositeType, java.lang.String[], org.hibernate.persister.collection.QueryableCollection, java.lang.String, org.hibernate.loader.PropertyPath, int);
    descriptor: (Lorg/hibernate/type/CompositeType;[Ljava/lang/String;Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=18, args_size=7
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.type.CompositeType compositeType
        start local 2 // java.lang.String[] cols
        start local 3 // org.hibernate.persister.collection.QueryableCollection persister
        start local 4 // java.lang.String alias
        start local 5 // org.hibernate.loader.PropertyPath path
        start local 6 // int currentDepth
         0: .line 663
            aload 1 /* compositeType */
            invokeinterface org.hibernate.type.CompositeType.getSubtypes:()[Lorg/hibernate/type/Type;
            astore 7 /* types */
        start local 7 // org.hibernate.type.Type[] types
         1: .line 664
            aload 1 /* compositeType */
            invokeinterface org.hibernate.type.CompositeType.getPropertyNames:()[Ljava/lang/String;
            astore 8 /* propertyNames */
        start local 8 // java.lang.String[] propertyNames
         2: .line 665
            iconst_0
            istore 9 /* begin */
        start local 9 // int begin
         3: .line 666
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         4: goto 44
         5: .line 667
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.type.CompositeType java.lang.String[] org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type[] java.lang.String[] int int
      StackMap stack:
            aload 7 /* types */
            iload 10 /* i */
            aaload
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            istore 11 /* length */
        start local 11 // int length
         6: .line 668
            aload 2 /* cols */
            iload 9 /* begin */
            iload 11 /* length */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.slice:([Ljava/lang/String;II)[Ljava/lang/String;
            astore 12 /* lhsColumns */
        start local 12 // java.lang.String[] lhsColumns
         7: .line 670
            aload 7 /* types */
            iload 10 /* i */
            aaload
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 32
         8: .line 671
            aload 7 /* types */
            iload 10 /* i */
            aaload
            checkcast org.hibernate.type.AssociationType
            astore 13 /* associationType */
        start local 13 // org.hibernate.type.AssociationType associationType
         9: .line 675
            aload 4 /* alias */
            aload 12 /* lhsColumns */
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
            astore 14 /* aliasedLhsColumns */
        start local 14 // java.lang.String[] aliasedLhsColumns
        10: .line 677
            aload 5 /* path */
            aload 8 /* propertyNames */
            iload 10 /* i */
            aaload
            invokevirtual org.hibernate.loader.PropertyPath.append:(Ljava/lang/String;)Lorg/hibernate/loader/PropertyPath;
            astore 15 /* subPath */
        start local 15 // org.hibernate.loader.PropertyPath subPath
        11: .line 678
            aload 1 /* compositeType */
            invokeinterface org.hibernate.type.CompositeType.getPropertyNullability:()[Z
            astore 16 /* propertyNullability */
        start local 16 // boolean[] propertyNullability
        12: .line 679
            aload 0 /* this */
        13: .line 680
            aload 13 /* associationType */
        14: .line 681
            aload 1 /* compositeType */
            iload 10 /* i */
            invokeinterface org.hibernate.type.CompositeType.getFetchMode:(I)Lorg/hibernate/FetchMode;
        15: .line 682
            aload 15 /* subPath */
        16: .line 683
            aload 3 /* persister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getTableName:()Ljava/lang/String;
        17: .line 684
            aload 12 /* lhsColumns */
        18: .line 685
            aload 16 /* propertyNullability */
            ifnull 19
            aload 16 /* propertyNullability */
            iload 10 /* i */
            baload
            ifne 19
            iconst_0
            goto 20
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.type.CompositeType java.lang.String[] org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type[] java.lang.String[] int int int java.lang.String[] org.hibernate.type.AssociationType java.lang.String[] org.hibernate.loader.PropertyPath boolean[]
      StackMap stack: org.hibernate.loader.JoinWalker org.hibernate.type.AssociationType org.hibernate.FetchMode org.hibernate.loader.PropertyPath java.lang.String java.lang.String[]
        19: iconst_1
        20: .line 686
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.type.CompositeType java.lang.String[] org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type[] java.lang.String[] int int int java.lang.String[] org.hibernate.type.AssociationType java.lang.String[] org.hibernate.loader.PropertyPath boolean[]
      StackMap stack: org.hibernate.loader.JoinWalker org.hibernate.type.AssociationType org.hibernate.FetchMode org.hibernate.loader.PropertyPath java.lang.String java.lang.String[] int
            iload 6 /* currentDepth */
        21: .line 687
            aload 1 /* compositeType */
            iload 10 /* i */
            invokeinterface org.hibernate.type.CompositeType.getCascadeStyle:(I)Lorg/hibernate/engine/spi/CascadeStyle;
        22: .line 679
            invokevirtual org.hibernate.loader.JoinWalker.getJoinType:(Lorg/hibernate/type/AssociationType;Lorg/hibernate/FetchMode;Lorg/hibernate/loader/PropertyPath;Ljava/lang/String;[Ljava/lang/String;ZILorg/hibernate/engine/spi/CascadeStyle;)Lorg/hibernate/sql/JoinType;
            astore 17 /* joinType */
        start local 17 // org.hibernate.sql.JoinType joinType
        23: .line 689
            aload 0 /* this */
        24: .line 690
            aload 13 /* associationType */
        25: .line 691
            aload 14 /* aliasedLhsColumns */
        26: .line 692
            aload 4 /* alias */
        27: .line 693
            aload 15 /* subPath */
        28: .line 694
            iload 6 /* currentDepth */
        29: .line 695
            aload 17 /* joinType */
        30: .line 689
            invokevirtual org.hibernate.loader.JoinWalker.addAssociationToJoinTreeIfNecessary:(Lorg/hibernate/type/AssociationType;[Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;ILorg/hibernate/sql/JoinType;)V
        end local 17 // org.hibernate.sql.JoinType joinType
        end local 16 // boolean[] propertyNullability
        end local 15 // org.hibernate.loader.PropertyPath subPath
        end local 14 // java.lang.String[] aliasedLhsColumns
        end local 13 // org.hibernate.type.AssociationType associationType
        31: .line 697
            goto 42
        32: .line 698
      StackMap locals: org.hibernate.loader.JoinWalker org.hibernate.type.CompositeType java.lang.String[] org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.loader.PropertyPath int org.hibernate.type.Type[] java.lang.String[] int int int java.lang.String[]
      StackMap stack:
            aload 7 /* types */
            iload 10 /* i */
            aaload
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 42
        33: .line 699
            aload 5 /* path */
            aload 8 /* propertyNames */
            iload 10 /* i */
            aaload
            invokevirtual org.hibernate.loader.PropertyPath.append:(Ljava/lang/String;)Lorg/hibernate/loader/PropertyPath;
            astore 13 /* subPath */
        start local 13 // org.hibernate.loader.PropertyPath subPath
        34: .line 700
            aload 0 /* this */
        35: .line 701
            aload 7 /* types */
            iload 10 /* i */
            aaload
            checkcast org.hibernate.type.CompositeType
        36: .line 702
            aload 12 /* lhsColumns */
        37: .line 703
            aload 3 /* persister */
        38: .line 704
            aload 4 /* alias */
        39: .line 705
            aload 13 /* subPath */
        40: .line 706
            iload 6 /* currentDepth */
        41: .line 700
            invokevirtual org.hibernate.loader.JoinWalker.walkCompositeElementTree:(Lorg/hibernate/type/CompositeType;[Ljava/lang/String;Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;Lorg/hibernate/loader/PropertyPath;I)V
        end local 13 // org.hibernate.loader.PropertyPath subPath
        42: .line 709
      StackMap locals:
      StackMap stack:
            iload 9 /* begin */
            iload 11 /* length */
            iadd
            istore 9 /* begin */
        end local 12 // java.lang.String[] lhsColumns
        end local 11 // int length
        43: .line 666
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 10 /* i */
            aload 7 /* types */
            arraylength
            if_icmplt 5
        end local 10 // int i
        45: .line 712
            return
        end local 9 // int begin
        end local 8 // java.lang.String[] propertyNames
        end local 7 // org.hibernate.type.Type[] types
        end local 6 // int currentDepth
        end local 5 // org.hibernate.loader.PropertyPath path
        end local 4 // java.lang.String alias
        end local 3 // org.hibernate.persister.collection.QueryableCollection persister
        end local 2 // java.lang.String[] cols
        end local 1 // org.hibernate.type.CompositeType compositeType
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   46     0                 this  Lorg/hibernate/loader/JoinWalker;
            0   46     1        compositeType  Lorg/hibernate/type/CompositeType;
            0   46     2                 cols  [Ljava/lang/String;
            0   46     3            persister  Lorg/hibernate/persister/collection/QueryableCollection;
            0   46     4                alias  Ljava/lang/String;
            0   46     5                 path  Lorg/hibernate/loader/PropertyPath;
            0   46     6         currentDepth  I
            1   46     7                types  [Lorg/hibernate/type/Type;
            2   46     8        propertyNames  [Ljava/lang/String;
            3   46     9                begin  I
            4   45    10                    i  I
            6   43    11               length  I
            7   43    12           lhsColumns  [Ljava/lang/String;
            9   31    13      associationType  Lorg/hibernate/type/AssociationType;
           10   31    14    aliasedLhsColumns  [Ljava/lang/String;
           11   31    15              subPath  Lorg/hibernate/loader/PropertyPath;
           12   31    16  propertyNullability  [Z
           23   31    17             joinType  Lorg/hibernate/sql/JoinType;
           34   42    13              subPath  Lorg/hibernate/loader/PropertyPath;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
               Name  Flags
      compositeType  final
      cols           final
      persister      final
      alias          final
      path           final
      currentDepth   final

  protected org.hibernate.sql.JoinType getJoinType(boolean, int);
    descriptor: (ZI)Lorg/hibernate/sql/JoinType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // boolean nullable
        start local 2 // int currentDepth
         0: .line 724
            iload 1 /* nullable */
            ifne 2
            iload 2 /* currentDepth */
            ifgt 2
         1: .line 725
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
            goto 3
         2: .line 726
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
         3: .line 724
      StackMap locals:
      StackMap stack: org.hibernate.sql.JoinType
            areturn
        end local 2 // int currentDepth
        end local 1 // boolean nullable
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/hibernate/loader/JoinWalker;
            0    4     1      nullable  Z
            0    4     2  currentDepth  I
    MethodParameters:
              Name  Flags
      nullable      
      currentDepth  

  protected boolean isTooDeep(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // int currentDepth
         0: .line 730
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.getMaximumFetchDepth:()Ljava/lang/Integer;
            astore 2 /* maxFetchDepth */
        start local 2 // java.lang.Integer maxFetchDepth
         1: .line 731
            aload 2 /* maxFetchDepth */
            ifnull 2
            iload 1 /* currentDepth */
            aload 2 /* maxFetchDepth */
            invokevirtual java.lang.Integer.intValue:()I
            if_icmplt 2
            iconst_1
            ireturn
      StackMap locals: java.lang.Integer
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // java.lang.Integer maxFetchDepth
        end local 1 // int currentDepth
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/hibernate/loader/JoinWalker;
            0    3     1   currentDepth  I
            1    3     2  maxFetchDepth  Ljava/lang/Integer;
    MethodParameters:
              Name  Flags
      currentDepth  

  protected boolean isTooManyCollections();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.JoinWalker this
         0: .line 735
            iconst_0
            ireturn
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/JoinWalker;

  protected boolean isJoinedFetchEnabledInMapping(org.hibernate.FetchMode, org.hibernate.type.AssociationType);
    descriptor: (Lorg/hibernate/FetchMode;Lorg/hibernate/type/AssociationType;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.FetchMode config
        start local 2 // org.hibernate.type.AssociationType type
         0: .line 744
            aload 2 /* type */
            invokeinterface org.hibernate.type.AssociationType.isEntityType:()Z
            ifne 2
            aload 2 /* type */
            invokeinterface org.hibernate.type.AssociationType.isCollectionType:()Z
            ifne 2
         1: .line 745
            iconst_0
            ireturn
         2: .line 748
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            getstatic org.hibernate.FetchMode.JOIN:Lorg/hibernate/FetchMode;
            if_acmpne 3
            iconst_1
            ireturn
         3: .line 749
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            getstatic org.hibernate.FetchMode.SELECT:Lorg/hibernate/FetchMode;
            if_acmpne 4
            iconst_0
            ireturn
         4: .line 750
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            invokeinterface org.hibernate.type.AssociationType.isEntityType:()Z
            ifeq 10
         5: .line 753
            aload 2 /* type */
            checkcast org.hibernate.type.EntityType
            astore 3 /* entityType */
        start local 3 // org.hibernate.type.EntityType entityType
         6: .line 754
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 3 /* entityType */
            invokevirtual org.hibernate.type.EntityType.getAssociatedEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 4 /* persister */
        start local 4 // org.hibernate.persister.entity.EntityPersister persister
         7: .line 755
            aload 4 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasProxy:()Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals: org.hibernate.type.EntityType org.hibernate.persister.entity.EntityPersister
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 4 // org.hibernate.persister.entity.EntityPersister persister
        end local 3 // org.hibernate.type.EntityType entityType
        10: .line 758
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // org.hibernate.type.AssociationType type
        end local 1 // org.hibernate.FetchMode config
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/hibernate/loader/JoinWalker;
            0   11     1      config  Lorg/hibernate/FetchMode;
            0   11     2        type  Lorg/hibernate/type/AssociationType;
            6   10     3  entityType  Lorg/hibernate/type/EntityType;
            7   10     4   persister  Lorg/hibernate/persister/entity/EntityPersister;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
        Name  Flags
      config  
      type    

  protected boolean isJoinedFetchEnabled(org.hibernate.type.AssociationType, org.hibernate.FetchMode, org.hibernate.engine.spi.CascadeStyle);
    descriptor: (Lorg/hibernate/type/AssociationType;Lorg/hibernate/FetchMode;Lorg/hibernate/engine/spi/CascadeStyle;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.type.AssociationType type
        start local 2 // org.hibernate.FetchMode config
        start local 3 // org.hibernate.engine.spi.CascadeStyle cascadeStyle
         0: .line 768
            aload 1 /* type */
            invokeinterface org.hibernate.type.AssociationType.isEntityType:()Z
            ifeq 1
            aload 0 /* this */
            aload 2 /* config */
            aload 1 /* type */
            invokevirtual org.hibernate.loader.JoinWalker.isJoinedFetchEnabledInMapping:(Lorg/hibernate/FetchMode;Lorg/hibernate/type/AssociationType;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 3 // org.hibernate.engine.spi.CascadeStyle cascadeStyle
        end local 2 // org.hibernate.FetchMode config
        end local 1 // org.hibernate.type.AssociationType type
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/hibernate/loader/JoinWalker;
            0    2     1          type  Lorg/hibernate/type/AssociationType;
            0    2     2        config  Lorg/hibernate/FetchMode;
            0    2     3  cascadeStyle  Lorg/hibernate/engine/spi/CascadeStyle;
    MethodParameters:
              Name  Flags
      type          
      config        
      cascadeStyle  

  protected java.lang.String generateTableAlias(int, org.hibernate.loader.PropertyPath, org.hibernate.persister.entity.Joinable);
    descriptor: (ILorg/hibernate/loader/PropertyPath;Lorg/hibernate/persister/entity/Joinable;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // int n
        start local 2 // org.hibernate.loader.PropertyPath path
        start local 3 // org.hibernate.persister.entity.Joinable joinable
         0: .line 772
            aload 3 /* joinable */
            invokeinterface org.hibernate.persister.entity.Joinable.getName:()Ljava/lang/String;
            iload 1 /* n */
            invokestatic org.hibernate.internal.util.StringHelper.generateAlias:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 3 // org.hibernate.persister.entity.Joinable joinable
        end local 2 // org.hibernate.loader.PropertyPath path
        end local 1 // int n
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/hibernate/loader/JoinWalker;
            0    1     1         n  I
            0    1     2      path  Lorg/hibernate/loader/PropertyPath;
            0    1     3  joinable  Lorg/hibernate/persister/entity/Joinable;
    MethodParameters:
          Name  Flags
      n         final
      path      final
      joinable  final

  protected java.lang.String generateRootAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.lang.String description
         0: .line 776
            aload 1 /* description */
            iconst_0
            invokestatic org.hibernate.internal.util.StringHelper.generateAlias:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String description
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/loader/JoinWalker;
            0    1     1  description  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      description  final

  protected boolean isDuplicateAssociation(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.lang.String foreignKeyTable
        start local 2 // java.lang.String[] foreignKeyColumns
         0: .line 784
            new org.hibernate.loader.JoinWalker$AssociationKey
            dup
            aload 2 /* foreignKeyColumns */
            aload 1 /* foreignKeyTable */
            invokespecial org.hibernate.loader.JoinWalker$AssociationKey.<init>:([Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* associationKey */
        start local 3 // org.hibernate.loader.JoinWalker$AssociationKey associationKey
         1: .line 785
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.visitedAssociationKeys:Ljava/util/Set;
            aload 3 /* associationKey */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: org.hibernate.loader.JoinWalker$AssociationKey
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 3 // org.hibernate.loader.JoinWalker$AssociationKey associationKey
        end local 2 // java.lang.String[] foreignKeyColumns
        end local 1 // java.lang.String foreignKeyTable
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/hibernate/loader/JoinWalker;
            0    4     1    foreignKeyTable  Ljava/lang/String;
            0    4     2  foreignKeyColumns  [Ljava/lang/String;
            1    4     3     associationKey  Lorg/hibernate/loader/JoinWalker$AssociationKey;
    MethodParameters:
                   Name  Flags
      foreignKeyTable    final
      foreignKeyColumns  final

  protected boolean isDuplicateAssociation(java.lang.String, java.lang.String[], org.hibernate.type.AssociationType);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/type/AssociationType;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.lang.String lhsTable
        start local 2 // java.lang.String[] lhsColumnNames
        start local 3 // org.hibernate.type.AssociationType type
         0: .line 795
            aload 3 /* type */
            invokeinterface org.hibernate.type.AssociationType.getForeignKeyDirection:()Lorg/hibernate/type/ForeignKeyDirection;
            getstatic org.hibernate.type.ForeignKeyDirection.FOREIGN_KEY_FROM_PARENT:Lorg/hibernate/type/ForeignKeyDirection;
            if_acmpne 4
         1: .line 796
            aload 1 /* lhsTable */
            astore 4 /* foreignKeyTable */
        start local 4 // java.lang.String foreignKeyTable
         2: .line 797
            aload 2 /* lhsColumnNames */
            astore 5 /* foreignKeyColumns */
        start local 5 // java.lang.String[] foreignKeyColumns
         3: .line 798
            goto 6
        end local 5 // java.lang.String[] foreignKeyColumns
        end local 4 // java.lang.String foreignKeyTable
         4: .line 800
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.AssociationType.getAssociatedJoinable:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/entity/Joinable;
            invokeinterface org.hibernate.persister.entity.Joinable.getTableName:()Ljava/lang/String;
            astore 4 /* foreignKeyTable */
        start local 4 // java.lang.String foreignKeyTable
         5: .line 801
            aload 3 /* type */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.engine.internal.JoinHelper.getRHSColumnNames:(Lorg/hibernate/type/AssociationType;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)[Ljava/lang/String;
            astore 5 /* foreignKeyColumns */
        start local 5 // java.lang.String[] foreignKeyColumns
         6: .line 803
      StackMap locals: java.lang.String java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            aload 4 /* foreignKeyTable */
            aload 5 /* foreignKeyColumns */
            invokevirtual org.hibernate.loader.JoinWalker.isDuplicateAssociation:(Ljava/lang/String;[Ljava/lang/String;)Z
            ireturn
        end local 5 // java.lang.String[] foreignKeyColumns
        end local 4 // java.lang.String foreignKeyTable
        end local 3 // org.hibernate.type.AssociationType type
        end local 2 // java.lang.String[] lhsColumnNames
        end local 1 // java.lang.String lhsTable
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/hibernate/loader/JoinWalker;
            0    7     1           lhsTable  Ljava/lang/String;
            0    7     2     lhsColumnNames  [Ljava/lang/String;
            0    7     3               type  Lorg/hibernate/type/AssociationType;
            2    4     4    foreignKeyTable  Ljava/lang/String;
            5    7     4    foreignKeyTable  Ljava/lang/String;
            3    4     5  foreignKeyColumns  [Ljava/lang/String;
            6    7     5  foreignKeyColumns  [Ljava/lang/String;
    MethodParameters:
                Name  Flags
      lhsTable        final
      lhsColumnNames  final
      type            final

  protected boolean isJoinable(org.hibernate.sql.JoinType, java.util.Set, java.lang.String, java.lang.String[], org.hibernate.type.AssociationType, int);
    descriptor: (Lorg/hibernate/sql/JoinType;Ljava/util/Set;Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/type/AssociationType;I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=7
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // org.hibernate.sql.JoinType joinType
        start local 2 // java.util.Set visitedAssociationKeys
        start local 3 // java.lang.String lhsTable
        start local 4 // java.lang.String[] lhsColumnNames
        start local 5 // org.hibernate.type.AssociationType type
        start local 6 // int depth
         0: .line 839
            aload 1 /* joinType */
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            if_acmpne 2
         1: .line 840
            iconst_0
            ireturn
         2: .line 843
      StackMap locals:
      StackMap stack:
            aload 1 /* joinType */
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
            if_acmpne 4
         3: .line 844
            iconst_1
            ireturn
         4: .line 847
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.getMaximumFetchDepth:()Ljava/lang/Integer;
            astore 7 /* maxFetchDepth */
        start local 7 // java.lang.Integer maxFetchDepth
         5: .line 848
            aload 7 /* maxFetchDepth */
            ifnull 6
            iload 6 /* depth */
            aload 7 /* maxFetchDepth */
            invokevirtual java.lang.Integer.intValue:()I
            if_icmplt 6
            iconst_1
            goto 7
      StackMap locals: java.lang.Integer
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 8 /* tooDeep */
        start local 8 // boolean tooDeep
         8: .line 850
            iload 8 /* tooDeep */
            ifne 9
            aload 0 /* this */
            aload 3 /* lhsTable */
            aload 4 /* lhsColumnNames */
            aload 5 /* type */
            invokevirtual org.hibernate.loader.JoinWalker.isDuplicateAssociation:(Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/type/AssociationType;)Z
            ifne 9
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         9: iconst_0
            ireturn
        end local 8 // boolean tooDeep
        end local 7 // java.lang.Integer maxFetchDepth
        end local 6 // int depth
        end local 5 // org.hibernate.type.AssociationType type
        end local 4 // java.lang.String[] lhsColumnNames
        end local 3 // java.lang.String lhsTable
        end local 2 // java.util.Set visitedAssociationKeys
        end local 1 // org.hibernate.sql.JoinType joinType
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   10     0                    this  Lorg/hibernate/loader/JoinWalker;
            0   10     1                joinType  Lorg/hibernate/sql/JoinType;
            0   10     2  visitedAssociationKeys  Ljava/util/Set;
            0   10     3                lhsTable  Ljava/lang/String;
            0   10     4          lhsColumnNames  [Ljava/lang/String;
            0   10     5                    type  Lorg/hibernate/type/AssociationType;
            0   10     6                   depth  I
            5   10     7           maxFetchDepth  Ljava/lang/Integer;
            8   10     8                 tooDeep  Z
    MethodParameters:
                        Name  Flags
      joinType                final
      visitedAssociationKeys  final
      lhsTable                final
      lhsColumnNames          final
      type                    final
      depth                   final

  protected java.lang.String orderBy(java.util.List, java.lang.String);
    descriptor: (Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.util.List associations
        start local 2 // java.lang.String orderBy
         0: .line 854
            aload 1 /* associations */
            invokestatic org.hibernate.loader.JoinWalker.orderBy:(Ljava/util/List;)Ljava/lang/String;
            aload 2 /* orderBy */
            invokestatic org.hibernate.loader.JoinWalker.mergeOrderings:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String orderBy
        end local 1 // java.util.List associations
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/loader/JoinWalker;
            0    1     1  associations  Ljava/util/List;
            0    1     2       orderBy  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      associations  final
      orderBy       final

  protected static java.lang.String mergeOrderings(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String ordering1
        start local 1 // java.lang.String ordering2
         0: .line 858
            aload 0 /* ordering1 */
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 859
            aload 1 /* ordering2 */
            areturn
         2: .line 861
      StackMap locals:
      StackMap stack:
            aload 1 /* ordering2 */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 862
            aload 0 /* ordering1 */
            areturn
         4: .line 865
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* ordering1 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ordering2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String ordering2
        end local 0 // java.lang.String ordering1
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0  ordering1  Ljava/lang/String;
            0    5     1  ordering2  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      ordering1  
      ordering2  

  protected final org.hibernate.sql.JoinFragment mergeOuterJoins(java.util.List);
    descriptor: (Ljava/util/List;)Lorg/hibernate/sql/JoinFragment;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.util.List associations
         0: .line 874
            aload 0 /* this */
            invokevirtual org.hibernate.loader.JoinWalker.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.dialect.Dialect.createOuterJoinFragment:()Lorg/hibernate/sql/JoinFragment;
            astore 2 /* outerjoin */
        start local 2 // org.hibernate.sql.JoinFragment outerjoin
         1: .line 875
            aload 1 /* associations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         2: .line 876
            aconst_null
            astore 4 /* last */
        start local 4 // org.hibernate.loader.OuterJoinableAssociation last
         3: .line 877
            goto 10
         4: .line 878
      StackMap locals: org.hibernate.sql.JoinFragment java.util.Iterator org.hibernate.loader.OuterJoinableAssociation
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.loader.OuterJoinableAssociation
            astore 5 /* oj */
        start local 5 // org.hibernate.loader.OuterJoinableAssociation oj
         5: .line 879
            aload 4 /* last */
            ifnull 8
            aload 4 /* last */
            aload 5 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.isManyToManyWith:(Lorg/hibernate/loader/OuterJoinableAssociation;)Z
            ifeq 8
         6: .line 880
            aload 5 /* oj */
            aload 2 /* outerjoin */
            aload 4 /* last */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            checkcast org.hibernate.persister.collection.QueryableCollection
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.addManyToManyJoin:(Lorg/hibernate/sql/JoinFragment;Lorg/hibernate/persister/collection/QueryableCollection;)V
         7: .line 881
            goto 9
         8: .line 883
      StackMap locals: org.hibernate.loader.OuterJoinableAssociation
      StackMap stack:
            aload 5 /* oj */
            aload 2 /* outerjoin */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.addJoins:(Lorg/hibernate/sql/JoinFragment;)V
         9: .line 885
      StackMap locals:
      StackMap stack:
            aload 5 /* oj */
            astore 4 /* last */
        end local 5 // org.hibernate.loader.OuterJoinableAssociation oj
        10: .line 877
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        11: .line 887
            aconst_null
            astore 4 /* last */
        12: .line 888
            aload 2 /* outerjoin */
            areturn
        end local 4 // org.hibernate.loader.OuterJoinableAssociation last
        end local 3 // java.util.Iterator iter
        end local 2 // org.hibernate.sql.JoinFragment outerjoin
        end local 1 // java.util.List associations
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/hibernate/loader/JoinWalker;
            0   13     1  associations  Ljava/util/List;
            1   13     2     outerjoin  Lorg/hibernate/sql/JoinFragment;
            2   13     3          iter  Ljava/util/Iterator;
            3   13     4          last  Lorg/hibernate/loader/OuterJoinableAssociation;
            5   10     5            oj  Lorg/hibernate/loader/OuterJoinableAssociation;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      associations  

  protected static final int countEntityPersisters(java.util.List);
    descriptor: (Ljava/util/List;)I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // java.util.List associations
         0: .line 897
            iconst_0
            istore 1 /* result */
        start local 1 // int result
         1: .line 898
            aload 0 /* associations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
         2: .line 899
            goto 6
         3: .line 900
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.loader.OuterJoinableAssociation
            astore 3 /* oj */
        start local 3 // org.hibernate.loader.OuterJoinableAssociation oj
         4: .line 901
            aload 3 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            invokeinterface org.hibernate.persister.entity.Joinable.consumesEntityAlias:()Z
            ifeq 6
         5: .line 902
            iinc 1 /* result */ 1
        end local 3 // org.hibernate.loader.OuterJoinableAssociation oj
         6: .line 899
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 905
            iload 1 /* result */
            ireturn
        end local 2 // java.util.Iterator iter
        end local 1 // int result
        end local 0 // java.util.List associations
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0  associations  Ljava/util/List;
            1    8     1        result  I
            2    8     2          iter  Ljava/util/Iterator;
            4    6     3            oj  Lorg/hibernate/loader/OuterJoinableAssociation;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      associations  

  protected static final int countCollectionPersisters(java.util.List);
    descriptor: (Ljava/util/List;)I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.util.List associations
         0: .line 915
            iconst_0
            istore 1 /* result */
        start local 1 // int result
         1: .line 916
            aload 0 /* associations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
         2: .line 917
            goto 8
         3: .line 918
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.loader.OuterJoinableAssociation
            astore 3 /* oj */
        start local 3 // org.hibernate.loader.OuterJoinableAssociation oj
         4: .line 919
            aload 3 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinType:()Lorg/hibernate/sql/JoinType;
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            if_acmpne 8
         5: .line 920
            aload 3 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            invokeinterface org.hibernate.persister.entity.Joinable.isCollection:()Z
            ifeq 8
         6: .line 921
            aload 3 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.hasRestriction:()Z
            ifne 8
         7: .line 922
            iinc 1 /* result */ 1
        end local 3 // org.hibernate.loader.OuterJoinableAssociation oj
         8: .line 917
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 925
            iload 1 /* result */
            ireturn
        end local 2 // java.util.Iterator iter
        end local 1 // int result
        end local 0 // java.util.List associations
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0  associations  Ljava/util/List;
            1   10     1        result  I
            2   10     2          iter  Ljava/util/Iterator;
            4    8     3            oj  Lorg/hibernate/loader/OuterJoinableAssociation;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      associations  

  protected static final java.lang.String orderBy(java.util.List);
    descriptor: (Ljava/util/List;)Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.util.List associations
         0: .line 933
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         1: .line 934
            aload 0 /* associations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
         2: .line 935
            aconst_null
            astore 3 /* last */
        start local 3 // org.hibernate.loader.OuterJoinableAssociation last
         3: .line 936
            goto 19
         4: .line 937
      StackMap locals: java.lang.StringBuilder java.util.Iterator org.hibernate.loader.OuterJoinableAssociation
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.loader.OuterJoinableAssociation
            astore 4 /* oj */
        start local 4 // org.hibernate.loader.OuterJoinableAssociation oj
         5: .line 938
            aload 4 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinType:()Lorg/hibernate/sql/JoinType;
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            if_acmpne 18
         6: .line 939
            aload 4 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            invokeinterface org.hibernate.persister.entity.Joinable.isCollection:()Z
            ifeq 12
         7: .line 940
            aload 4 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            checkcast org.hibernate.persister.collection.QueryableCollection
            astore 5 /* queryableCollection */
        start local 5 // org.hibernate.persister.collection.QueryableCollection queryableCollection
         8: .line 941
            aload 5 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.hasOrdering:()Z
            ifeq 18
         9: .line 942
            aload 5 /* queryableCollection */
            aload 4 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getRHSAlias:()Ljava/lang/String;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getSQLOrderByString:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* orderByString */
        start local 6 // java.lang.String orderByString
        10: .line 943
            aload 1 /* buf */
            aload 6 /* orderByString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // java.lang.String orderByString
        end local 5 // org.hibernate.persister.collection.QueryableCollection queryableCollection
        11: .line 945
            goto 18
        12: .line 949
      StackMap locals: org.hibernate.loader.OuterJoinableAssociation
      StackMap stack:
            aload 3 /* last */
            ifnull 18
            aload 3 /* last */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            invokeinterface org.hibernate.persister.entity.Joinable.isCollection:()Z
            ifeq 18
        13: .line 950
            aload 3 /* last */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            checkcast org.hibernate.persister.collection.QueryableCollection
            astore 5 /* queryableCollection */
        start local 5 // org.hibernate.persister.collection.QueryableCollection queryableCollection
        14: .line 951
            aload 5 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.isManyToMany:()Z
            ifeq 18
            aload 3 /* last */
            aload 4 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.isManyToManyWith:(Lorg/hibernate/loader/OuterJoinableAssociation;)Z
            ifeq 18
        15: .line 952
            aload 5 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.hasManyToManyOrdering:()Z
            ifeq 18
        16: .line 953
            aload 5 /* queryableCollection */
            aload 4 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getRHSAlias:()Ljava/lang/String;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getManyToManyOrderByString:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* orderByString */
        start local 6 // java.lang.String orderByString
        17: .line 954
            aload 1 /* buf */
            aload 6 /* orderByString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // java.lang.String orderByString
        end local 5 // org.hibernate.persister.collection.QueryableCollection queryableCollection
        18: .line 960
      StackMap locals:
      StackMap stack:
            aload 4 /* oj */
            astore 3 /* last */
        end local 4 // org.hibernate.loader.OuterJoinableAssociation oj
        19: .line 936
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        20: .line 962
            aload 1 /* buf */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 21
            aload 1 /* buf */
            aload 1 /* buf */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_2
            isub
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        21: .line 963
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // org.hibernate.loader.OuterJoinableAssociation last
        end local 2 // java.util.Iterator iter
        end local 1 // java.lang.StringBuilder buf
        end local 0 // java.util.List associations
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0         associations  Ljava/util/List;
            1   22     1                  buf  Ljava/lang/StringBuilder;
            2   22     2                 iter  Ljava/util/Iterator;
            3   22     3                 last  Lorg/hibernate/loader/OuterJoinableAssociation;
            5   19     4                   oj  Lorg/hibernate/loader/OuterJoinableAssociation;
            8   11     5  queryableCollection  Lorg/hibernate/persister/collection/QueryableCollection;
           10   11     6        orderByString  Ljava/lang/String;
           14   18     5  queryableCollection  Lorg/hibernate/persister/collection/QueryableCollection;
           17   18     6        orderByString  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      associations  

  protected java.lang.StringBuilder whereString(java.lang.String, java.lang.String[], int);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;I)Ljava/lang/StringBuilder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.lang.String alias
        start local 2 // java.lang.String[] columnNames
        start local 3 // int batchSize
         0: .line 970
            aload 2 /* columnNames */
            arraylength
            iconst_1
            if_icmpne 7
         1: .line 973
            new org.hibernate.sql.InFragment
            dup
            invokespecial org.hibernate.sql.InFragment.<init>:()V
            aload 1 /* alias */
            aload 2 /* columnNames */
            iconst_0
            aaload
            invokevirtual org.hibernate.sql.InFragment.setColumn:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/InFragment;
            astore 4 /* in */
        start local 4 // org.hibernate.sql.InFragment in
         2: .line 974
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 5
      StackMap locals: org.hibernate.sql.InFragment int
      StackMap stack:
         4: aload 4 /* in */
            ldc "?"
            invokevirtual org.hibernate.sql.InFragment.addValue:(Ljava/lang/Object;)Lorg/hibernate/sql/InFragment;
            pop
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 5 /* i */
            iload 3 /* batchSize */
            if_icmplt 4
        end local 5 // int i
         6: .line 975
            new java.lang.StringBuilder
            dup
            aload 4 /* in */
            invokevirtual org.hibernate.sql.InFragment.toFragmentString:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            areturn
        end local 4 // org.hibernate.sql.InFragment in
         7: .line 979
      StackMap locals:
      StackMap stack:
            new org.hibernate.sql.ConditionFragment
            dup
            invokespecial org.hibernate.sql.ConditionFragment.<init>:()V
         8: .line 980
            aload 1 /* alias */
            invokevirtual org.hibernate.sql.ConditionFragment.setTableAlias:(Ljava/lang/String;)Lorg/hibernate/sql/ConditionFragment;
         9: .line 981
            aload 2 /* columnNames */
            ldc "?"
            invokevirtual org.hibernate.sql.ConditionFragment.setCondition:([Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/ConditionFragment;
        10: .line 979
            astore 4 /* byId */
        start local 4 // org.hibernate.sql.ConditionFragment byId
        11: .line 983
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* whereString */
        start local 5 // java.lang.StringBuilder whereString
        12: .line 984
            iload 3 /* batchSize */
            iconst_1
            if_icmpne 15
        13: .line 986
            aload 5 /* whereString */
            aload 4 /* byId */
            invokevirtual org.hibernate.sql.ConditionFragment.toFragmentString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 987
            goto 24
        15: .line 990
      StackMap locals: org.hibernate.sql.ConditionFragment java.lang.StringBuilder
      StackMap stack:
            aload 5 /* whereString */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        16: .line 991
            new org.hibernate.sql.DisjunctionFragment
            dup
            invokespecial org.hibernate.sql.DisjunctionFragment.<init>:()V
            astore 6 /* df */
        start local 6 // org.hibernate.sql.DisjunctionFragment df
        17: .line 992
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        18: goto 21
        19: .line 993
      StackMap locals: org.hibernate.sql.DisjunctionFragment int
      StackMap stack:
            aload 6 /* df */
            aload 4 /* byId */
            invokevirtual org.hibernate.sql.DisjunctionFragment.addCondition:(Lorg/hibernate/sql/ConditionFragment;)Lorg/hibernate/sql/DisjunctionFragment;
            pop
        20: .line 992
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 7 /* i */
            iload 3 /* batchSize */
            if_icmplt 19
        end local 7 // int i
        22: .line 995
            aload 5 /* whereString */
            aload 6 /* df */
            invokevirtual org.hibernate.sql.DisjunctionFragment.toFragmentString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 996
            aload 5 /* whereString */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 6 // org.hibernate.sql.DisjunctionFragment df
        24: .line 998
      StackMap locals:
      StackMap stack:
            aload 5 /* whereString */
            areturn
        end local 5 // java.lang.StringBuilder whereString
        end local 4 // org.hibernate.sql.ConditionFragment byId
        end local 3 // int batchSize
        end local 2 // java.lang.String[] columnNames
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0         this  Lorg/hibernate/loader/JoinWalker;
            0   25     1        alias  Ljava/lang/String;
            0   25     2  columnNames  [Ljava/lang/String;
            0   25     3    batchSize  I
            2    7     4           in  Lorg/hibernate/sql/InFragment;
            3    6     5            i  I
           11   25     4         byId  Lorg/hibernate/sql/ConditionFragment;
           12   25     5  whereString  Ljava/lang/StringBuilder;
           17   24     6           df  Lorg/hibernate/sql/DisjunctionFragment;
           18   22     7            i  I
    MethodParameters:
             Name  Flags
      alias        
      columnNames  
      batchSize    

  protected void initPersisters(java.util.List, org.hibernate.LockMode);
    descriptor: (Ljava/util/List;Lorg/hibernate/LockMode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.util.List associations
        start local 2 // org.hibernate.LockMode lockMode
         0: .line 1004
            aload 0 /* this */
            aload 1 /* associations */
            new org.hibernate.LockOptions
            dup
            aload 2 /* lockMode */
            invokespecial org.hibernate.LockOptions.<init>:(Lorg/hibernate/LockMode;)V
            invokevirtual org.hibernate.loader.JoinWalker.initPersisters:(Ljava/util/List;Lorg/hibernate/LockOptions;)V
         1: .line 1005
            return
        end local 2 // org.hibernate.LockMode lockMode
        end local 1 // java.util.List associations
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  associations  Ljava/util/List;
            0    2     2      lockMode  Lorg/hibernate/LockMode;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      associations  final
      lockMode      final

  protected void initPersisters(java.util.List, org.hibernate.LockOptions);
    descriptor: (Ljava/util/List;Lorg/hibernate/LockOptions;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.util.List associations
        start local 2 // org.hibernate.LockOptions lockOptions
         0: .line 1016
            aload 0 /* this */
            aload 1 /* associations */
            aload 2 /* lockOptions */
            getstatic org.hibernate.loader.JoinWalker$AssociationInitCallback.NO_CALLBACK:Lorg/hibernate/loader/JoinWalker$AssociationInitCallback;
            invokevirtual org.hibernate.loader.JoinWalker.initPersisters:(Ljava/util/List;Lorg/hibernate/LockOptions;Lorg/hibernate/loader/JoinWalker$AssociationInitCallback;)V
         1: .line 1017
            return
        end local 2 // org.hibernate.LockOptions lockOptions
        end local 1 // java.util.List associations
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/hibernate/loader/JoinWalker;
            0    2     1  associations  Ljava/util/List;
            0    2     2   lockOptions  Lorg/hibernate/LockOptions;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      associations  final
      lockOptions   final

  protected void initPersisters(java.util.List, org.hibernate.LockOptions, org.hibernate.loader.JoinWalker$AssociationInitCallback);
    descriptor: (Ljava/util/List;Lorg/hibernate/LockOptions;Lorg/hibernate/loader/JoinWalker$AssociationInitCallback;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.util.List associations
        start local 2 // org.hibernate.LockOptions lockOptions
        start local 3 // org.hibernate.loader.JoinWalker$AssociationInitCallback callback
         0: .line 1023
            aload 1 /* associations */
            invokestatic org.hibernate.loader.JoinWalker.countEntityPersisters:(Ljava/util/List;)I
            istore 4 /* joins */
        start local 4 // int joins
         1: .line 1024
            aload 1 /* associations */
            invokestatic org.hibernate.loader.JoinWalker.countCollectionPersisters:(Ljava/util/List;)I
            istore 5 /* collections */
        start local 5 // int collections
         2: .line 1026
            aload 0 /* this */
            iload 5 /* collections */
            ifne 3
            aconst_null
            goto 4
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List org.hibernate.LockOptions org.hibernate.loader.JoinWalker$AssociationInitCallback int int
      StackMap stack: org.hibernate.loader.JoinWalker
         3: iload 5 /* collections */
            newarray 10
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List org.hibernate.LockOptions org.hibernate.loader.JoinWalker$AssociationInitCallback int int
      StackMap stack: org.hibernate.loader.JoinWalker int[]
         4: putfield org.hibernate.loader.JoinWalker.collectionOwners:[I
         5: .line 1027
            aload 0 /* this */
            iload 5 /* collections */
            ifne 6
            aconst_null
            goto 7
      StackMap locals:
      StackMap stack: org.hibernate.loader.JoinWalker
         6: iload 5 /* collections */
            anewarray org.hibernate.persister.collection.CollectionPersister
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List org.hibernate.LockOptions org.hibernate.loader.JoinWalker$AssociationInitCallback int int
      StackMap stack: org.hibernate.loader.JoinWalker org.hibernate.persister.collection.CollectionPersister[]
         7: putfield org.hibernate.loader.JoinWalker.collectionPersisters:[Lorg/hibernate/persister/collection/CollectionPersister;
         8: .line 1028
            aload 0 /* this */
            iload 4 /* joins */
            iconst_1
            iadd
            iload 5 /* collections */
            invokestatic org.hibernate.loader.BasicLoader.generateSuffixes:(II)[Ljava/lang/String;
            putfield org.hibernate.loader.JoinWalker.collectionSuffixes:[Ljava/lang/String;
         9: .line 1030
            aload 0 /* this */
            aload 2 /* lockOptions */
            putfield org.hibernate.loader.JoinWalker.lockOptions:Lorg/hibernate/LockOptions;
        10: .line 1032
            aload 0 /* this */
            iload 4 /* joins */
            anewarray org.hibernate.persister.entity.Loadable
            putfield org.hibernate.loader.JoinWalker.persisters:[Lorg/hibernate/persister/entity/Loadable;
        11: .line 1033
            aload 0 /* this */
            iload 4 /* joins */
            anewarray java.lang.String
            putfield org.hibernate.loader.JoinWalker.aliases:[Ljava/lang/String;
        12: .line 1034
            aload 0 /* this */
            iload 4 /* joins */
            newarray 10
            putfield org.hibernate.loader.JoinWalker.owners:[I
        13: .line 1035
            aload 0 /* this */
            iload 4 /* joins */
            anewarray org.hibernate.type.EntityType
            putfield org.hibernate.loader.JoinWalker.ownerAssociationTypes:[Lorg/hibernate/type/EntityType;
        14: .line 1036
            aload 0 /* this */
            aload 2 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            iload 4 /* joins */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.fillArray:(Lorg/hibernate/LockMode;I)[Lorg/hibernate/LockMode;
            putfield org.hibernate.loader.JoinWalker.lockModeArray:[Lorg/hibernate/LockMode;
        15: .line 1038
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        16: .line 1039
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        17: .line 1040
            aload 1 /* associations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* iter */
        start local 8 // java.util.Iterator iter
        18: .line 1041
            goto 38
        19: .line 1042
      StackMap locals: int int java.util.Iterator
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.loader.OuterJoinableAssociation
            astore 9 /* oj */
        start local 9 // org.hibernate.loader.OuterJoinableAssociation oj
        20: .line 1043
            aload 9 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.isCollection:()Z
            ifne 28
        21: .line 1045
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.persisters:[Lorg/hibernate/persister/entity/Loadable;
            iload 6 /* i */
            aload 9 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            checkcast org.hibernate.persister.entity.Loadable
            aastore
        22: .line 1046
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.aliases:[Ljava/lang/String;
            iload 6 /* i */
            aload 9 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getRHSAlias:()Ljava/lang/String;
            aastore
        23: .line 1047
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.owners:[I
            iload 6 /* i */
            aload 9 /* oj */
            aload 1 /* associations */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getOwner:(Ljava/util/List;)I
            iastore
        24: .line 1048
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.ownerAssociationTypes:[Lorg/hibernate/type/EntityType;
            iload 6 /* i */
            aload 9 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinableType:()Lorg/hibernate/type/AssociationType;
            checkcast org.hibernate.type.EntityType
            aastore
        25: .line 1049
            aload 3 /* callback */
            aload 9 /* oj */
            iload 6 /* i */
            invokeinterface org.hibernate.loader.JoinWalker$AssociationInitCallback.associationProcessed:(Lorg/hibernate/loader/OuterJoinableAssociation;I)V
        26: .line 1050
            iinc 6 /* i */ 1
        27: .line 1052
            goto 38
        28: .line 1055
      StackMap locals: org.hibernate.loader.OuterJoinableAssociation
      StackMap stack:
            aload 9 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            checkcast org.hibernate.persister.collection.QueryableCollection
            astore 10 /* collPersister */
        start local 10 // org.hibernate.persister.collection.QueryableCollection collPersister
        29: .line 1056
            aload 9 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinType:()Lorg/hibernate/sql/JoinType;
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            if_acmpne 33
            aload 9 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.hasRestriction:()Z
            ifne 33
        30: .line 1058
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionPersisters:[Lorg/hibernate/persister/collection/CollectionPersister;
            iload 7 /* j */
            aload 10 /* collPersister */
            aastore
        31: .line 1059
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionOwners:[I
            iload 7 /* j */
            aload 9 /* oj */
            aload 1 /* associations */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getOwner:(Ljava/util/List;)I
            iastore
        32: .line 1060
            iinc 7 /* j */ 1
        33: .line 1063
      StackMap locals: org.hibernate.persister.collection.QueryableCollection
      StackMap stack:
            aload 10 /* collPersister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.isOneToMany:()Z
            ifeq 38
        34: .line 1064
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.persisters:[Lorg/hibernate/persister/entity/Loadable;
            iload 6 /* i */
            aload 10 /* collPersister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Loadable
            aastore
        35: .line 1065
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.aliases:[Ljava/lang/String;
            iload 6 /* i */
            aload 9 /* oj */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getRHSAlias:()Ljava/lang/String;
            aastore
        36: .line 1066
            aload 3 /* callback */
            aload 9 /* oj */
            iload 6 /* i */
            invokeinterface org.hibernate.loader.JoinWalker$AssociationInitCallback.associationProcessed:(Lorg/hibernate/loader/OuterJoinableAssociation;I)V
        37: .line 1067
            iinc 6 /* i */ 1
        end local 10 // org.hibernate.persister.collection.QueryableCollection collPersister
        end local 9 // org.hibernate.loader.OuterJoinableAssociation oj
        38: .line 1041
      StackMap locals:
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        39: .line 1072
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.owners:[I
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.isAllNegative:([I)Z
            ifeq 40
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.loader.JoinWalker.owners:[I
        40: .line 1073
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionOwners:[I
            ifnull 42
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionOwners:[I
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.isAllNegative:([I)Z
            ifeq 42
        41: .line 1074
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.loader.JoinWalker.collectionOwners:[I
        42: .line 1076
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.util.Iterator iter
        end local 7 // int j
        end local 6 // int i
        end local 5 // int collections
        end local 4 // int joins
        end local 3 // org.hibernate.loader.JoinWalker$AssociationInitCallback callback
        end local 2 // org.hibernate.LockOptions lockOptions
        end local 1 // java.util.List associations
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   43     0           this  Lorg/hibernate/loader/JoinWalker;
            0   43     1   associations  Ljava/util/List;
            0   43     2    lockOptions  Lorg/hibernate/LockOptions;
            0   43     3       callback  Lorg/hibernate/loader/JoinWalker$AssociationInitCallback;
            1   43     4          joins  I
            2   43     5    collections  I
           16   43     6              i  I
           17   43     7              j  I
           18   43     8           iter  Ljava/util/Iterator;
           20   38     9             oj  Lorg/hibernate/loader/OuterJoinableAssociation;
           29   38    10  collPersister  Lorg/hibernate/persister/collection/QueryableCollection;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      associations  final
      lockOptions   final
      callback      final

  protected final java.lang.String selectString(java.util.List);
    descriptor: (Ljava/util/List;)Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=8, locals=12, args_size=2
        start local 0 // org.hibernate.loader.JoinWalker this
        start local 1 // java.util.List associations
         0: .line 1084
            aload 1 /* associations */
            invokeinterface java.util.List.size:()I
            ifne 2
         1: .line 1085
            ldc ""
            areturn
         2: .line 1088
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* associations */
            invokeinterface java.util.List.size:()I
            bipush 100
            imul
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
         3: .line 1089
            iconst_0
            istore 3 /* entityAliasCount */
        start local 3 // int entityAliasCount
         4: .line 1090
            iconst_0
            istore 4 /* collectionAliasCount */
        start local 4 // int collectionAliasCount
         5: .line 1091
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 40
         7: .line 1092
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List java.lang.StringBuilder int int int
      StackMap stack:
            aload 1 /* associations */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.loader.OuterJoinableAssociation
            astore 6 /* join */
        start local 6 // org.hibernate.loader.OuterJoinableAssociation join
         8: .line 1093
            iload 5 /* i */
            aload 1 /* associations */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmpne 10
         9: .line 1094
            aconst_null
            goto 11
        10: .line 1095
      StackMap locals: org.hibernate.loader.OuterJoinableAssociation
      StackMap stack:
            aload 1 /* associations */
            iload 5 /* i */
            iconst_1
            iadd
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.loader.OuterJoinableAssociation
        11: .line 1093
      StackMap locals:
      StackMap stack: org.hibernate.loader.OuterJoinableAssociation
            astore 7 /* next */
        start local 7 // org.hibernate.loader.OuterJoinableAssociation next
        12: .line 1096
            aload 6 /* join */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            astore 8 /* joinable */
        start local 8 // org.hibernate.persister.entity.Joinable joinable
        13: .line 1097
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.suffixes:[Ljava/lang/String;
            ifnull 14
            iload 3 /* entityAliasCount */
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.suffixes:[Ljava/lang/String;
            arraylength
            if_icmplt 15
        14: .line 1098
      StackMap locals: org.hibernate.loader.OuterJoinableAssociation org.hibernate.persister.entity.Joinable
      StackMap stack:
            aconst_null
            goto 16
        15: .line 1099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.suffixes:[Ljava/lang/String;
            iload 3 /* entityAliasCount */
            aaload
        16: .line 1097
      StackMap locals:
      StackMap stack: java.lang.String
            astore 9 /* entitySuffix */
        start local 9 // java.lang.String entitySuffix
        17: .line 1100
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionSuffixes:[Ljava/lang/String;
            ifnull 18
            iload 4 /* collectionAliasCount */
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionSuffixes:[Ljava/lang/String;
            arraylength
            if_icmplt 19
        18: .line 1101
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            goto 20
        19: .line 1102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.loader.JoinWalker.collectionSuffixes:[Ljava/lang/String;
            iload 4 /* collectionAliasCount */
            aaload
        20: .line 1100
      StackMap locals:
      StackMap stack: java.lang.String
            astore 10 /* collectionSuffix */
        start local 10 // java.lang.String collectionSuffix
        21: .line 1103
            aload 8 /* joinable */
        22: .line 1104
            aload 7 /* next */
            ifnonnull 23
            aconst_null
            goto 24
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List java.lang.StringBuilder int int int org.hibernate.loader.OuterJoinableAssociation org.hibernate.loader.OuterJoinableAssociation org.hibernate.persister.entity.Joinable java.lang.String java.lang.String
      StackMap stack: org.hibernate.persister.entity.Joinable
        23: aload 7 /* next */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
        24: .line 1105
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List java.lang.StringBuilder int int int org.hibernate.loader.OuterJoinableAssociation org.hibernate.loader.OuterJoinableAssociation org.hibernate.persister.entity.Joinable java.lang.String java.lang.String
      StackMap stack: org.hibernate.persister.entity.Joinable org.hibernate.persister.entity.Joinable
            aload 7 /* next */
            ifnonnull 25
            aconst_null
            goto 26
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List java.lang.StringBuilder int int int org.hibernate.loader.OuterJoinableAssociation org.hibernate.loader.OuterJoinableAssociation org.hibernate.persister.entity.Joinable java.lang.String java.lang.String
      StackMap stack: org.hibernate.persister.entity.Joinable org.hibernate.persister.entity.Joinable
        25: aload 7 /* next */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getRHSAlias:()Ljava/lang/String;
        26: .line 1106
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List java.lang.StringBuilder int int int org.hibernate.loader.OuterJoinableAssociation org.hibernate.loader.OuterJoinableAssociation org.hibernate.persister.entity.Joinable java.lang.String java.lang.String
      StackMap stack: org.hibernate.persister.entity.Joinable org.hibernate.persister.entity.Joinable java.lang.String
            aload 6 /* join */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getRHSAlias:()Ljava/lang/String;
        27: .line 1107
            aload 9 /* entitySuffix */
        28: .line 1108
            aload 10 /* collectionSuffix */
        29: .line 1109
            aload 6 /* join */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinType:()Lorg/hibernate/sql/JoinType;
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            if_acmpne 30
            iconst_1
            goto 31
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List java.lang.StringBuilder int int int org.hibernate.loader.OuterJoinableAssociation org.hibernate.loader.OuterJoinableAssociation org.hibernate.persister.entity.Joinable java.lang.String java.lang.String
      StackMap stack: org.hibernate.persister.entity.Joinable org.hibernate.persister.entity.Joinable java.lang.String java.lang.String java.lang.String java.lang.String
        30: iconst_0
        31: .line 1103
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List java.lang.StringBuilder int int int org.hibernate.loader.OuterJoinableAssociation org.hibernate.loader.OuterJoinableAssociation org.hibernate.persister.entity.Joinable java.lang.String java.lang.String
      StackMap stack: org.hibernate.persister.entity.Joinable org.hibernate.persister.entity.Joinable java.lang.String java.lang.String java.lang.String java.lang.String int
            invokeinterface org.hibernate.persister.entity.Joinable.selectFragment:(Lorg/hibernate/persister/entity/Joinable;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
            astore 11 /* selectFragment */
        start local 11 // java.lang.String selectFragment
        32: .line 1111
            aload 11 /* selectFragment */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifle 34
        33: .line 1112
            aload 2 /* buf */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* selectFragment */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        34: .line 1114
      StackMap locals: java.lang.String
      StackMap stack:
            aload 8 /* joinable */
            invokeinterface org.hibernate.persister.entity.Joinable.consumesEntityAlias:()Z
            ifeq 35
            iinc 3 /* entityAliasCount */ 1
        35: .line 1115
      StackMap locals:
      StackMap stack:
            aload 8 /* joinable */
            invokeinterface org.hibernate.persister.entity.Joinable.consumesCollectionAlias:()Z
            ifeq 39
        36: .line 1116
            aload 6 /* join */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinType:()Lorg/hibernate/sql/JoinType;
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            if_acmpne 39
        37: .line 1117
            aload 6 /* join */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.hasRestriction:()Z
            ifne 39
        38: .line 1118
            iinc 4 /* collectionAliasCount */ 1
        end local 11 // java.lang.String selectFragment
        end local 10 // java.lang.String collectionSuffix
        end local 9 // java.lang.String entitySuffix
        end local 8 // org.hibernate.persister.entity.Joinable joinable
        end local 7 // org.hibernate.loader.OuterJoinableAssociation next
        end local 6 // org.hibernate.loader.OuterJoinableAssociation join
        39: .line 1091
      StackMap locals: org.hibernate.loader.JoinWalker java.util.List java.lang.StringBuilder int int int
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 5 /* i */
            aload 1 /* associations */
            invokeinterface java.util.List.size:()I
            if_icmplt 7
        end local 5 // int i
        41: .line 1121
            aload 2 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // int collectionAliasCount
        end local 3 // int entityAliasCount
        end local 2 // java.lang.StringBuilder buf
        end local 1 // java.util.List associations
        end local 0 // org.hibernate.loader.JoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   42     0                  this  Lorg/hibernate/loader/JoinWalker;
            0   42     1          associations  Ljava/util/List;
            3   42     2                   buf  Ljava/lang/StringBuilder;
            4   42     3      entityAliasCount  I
            5   42     4  collectionAliasCount  I
            6   41     5                     i  I
            8   39     6                  join  Lorg/hibernate/loader/OuterJoinableAssociation;
           12   39     7                  next  Lorg/hibernate/loader/OuterJoinableAssociation;
           13   39     8              joinable  Lorg/hibernate/persister/entity/Joinable;
           17   39     9          entitySuffix  Ljava/lang/String;
           21   39    10      collectionSuffix  Ljava/lang/String;
           32   39    11        selectFragment  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      associations  
}
SourceFile: "JoinWalker.java"
NestMembers:
  org.hibernate.loader.JoinWalker$AssociationInitCallback  org.hibernate.loader.JoinWalker$AssociationInitCallback$1  org.hibernate.loader.JoinWalker$AssociationKey
InnerClasses:
  protected abstract AssociationInitCallback = org.hibernate.loader.JoinWalker$AssociationInitCallback of org.hibernate.loader.JoinWalker
  private final AssociationKey = org.hibernate.loader.JoinWalker$AssociationKey of org.hibernate.loader.JoinWalker