public class org.hibernate.loader.collection.BasicCollectionJoinWalker extends org.hibernate.loader.collection.CollectionJoinWalker
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.loader.collection.BasicCollectionJoinWalker
  super_class: org.hibernate.loader.collection.CollectionJoinWalker
{
  private final org.hibernate.persister.collection.QueryableCollection collectionPersister;
    descriptor: Lorg/hibernate/persister/collection/QueryableCollection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.hibernate.persister.collection.QueryableCollection, int, java.lang.String, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.LoadQueryInfluencers);
    descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;ILjava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=6
        start local 0 // org.hibernate.loader.collection.BasicCollectionJoinWalker this
        start local 1 // org.hibernate.persister.collection.QueryableCollection collectionPersister
        start local 2 // int batchSize
        start local 3 // java.lang.String subquery
        start local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 5 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
         0: .line 64
            aload 0 /* this */
            aload 4 /* factory */
            aload 5 /* loadQueryInfluencers */
            invokespecial org.hibernate.loader.collection.CollectionJoinWalker.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
         1: .line 66
            aload 0 /* this */
            aload 1 /* collectionPersister */
            putfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
         2: .line 68
            aload 0 /* this */
            aload 1 /* collectionPersister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getRole:()Ljava/lang/String;
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.generateRootAlias:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* alias */
        start local 6 // java.lang.String alias
         3: .line 70
            aload 0 /* this */
            aload 1 /* collectionPersister */
            aload 6 /* alias */
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.walkCollectionTree:(Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;)V
         4: .line 72
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* allAssociations */
        start local 7 // java.util.List allAssociations
         5: .line 73
            aload 7 /* allAssociations */
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.associations:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 74
            aload 7 /* allAssociations */
            aload 1 /* collectionPersister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getCollectionType:()Lorg/hibernate/type/CollectionType;
            aload 6 /* alias */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.loader.OuterJoinableAssociation.createRoot:(Lorg/hibernate/type/AssociationType;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/loader/OuterJoinableAssociation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 75
            aload 0 /* this */
            aload 7 /* allAssociations */
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.initPersisters:(Ljava/util/List;Lorg/hibernate/LockMode;)V
         8: .line 76
            aload 0 /* this */
            aload 6 /* alias */
            iload 2 /* batchSize */
            aload 3 /* subquery */
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.initStatementString:(Ljava/lang/String;ILjava/lang/String;)V
         9: .line 77
            return
        end local 7 // java.util.List allAssociations
        end local 6 // java.lang.String alias
        end local 5 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
        end local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 3 // java.lang.String subquery
        end local 2 // int batchSize
        end local 1 // org.hibernate.persister.collection.QueryableCollection collectionPersister
        end local 0 // org.hibernate.loader.collection.BasicCollectionJoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   10     0                  this  Lorg/hibernate/loader/collection/BasicCollectionJoinWalker;
            0   10     1   collectionPersister  Lorg/hibernate/persister/collection/QueryableCollection;
            0   10     2             batchSize  I
            0   10     3              subquery  Ljava/lang/String;
            0   10     4               factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   10     5  loadQueryInfluencers  Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            3   10     6                 alias  Ljava/lang/String;
            5   10     7       allAssociations  Ljava/util/List;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      collectionPersister   
      batchSize             
      subquery              
      factory               
      loadQueryInfluencers  

  private void initStatementString(java.lang.String, int, java.lang.String);
    descriptor: (Ljava/lang/String;ILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // org.hibernate.loader.collection.BasicCollectionJoinWalker this
        start local 1 // java.lang.String alias
        start local 2 // int batchSize
        start local 3 // java.lang.String subquery
         0: .line 84
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.associations:Ljava/util/List;
            invokestatic org.hibernate.loader.collection.BasicCollectionJoinWalker.countEntityPersisters:(Ljava/util/List;)I
            istore 4 /* joins */
        start local 4 // int joins
         1: .line 85
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.associations:Ljava/util/List;
            invokestatic org.hibernate.loader.collection.BasicCollectionJoinWalker.countCollectionPersisters:(Ljava/util/List;)I
            iconst_1
            iadd
            istore 5 /* collectionJoins */
        start local 5 // int collectionJoins
         2: .line 87
            aload 0 /* this */
            iload 4 /* joins */
            invokestatic org.hibernate.loader.BasicLoader.generateSuffixes:(I)[Ljava/lang/String;
            putfield org.hibernate.loader.collection.BasicCollectionJoinWalker.suffixes:[Ljava/lang/String;
         3: .line 88
            aload 0 /* this */
            iload 4 /* joins */
            iload 5 /* collectionJoins */
            invokestatic org.hibernate.loader.BasicLoader.generateSuffixes:(II)[Ljava/lang/String;
            putfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionSuffixes:[Ljava/lang/String;
         4: .line 90
            aload 0 /* this */
         5: .line 91
            aload 1 /* alias */
         6: .line 92
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getKeyColumnNames:()[Ljava/lang/String;
         7: .line 93
            aload 3 /* subquery */
         8: .line 94
            iload 2 /* batchSize */
         9: .line 90
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.whereString:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/StringBuilder;
            astore 6 /* whereString */
        start local 6 // java.lang.StringBuilder whereString
        10: .line 97
            ldc ""
            astore 7 /* manyToManyOrderBy */
        start local 7 // java.lang.String manyToManyOrderBy
        11: .line 98
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            aload 1 /* alias */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilters:()Ljava/util/Map;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.filterFragment:(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
            astore 8 /* filter */
        start local 8 // java.lang.String filter
        12: .line 99
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.isManyToMany:()Z
            ifeq 24
        13: .line 105
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.associations:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9 /* itr */
        start local 9 // java.util.Iterator itr
        14: .line 106
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.AssociationType
            astore 10 /* associationType */
        start local 10 // org.hibernate.type.AssociationType associationType
        15: .line 107
            goto 23
        16: .line 108
      StackMap locals: org.hibernate.loader.collection.BasicCollectionJoinWalker java.lang.String int java.lang.String int int java.lang.StringBuilder java.lang.String java.lang.String java.util.Iterator org.hibernate.type.AssociationType
      StackMap stack:
            aload 9 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.loader.OuterJoinableAssociation
            astore 11 /* oja */
        start local 11 // org.hibernate.loader.OuterJoinableAssociation oja
        17: .line 109
            aload 11 /* oja */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getJoinableType:()Lorg/hibernate/type/AssociationType;
            aload 10 /* associationType */
            if_acmpne 23
        18: .line 111
            new java.lang.StringBuilder
            dup
            aload 8 /* filter */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
        19: .line 112
            aload 11 /* oja */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getRHSAlias:()Ljava/lang/String;
        20: .line 113
            aload 0 /* this */
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilters:()Ljava/util/Map;
        21: .line 111
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getManyToManyFilterFragment:(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* filter */
        22: .line 115
            new java.lang.StringBuilder
            dup
            aload 7 /* manyToManyOrderBy */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            aload 11 /* oja */
            invokevirtual org.hibernate.loader.OuterJoinableAssociation.getRHSAlias:()Ljava/lang/String;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getManyToManyOrderByString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* manyToManyOrderBy */
        end local 11 // org.hibernate.loader.OuterJoinableAssociation oja
        23: .line 107
      StackMap locals:
      StackMap stack:
            aload 9 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        end local 10 // org.hibernate.type.AssociationType associationType
        end local 9 // java.util.Iterator itr
        24: .line 119
      StackMap locals:
      StackMap stack:
            aload 6 /* whereString */
            iconst_0
            aload 8 /* filter */
            invokestatic org.hibernate.internal.util.StringHelper.moveAndToBeginning:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 121
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.associations:Ljava/util/List;
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.mergeOuterJoins:(Ljava/util/List;)Lorg/hibernate/sql/JoinFragment;
            astore 9 /* ojf */
        start local 9 // org.hibernate.sql.JoinFragment ojf
        26: .line 122
            new org.hibernate.sql.Select
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Select.<init>:(Lorg/hibernate/dialect/Dialect;)V
        27: .line 124
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            aload 1 /* alias */
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionSuffixes:[Ljava/lang/String;
            iconst_0
            aaload
            invokeinterface org.hibernate.persister.collection.QueryableCollection.selectFragment:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        28: .line 125
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.associations:Ljava/util/List;
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.selectString:(Ljava/util/List;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        29: .line 124
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        30: .line 123
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        31: .line 127
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getTableName:()Ljava/lang/String;
            aload 1 /* alias */
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
        32: .line 128
            aload 6 /* whereString */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        33: .line 130
            aload 9 /* ojf */
            invokevirtual org.hibernate.sql.JoinFragment.toFromFragmentString:()Ljava/lang/String;
        34: .line 131
            aload 9 /* ojf */
            invokevirtual org.hibernate.sql.JoinFragment.toWhereFragmentString:()Ljava/lang/String;
        35: .line 129
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
        36: .line 122
            astore 10 /* select */
        start local 10 // org.hibernate.sql.Select select
        37: .line 134
            aload 10 /* select */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.associations:Ljava/util/List;
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            aload 1 /* alias */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getSQLOrderByString:(Ljava/lang/String;)Ljava/lang/String;
            aload 7 /* manyToManyOrderBy */
            invokestatic org.hibernate.loader.collection.BasicCollectionJoinWalker.mergeOrderings:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.orderBy:(Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setOrderByClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        38: .line 136
            aload 0 /* this */
            invokevirtual org.hibernate.loader.collection.BasicCollectionJoinWalker.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 40
        39: .line 137
            aload 10 /* select */
            new java.lang.StringBuilder
            dup
            ldc "load collection "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        40: .line 140
      StackMap locals: org.hibernate.sql.JoinFragment org.hibernate.sql.Select
      StackMap stack:
            aload 0 /* this */
            aload 10 /* select */
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
            putfield org.hibernate.loader.collection.BasicCollectionJoinWalker.sql:Ljava/lang/String;
        41: .line 141
            return
        end local 10 // org.hibernate.sql.Select select
        end local 9 // org.hibernate.sql.JoinFragment ojf
        end local 8 // java.lang.String filter
        end local 7 // java.lang.String manyToManyOrderBy
        end local 6 // java.lang.StringBuilder whereString
        end local 5 // int collectionJoins
        end local 4 // int joins
        end local 3 // java.lang.String subquery
        end local 2 // int batchSize
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.loader.collection.BasicCollectionJoinWalker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   42     0               this  Lorg/hibernate/loader/collection/BasicCollectionJoinWalker;
            0   42     1              alias  Ljava/lang/String;
            0   42     2          batchSize  I
            0   42     3           subquery  Ljava/lang/String;
            1   42     4              joins  I
            2   42     5    collectionJoins  I
           10   42     6        whereString  Ljava/lang/StringBuilder;
           11   42     7  manyToManyOrderBy  Ljava/lang/String;
           12   42     8             filter  Ljava/lang/String;
           14   24     9                itr  Ljava/util/Iterator;
           15   24    10    associationType  Lorg/hibernate/type/AssociationType;
           17   23    11                oja  Lorg/hibernate/loader/OuterJoinableAssociation;
           26   42     9                ojf  Lorg/hibernate/sql/JoinFragment;
           37   42    10             select  Lorg/hibernate/sql/Select;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
           Name  Flags
      alias      final
      batchSize  final
      subquery   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=11, locals=12, args_size=11
        start local 0 // org.hibernate.loader.collection.BasicCollectionJoinWalker 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 154
            aload 0 /* this */
         1: .line 155
            aload 1 /* persister */
         2: .line 156
            aload 2 /* path */
         3: .line 157
            iload 3 /* propertyNumber */
         4: .line 158
            aload 4 /* associationType */
         5: .line 159
            aload 5 /* metadataFetchMode */
         6: .line 160
            aload 6 /* metadataCascadeStyle */
         7: .line 161
            aload 7 /* lhsTable */
         8: .line 162
            aload 8 /* lhsColumns */
         9: .line 163
            iload 9 /* nullable */
        10: .line 164
            iload 10 /* currentDepth */
        11: .line 154
            invokespecial org.hibernate.loader.collection.CollectionJoinWalker.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 11 /* joinType */
        start local 11 // org.hibernate.sql.JoinType joinType
        12: .line 167
            aload 11 /* joinType */
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            if_acmpne 14
            aload 2 /* path */
            invokevirtual org.hibernate.loader.PropertyPath.isRoot:()Z
            ifeq 14
        13: .line 168
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
            astore 11 /* joinType */
        14: .line 170
      StackMap locals: org.hibernate.sql.JoinType
      StackMap stack:
            aload 11 /* joinType */
            areturn
        end local 11 // org.hibernate.sql.JoinType joinType
        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.collection.BasicCollectionJoinWalker this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   15     0                  this  Lorg/hibernate/loader/collection/BasicCollectionJoinWalker;
            0   15     1             persister  Lorg/hibernate/persister/entity/OuterJoinLoadable;
            0   15     2                  path  Lorg/hibernate/loader/PropertyPath;
            0   15     3        propertyNumber  I
            0   15     4       associationType  Lorg/hibernate/type/AssociationType;
            0   15     5     metadataFetchMode  Lorg/hibernate/FetchMode;
            0   15     6  metadataCascadeStyle  Lorg/hibernate/engine/spi/CascadeStyle;
            0   15     7              lhsTable  Ljava/lang/String;
            0   15     8            lhsColumns  [Ljava/lang/String;
            0   15     9              nullable  Z
            0   15    10          currentDepth  I
           12   15    11              joinType  Lorg/hibernate/sql/JoinType;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      persister             
      path                  
      propertyNumber        
      associationType       
      metadataFetchMode     
      metadataCascadeStyle  
      lhsTable              
      lhsColumns            
      nullable              
      currentDepth          

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.loader.collection.BasicCollectionJoinWalker this
         0: .line 174
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.loader.collection.BasicCollectionJoinWalker.collectionPersister:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.loader.collection.BasicCollectionJoinWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/collection/BasicCollectionJoinWalker;
}
SourceFile: "BasicCollectionJoinWalker.java"