public class org.hibernate.engine.internal.JoinSequence
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.engine.internal.JoinSequence
  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

  private final java.lang.StringBuilder conditions;
    descriptor: Ljava/lang/StringBuilder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<org.hibernate.engine.internal.JoinSequence$Join> joins;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/hibernate/engine/internal/JoinSequence$Join;>;

  private boolean useThetaStyle;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String rootAlias;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.persister.entity.Joinable rootJoinable;
    descriptor: Lorg/hibernate/persister/entity/Joinable;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.engine.internal.JoinSequence$Selector selector;
    descriptor: Lorg/hibernate/engine/internal/JoinSequence$Selector;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.engine.internal.JoinSequence next;
    descriptor: Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0002) ACC_PRIVATE

  private boolean isFromPart;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<java.lang.String> treatAsDeclarations;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  public void <init>(org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 72
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 57
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            putfield org.hibernate.engine.internal.JoinSequence.conditions:Ljava/lang/StringBuilder;
         2: .line 58
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.engine.internal.JoinSequence.joins:Ljava/util/List;
         3: .line 73
            aload 0 /* this */
            aload 1 /* factory */
            putfield org.hibernate.engine.internal.JoinSequence.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         4: .line 74
            return
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/hibernate/engine/internal/JoinSequence;
            0    5     1  factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    MethodParameters:
         Name  Flags
      factory  

  public org.hibernate.engine.internal.JoinSequence getFromPart();
    descriptor: ()Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.hibernate.engine.internal.JoinSequence this
         0: .line 82
            new org.hibernate.engine.internal.JoinSequence
            dup
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokespecial org.hibernate.engine.internal.JoinSequence.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            astore 1 /* fromPart */
        start local 1 // org.hibernate.engine.internal.JoinSequence fromPart
         1: .line 83
            aload 1 /* fromPart */
            getfield org.hibernate.engine.internal.JoinSequence.joins:Ljava/util/List;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.joins:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 84
            aload 1 /* fromPart */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.useThetaStyle:Z
            putfield org.hibernate.engine.internal.JoinSequence.useThetaStyle:Z
         3: .line 85
            aload 1 /* fromPart */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootAlias:Ljava/lang/String;
            putfield org.hibernate.engine.internal.JoinSequence.rootAlias:Ljava/lang/String;
         4: .line 86
            aload 1 /* fromPart */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
            putfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
         5: .line 87
            aload 1 /* fromPart */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.selector:Lorg/hibernate/engine/internal/JoinSequence$Selector;
            putfield org.hibernate.engine.internal.JoinSequence.selector:Lorg/hibernate/engine/internal/JoinSequence$Selector;
         6: .line 88
            aload 1 /* fromPart */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.next:Lorg/hibernate/engine/internal/JoinSequence;
            ifnonnull 7
            aconst_null
            goto 8
      StackMap locals: org.hibernate.engine.internal.JoinSequence org.hibernate.engine.internal.JoinSequence
      StackMap stack: org.hibernate.engine.internal.JoinSequence
         7: aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.next:Lorg/hibernate/engine/internal/JoinSequence;
            invokevirtual org.hibernate.engine.internal.JoinSequence.getFromPart:()Lorg/hibernate/engine/internal/JoinSequence;
      StackMap locals: org.hibernate.engine.internal.JoinSequence org.hibernate.engine.internal.JoinSequence
      StackMap stack: org.hibernate.engine.internal.JoinSequence org.hibernate.engine.internal.JoinSequence
         8: putfield org.hibernate.engine.internal.JoinSequence.next:Lorg/hibernate/engine/internal/JoinSequence;
         9: .line 89
            aload 1 /* fromPart */
            iconst_1
            putfield org.hibernate.engine.internal.JoinSequence.isFromPart:Z
        10: .line 90
            aload 1 /* fromPart */
            areturn
        end local 1 // org.hibernate.engine.internal.JoinSequence fromPart
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/hibernate/engine/internal/JoinSequence;
            1   11     1  fromPart  Lorg/hibernate/engine/internal/JoinSequence;

  public void applyTreatAsDeclarations(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // java.util.Set treatAsDeclarations
         0: .line 96
            aload 1 /* treatAsDeclarations */
            ifnull 1
            aload 1 /* treatAsDeclarations */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 2
         1: .line 97
      StackMap locals:
      StackMap stack:
            return
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.treatAsDeclarations:Ljava/util/Set;
            ifnonnull 4
         3: .line 101
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.engine.internal.JoinSequence.treatAsDeclarations:Ljava/util/Set;
         4: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.treatAsDeclarations:Ljava/util/Set;
            aload 1 /* treatAsDeclarations */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         5: .line 105
            return
        end local 1 // java.util.Set treatAsDeclarations
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lorg/hibernate/engine/internal/JoinSequence;
            0    6     1  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
                     Name  Flags
      treatAsDeclarations  

  public org.hibernate.engine.internal.JoinSequence copy();
    descriptor: ()Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.hibernate.engine.internal.JoinSequence this
         0: .line 114
            new org.hibernate.engine.internal.JoinSequence
            dup
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokespecial org.hibernate.engine.internal.JoinSequence.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            astore 1 /* copy */
        start local 1 // org.hibernate.engine.internal.JoinSequence copy
         1: .line 115
            aload 1 /* copy */
            getfield org.hibernate.engine.internal.JoinSequence.joins:Ljava/util/List;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.joins:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 116
            aload 1 /* copy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.useThetaStyle:Z
            putfield org.hibernate.engine.internal.JoinSequence.useThetaStyle:Z
         3: .line 117
            aload 1 /* copy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootAlias:Ljava/lang/String;
            putfield org.hibernate.engine.internal.JoinSequence.rootAlias:Ljava/lang/String;
         4: .line 118
            aload 1 /* copy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
            putfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
         5: .line 119
            aload 1 /* copy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.selector:Lorg/hibernate/engine/internal/JoinSequence$Selector;
            putfield org.hibernate.engine.internal.JoinSequence.selector:Lorg/hibernate/engine/internal/JoinSequence$Selector;
         6: .line 120
            aload 1 /* copy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.next:Lorg/hibernate/engine/internal/JoinSequence;
            ifnonnull 7
            aconst_null
            goto 8
      StackMap locals: org.hibernate.engine.internal.JoinSequence org.hibernate.engine.internal.JoinSequence
      StackMap stack: org.hibernate.engine.internal.JoinSequence
         7: aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.next:Lorg/hibernate/engine/internal/JoinSequence;
            invokevirtual org.hibernate.engine.internal.JoinSequence.copy:()Lorg/hibernate/engine/internal/JoinSequence;
      StackMap locals: org.hibernate.engine.internal.JoinSequence org.hibernate.engine.internal.JoinSequence
      StackMap stack: org.hibernate.engine.internal.JoinSequence org.hibernate.engine.internal.JoinSequence
         8: putfield org.hibernate.engine.internal.JoinSequence.next:Lorg/hibernate/engine/internal/JoinSequence;
         9: .line 121
            aload 1 /* copy */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.isFromPart:Z
            putfield org.hibernate.engine.internal.JoinSequence.isFromPart:Z
        10: .line 122
            aload 1 /* copy */
            getfield org.hibernate.engine.internal.JoinSequence.conditions:Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.conditions:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 123
            aload 1 /* copy */
            areturn
        end local 1 // org.hibernate.engine.internal.JoinSequence copy
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/hibernate/engine/internal/JoinSequence;
            1   12     1  copy  Lorg/hibernate/engine/internal/JoinSequence;

  public org.hibernate.engine.internal.JoinSequence addJoin(org.hibernate.type.AssociationType, java.lang.String, org.hibernate.sql.JoinType, java.lang.String[]);
    descriptor: (Lorg/hibernate/type/AssociationType;Ljava/lang/String;Lorg/hibernate/sql/JoinType;[Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // org.hibernate.type.AssociationType associationType
        start local 2 // java.lang.String alias
        start local 3 // org.hibernate.sql.JoinType joinType
        start local 4 // java.lang.String[] referencingKey
         0: .line 143
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.joins:Ljava/util/List;
            new org.hibernate.engine.internal.JoinSequence$Join
            dup
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* associationType */
            aload 2 /* alias */
            aload 3 /* joinType */
            aload 4 /* referencingKey */
            invokespecial org.hibernate.engine.internal.JoinSequence$Join.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/type/AssociationType;Ljava/lang/String;Lorg/hibernate/sql/JoinType;[Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 144
            aload 0 /* this */
            areturn
        end local 4 // java.lang.String[] referencingKey
        end local 3 // org.hibernate.sql.JoinType joinType
        end local 2 // java.lang.String alias
        end local 1 // org.hibernate.type.AssociationType associationType
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/hibernate/engine/internal/JoinSequence;
            0    2     1  associationType  Lorg/hibernate/type/AssociationType;
            0    2     2            alias  Ljava/lang/String;
            0    2     3         joinType  Lorg/hibernate/sql/JoinType;
            0    2     4   referencingKey  [Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                 Name  Flags
      associationType  
      alias            
      joinType         
      referencingKey   

  public org.hibernate.sql.JoinFragment toJoinFragment();
    descriptor: ()Lorg/hibernate/sql/JoinFragment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.engine.internal.JoinSequence this
         0: .line 155
            aload 0 /* this */
            getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
            iconst_1
            invokevirtual org.hibernate.engine.internal.JoinSequence.toJoinFragment:(Ljava/util/Map;Z)Lorg/hibernate/sql/JoinFragment;
            areturn
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/internal/JoinSequence;
    Exceptions:
      throws org.hibernate.MappingException

  public org.hibernate.sql.JoinFragment toJoinFragment(java.util.Map, boolean);
    descriptor: (Ljava/util/Map;Z)Lorg/hibernate/sql/JoinFragment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // java.util.Map enabledFilters
        start local 2 // boolean includeAllSubclassJoins
         0: .line 169
            aload 0 /* this */
            aload 1 /* enabledFilters */
            iload 2 /* includeAllSubclassJoins */
            aconst_null
            aconst_null
            invokevirtual org.hibernate.engine.internal.JoinSequence.toJoinFragment:(Ljava/util/Map;ZLjava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/JoinFragment;
            areturn
        end local 2 // boolean includeAllSubclassJoins
        end local 1 // java.util.Map enabledFilters
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lorg/hibernate/engine/internal/JoinSequence;
            0    1     1           enabledFilters  Ljava/util/Map;
            0    1     2  includeAllSubclassJoins  Z
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                         Name  Flags
      enabledFilters           
      includeAllSubclassJoins  

  public org.hibernate.sql.JoinFragment toJoinFragment(java.util.Map, boolean, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/Map;ZLjava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/JoinFragment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // java.util.Map enabledFilters
        start local 2 // boolean includeAllSubclassJoins
        start local 3 // java.lang.String withClauseFragment
        start local 4 // java.lang.String withClauseJoinAlias
         0: .line 189
            new org.hibernate.sql.QueryJoinFragment
            dup
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.useThetaStyle:Z
            invokespecial org.hibernate.sql.QueryJoinFragment.<init>:(Lorg/hibernate/dialect/Dialect;Z)V
            astore 5 /* joinFragment */
        start local 5 // org.hibernate.sql.QueryJoinFragment joinFragment
         1: .line 190
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
            ifnull 6
         2: .line 191
            aload 5 /* joinFragment */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
            invokeinterface org.hibernate.persister.entity.Joinable.getTableName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootAlias:Ljava/lang/String;
            invokevirtual org.hibernate.sql.QueryJoinFragment.addCrossJoin:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 192
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootAlias:Ljava/lang/String;
            aload 1 /* enabledFilters */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.treatAsDeclarations:Ljava/util/Set;
            invokeinterface org.hibernate.persister.entity.Joinable.filterFragment:(Ljava/lang/String;Ljava/util/Map;Ljava/util/Set;)Ljava/lang/String;
            astore 6 /* filterCondition */
        start local 6 // java.lang.String filterCondition
         4: .line 196
            aload 5 /* joinFragment */
            aload 5 /* joinFragment */
            aload 6 /* filterCondition */
            invokevirtual org.hibernate.sql.QueryJoinFragment.addCondition:(Ljava/lang/String;)Z
            invokevirtual org.hibernate.sql.QueryJoinFragment.setHasFilterCondition:(Z)V
         5: .line 197
            aload 0 /* this */
            aload 5 /* joinFragment */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootAlias:Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
            iconst_1
            iload 2 /* includeAllSubclassJoins */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.treatAsDeclarations:Ljava/util/Set;
            invokevirtual org.hibernate.engine.internal.JoinSequence.addSubclassJoins:(Lorg/hibernate/sql/JoinFragment;Ljava/lang/String;Lorg/hibernate/persister/entity/Joinable;ZZLjava/util/Set;)V
        end local 6 // java.lang.String filterCondition
         6: .line 200
      StackMap locals: org.hibernate.sql.QueryJoinFragment
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
            astore 6 /* last */
        start local 6 // org.hibernate.persister.entity.Joinable last
         7: .line 202
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.joins:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 44
      StackMap locals: org.hibernate.engine.internal.JoinSequence java.util.Map int java.lang.String java.lang.String org.hibernate.sql.QueryJoinFragment org.hibernate.persister.entity.Joinable top java.util.Iterator
      StackMap stack:
         8: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.engine.internal.JoinSequence$Join
            astore 7 /* join */
        start local 7 // org.hibernate.engine.internal.JoinSequence$Join join
         9: .line 208
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getAssociationType:()Lorg/hibernate/type/AssociationType;
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getAlias:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* enabledFilters */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.treatAsDeclarations:Ljava/util/Set;
            invokeinterface org.hibernate.type.AssociationType.getOnCondition:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljava/util/Map;Ljava/util/Set;)Ljava/lang/String;
            astore 9 /* on */
        start local 9 // java.lang.String on
        10: .line 210
            aload 6 /* last */
            ifnull 23
        11: .line 211
            aload 0 /* this */
            aload 6 /* last */
            invokevirtual org.hibernate.engine.internal.JoinSequence.isManyToManyRoot:(Lorg/hibernate/persister/entity/Joinable;)Z
            ifeq 23
        12: .line 212
            aload 6 /* last */
            checkcast org.hibernate.persister.collection.QueryableCollection
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getAssociationType:()Lorg/hibernate/type/AssociationType;
            if_acmpne 23
        13: .line 216
            aload 6 /* last */
            checkcast org.hibernate.persister.collection.QueryableCollection
        14: .line 217
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getAlias:()Ljava/lang/String;
        15: .line 218
            aload 1 /* enabledFilters */
        16: .line 216
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getManyToManyFilterFragment:(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
            astore 11 /* manyToManyFilter */
        start local 11 // java.lang.String manyToManyFilter
        17: .line 220
            ldc ""
            aload 11 /* manyToManyFilter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 221
            aload 9 /* on */
            goto 21
        19: .line 222
      StackMap locals: org.hibernate.engine.internal.JoinSequence java.util.Map int java.lang.String java.lang.String org.hibernate.sql.QueryJoinFragment org.hibernate.persister.entity.Joinable org.hibernate.engine.internal.JoinSequence$Join java.util.Iterator java.lang.String top java.lang.String
      StackMap stack:
            ldc ""
            aload 9 /* on */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
            aload 11 /* manyToManyFilter */
            goto 21
      StackMap locals:
      StackMap stack:
        20: new java.lang.StringBuilder
            dup
            aload 9 /* on */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* manyToManyFilter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 220
      StackMap locals:
      StackMap stack: java.lang.String
            astore 10 /* condition */
        end local 11 // java.lang.String manyToManyFilter
        start local 10 // java.lang.String condition
        22: .line 223
            goto 24
        end local 10 // java.lang.String condition
        23: .line 225
      StackMap locals: org.hibernate.engine.internal.JoinSequence java.util.Map int java.lang.String java.lang.String org.hibernate.sql.QueryJoinFragment org.hibernate.persister.entity.Joinable org.hibernate.engine.internal.JoinSequence$Join java.util.Iterator java.lang.String
      StackMap stack:
            aload 9 /* on */
            astore 10 /* condition */
        start local 10 // java.lang.String condition
        24: .line 228
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* withClauseFragment */
            ifnull 26
            aload 0 /* this */
            aload 7 /* join */
            getfield org.hibernate.engine.internal.JoinSequence$Join.joinable:Lorg/hibernate/persister/entity/Joinable;
            invokevirtual org.hibernate.engine.internal.JoinSequence.isManyToManyRoot:(Lorg/hibernate/persister/entity/Joinable;)Z
            ifne 26
        25: .line 229
            new java.lang.StringBuilder
            dup
            aload 10 /* condition */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* withClauseFragment */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* condition */
        26: .line 232
      StackMap locals:
      StackMap stack:
            aload 5 /* joinFragment */
        27: .line 233
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            invokeinterface org.hibernate.persister.entity.Joinable.getTableName:()Ljava/lang/String;
        28: .line 234
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getAlias:()Ljava/lang/String;
        29: .line 235
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getLHSColumns:()[Ljava/lang/String;
        30: .line 236
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getAssociationType:()Lorg/hibernate/type/AssociationType;
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.engine.internal.JoinHelper.getRHSColumnNames:(Lorg/hibernate/type/AssociationType;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)[Ljava/lang/String;
        31: .line 237
            aload 7 /* join */
            getfield org.hibernate.engine.internal.JoinSequence$Join.joinType:Lorg/hibernate/sql/JoinType;
        32: .line 238
            aload 10 /* condition */
        33: .line 232
            invokevirtual org.hibernate.sql.QueryJoinFragment.addJoin:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/sql/JoinType;Ljava/lang/String;)V
        34: .line 241
            aload 0 /* this */
        35: .line 242
            aload 5 /* joinFragment */
        36: .line 243
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getAlias:()Ljava/lang/String;
        37: .line 244
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
        38: .line 245
            aload 7 /* join */
            getfield org.hibernate.engine.internal.JoinSequence$Join.joinType:Lorg/hibernate/sql/JoinType;
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
            if_acmpne 39
            iconst_1
            goto 40
      StackMap locals: org.hibernate.engine.internal.JoinSequence java.util.Map int java.lang.String java.lang.String org.hibernate.sql.QueryJoinFragment org.hibernate.persister.entity.Joinable org.hibernate.engine.internal.JoinSequence$Join java.util.Iterator java.lang.String java.lang.String
      StackMap stack: org.hibernate.engine.internal.JoinSequence org.hibernate.sql.QueryJoinFragment java.lang.String org.hibernate.persister.entity.Joinable
        39: iconst_0
        40: .line 246
      StackMap locals: org.hibernate.engine.internal.JoinSequence java.util.Map int java.lang.String java.lang.String org.hibernate.sql.QueryJoinFragment org.hibernate.persister.entity.Joinable org.hibernate.engine.internal.JoinSequence$Join java.util.Iterator java.lang.String java.lang.String
      StackMap stack: org.hibernate.engine.internal.JoinSequence org.hibernate.sql.QueryJoinFragment java.lang.String org.hibernate.persister.entity.Joinable int
            iload 2 /* includeAllSubclassJoins */
        41: .line 249
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.treatAsDeclarations:Ljava/util/Set;
        42: .line 241
            invokevirtual org.hibernate.engine.internal.JoinSequence.addSubclassJoins:(Lorg/hibernate/sql/JoinFragment;Ljava/lang/String;Lorg/hibernate/persister/entity/Joinable;ZZLjava/util/Set;)V
        43: .line 251
            aload 7 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence$Join.getJoinable:()Lorg/hibernate/persister/entity/Joinable;
            astore 6 /* last */
        end local 10 // java.lang.String condition
        end local 9 // java.lang.String on
        end local 7 // org.hibernate.engine.internal.JoinSequence$Join join
        44: .line 202
      StackMap locals: org.hibernate.engine.internal.JoinSequence java.util.Map int java.lang.String java.lang.String org.hibernate.sql.QueryJoinFragment org.hibernate.persister.entity.Joinable top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        45: .line 254
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.next:Lorg/hibernate/engine/internal/JoinSequence;
            ifnull 47
        46: .line 255
            aload 5 /* joinFragment */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.next:Lorg/hibernate/engine/internal/JoinSequence;
            aload 1 /* enabledFilters */
            iload 2 /* includeAllSubclassJoins */
            invokevirtual org.hibernate.engine.internal.JoinSequence.toJoinFragment:(Ljava/util/Map;Z)Lorg/hibernate/sql/JoinFragment;
            invokevirtual org.hibernate.sql.QueryJoinFragment.addFragment:(Lorg/hibernate/sql/JoinFragment;)V
        47: .line 258
      StackMap locals: org.hibernate.engine.internal.JoinSequence java.util.Map int java.lang.String java.lang.String org.hibernate.sql.QueryJoinFragment org.hibernate.persister.entity.Joinable
      StackMap stack:
            aload 5 /* joinFragment */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.conditions:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.QueryJoinFragment.addCondition:(Ljava/lang/String;)Z
            pop
        48: .line 260
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.isFromPart:Z
            ifeq 50
        49: .line 261
            aload 5 /* joinFragment */
            invokevirtual org.hibernate.sql.QueryJoinFragment.clearWherePart:()V
        50: .line 264
      StackMap locals:
      StackMap stack:
            aload 5 /* joinFragment */
            areturn
        end local 6 // org.hibernate.persister.entity.Joinable last
        end local 5 // org.hibernate.sql.QueryJoinFragment joinFragment
        end local 4 // java.lang.String withClauseJoinAlias
        end local 3 // java.lang.String withClauseFragment
        end local 2 // boolean includeAllSubclassJoins
        end local 1 // java.util.Map enabledFilters
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   51     0                     this  Lorg/hibernate/engine/internal/JoinSequence;
            0   51     1           enabledFilters  Ljava/util/Map;
            0   51     2  includeAllSubclassJoins  Z
            0   51     3       withClauseFragment  Ljava/lang/String;
            0   51     4      withClauseJoinAlias  Ljava/lang/String;
            1   51     5             joinFragment  Lorg/hibernate/sql/QueryJoinFragment;
            4    6     6          filterCondition  Ljava/lang/String;
            7   51     6                     last  Lorg/hibernate/persister/entity/Joinable;
            9   44     7                     join  Lorg/hibernate/engine/internal/JoinSequence$Join;
           10   44     9                       on  Ljava/lang/String;
           22   23    10                condition  Ljava/lang/String;
           24   44    10                condition  Ljava/lang/String;
           17   22    11         manyToManyFilter  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                         Name  Flags
      enabledFilters           
      includeAllSubclassJoins  
      withClauseFragment       
      withClauseJoinAlias      

  private boolean isManyToManyRoot(org.hibernate.persister.entity.Joinable);
    descriptor: (Lorg/hibernate/persister/entity/Joinable;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // org.hibernate.persister.entity.Joinable joinable
         0: .line 269
            aload 1 /* joinable */
            ifnull 2
            aload 1 /* joinable */
            invokeinterface org.hibernate.persister.entity.Joinable.isCollection:()Z
            ifeq 2
         1: .line 270
            aload 1 /* joinable */
            checkcast org.hibernate.persister.collection.QueryableCollection
            invokeinterface org.hibernate.persister.collection.QueryableCollection.isManyToMany:()Z
            ireturn
         2: .line 272
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.hibernate.persister.entity.Joinable joinable
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/hibernate/engine/internal/JoinSequence;
            0    3     1  joinable  Lorg/hibernate/persister/entity/Joinable;
    MethodParameters:
          Name  Flags
      joinable  

  private void addSubclassJoins(org.hibernate.sql.JoinFragment, java.lang.String, org.hibernate.persister.entity.Joinable, boolean, boolean, java.util.Set<java.lang.String>);
    descriptor: (Lorg/hibernate/sql/JoinFragment;Ljava/lang/String;Lorg/hibernate/persister/entity/Joinable;ZZLjava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=7
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // org.hibernate.sql.JoinFragment joinFragment
        start local 2 // java.lang.String alias
        start local 3 // org.hibernate.persister.entity.Joinable joinable
        start local 4 // boolean innerJoin
        start local 5 // boolean includeSubclassJoins
        start local 6 // java.util.Set treatAsDeclarations
         0: .line 282
            iload 5 /* includeSubclassJoins */
            ifeq 1
            aload 0 /* this */
            aload 2 /* alias */
            invokevirtual org.hibernate.engine.internal.JoinSequence.isIncluded:(Ljava/lang/String;)Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 7 /* include */
        start local 7 // boolean include
         3: .line 283
            aload 1 /* joinFragment */
         4: .line 284
            aload 3 /* joinable */
            aload 2 /* alias */
            iload 4 /* innerJoin */
            iload 7 /* include */
            aload 6 /* treatAsDeclarations */
            invokeinterface org.hibernate.persister.entity.Joinable.fromJoinFragment:(Ljava/lang/String;ZZLjava/util/Set;)Ljava/lang/String;
         5: .line 285
            aload 3 /* joinable */
            aload 2 /* alias */
            iload 4 /* innerJoin */
            iload 7 /* include */
            aload 6 /* treatAsDeclarations */
            invokeinterface org.hibernate.persister.entity.Joinable.whereJoinFragment:(Ljava/lang/String;ZZLjava/util/Set;)Ljava/lang/String;
         6: .line 283
            invokevirtual org.hibernate.sql.JoinFragment.addJoins:(Ljava/lang/String;Ljava/lang/String;)V
         7: .line 287
            return
        end local 7 // boolean include
        end local 6 // java.util.Set treatAsDeclarations
        end local 5 // boolean includeSubclassJoins
        end local 4 // boolean innerJoin
        end local 3 // org.hibernate.persister.entity.Joinable joinable
        end local 2 // java.lang.String alias
        end local 1 // org.hibernate.sql.JoinFragment joinFragment
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    8     0                  this  Lorg/hibernate/engine/internal/JoinSequence;
            0    8     1          joinFragment  Lorg/hibernate/sql/JoinFragment;
            0    8     2                 alias  Ljava/lang/String;
            0    8     3              joinable  Lorg/hibernate/persister/entity/Joinable;
            0    8     4             innerJoin  Z
            0    8     5  includeSubclassJoins  Z
            0    8     6   treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
            3    8     7               include  Z
    Signature: (Lorg/hibernate/sql/JoinFragment;Ljava/lang/String;Lorg/hibernate/persister/entity/Joinable;ZZLjava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
                      Name  Flags
      joinFragment          
      alias                 
      joinable              
      innerJoin             
      includeSubclassJoins  
      treatAsDeclarations   

  private boolean isIncluded(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // java.lang.String alias
         0: .line 290
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.selector:Lorg/hibernate/engine/internal/JoinSequence$Selector;
            ifnull 1
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.selector:Lorg/hibernate/engine/internal/JoinSequence$Selector;
            aload 1 /* alias */
            invokeinterface org.hibernate.engine.internal.JoinSequence$Selector.includeSubclasses:(Ljava/lang/String;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/hibernate/engine/internal/JoinSequence;
            0    2     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  public org.hibernate.engine.internal.JoinSequence addCondition(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // java.lang.String condition
         0: .line 301
            aload 1 /* condition */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifeq 4
         1: .line 302
            aload 1 /* condition */
            ldc " and "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 303
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.conditions:Ljava/lang/StringBuilder;
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.conditions:Ljava/lang/StringBuilder;
            aload 1 /* condition */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String condition
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/hibernate/engine/internal/JoinSequence;
            0    5     1  condition  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      condition  

  public org.hibernate.engine.internal.JoinSequence addCondition(java.lang.String, java.lang.String[], java.lang.String);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=4
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // java.lang.String alias
        start local 2 // java.lang.String[] columns
        start local 3 // java.lang.String condition
         0: .line 327
            aload 2 /* columns */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 8
      StackMap locals: org.hibernate.engine.internal.JoinSequence java.lang.String java.lang.String[] java.lang.String top int int java.lang.String[]
      StackMap stack:
         1: aload 7
            iload 5
            aaload
            astore 4 /* column */
        start local 4 // java.lang.String column
         2: .line 328
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.conditions:Ljava/lang/StringBuilder;
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 329
            aload 1 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 330
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         5: .line 331
            aload 4 /* column */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 332
            aload 3 /* condition */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.String column
         7: .line 327
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 1
         9: .line 334
            aload 0 /* this */
            areturn
        end local 3 // java.lang.String condition
        end local 2 // java.lang.String[] columns
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/hibernate/engine/internal/JoinSequence;
            0   10     1      alias  Ljava/lang/String;
            0   10     2    columns  [Ljava/lang/String;
            0   10     3  condition  Ljava/lang/String;
            2    7     4     column  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      alias      
      columns    
      condition  

  public org.hibernate.engine.internal.JoinSequence setRoot(org.hibernate.persister.entity.Joinable, java.lang.String);
    descriptor: (Lorg/hibernate/persister/entity/Joinable;Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // org.hibernate.persister.entity.Joinable joinable
        start local 2 // java.lang.String alias
         0: .line 346
            aload 0 /* this */
            aload 2 /* alias */
            putfield org.hibernate.engine.internal.JoinSequence.rootAlias:Ljava/lang/String;
         1: .line 347
            aload 0 /* this */
            aload 1 /* joinable */
            putfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
         2: .line 348
            aload 0 /* this */
            areturn
        end local 2 // java.lang.String alias
        end local 1 // org.hibernate.persister.entity.Joinable joinable
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/hibernate/engine/internal/JoinSequence;
            0    3     1  joinable  Lorg/hibernate/persister/entity/Joinable;
            0    3     2     alias  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      joinable  
      alias     

  public org.hibernate.engine.internal.JoinSequence setNext(org.hibernate.engine.internal.JoinSequence);
    descriptor: (Lorg/hibernate/engine/internal/JoinSequence;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // org.hibernate.engine.internal.JoinSequence next
         0: .line 359
            aload 0 /* this */
            aload 1 /* next */
            putfield org.hibernate.engine.internal.JoinSequence.next:Lorg/hibernate/engine/internal/JoinSequence;
         1: .line 360
            aload 0 /* this */
            areturn
        end local 1 // org.hibernate.engine.internal.JoinSequence next
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/engine/internal/JoinSequence;
            0    2     1  next  Lorg/hibernate/engine/internal/JoinSequence;
    MethodParameters:
      Name  Flags
      next  

  public org.hibernate.engine.internal.JoinSequence setSelector(org.hibernate.engine.internal.JoinSequence$Selector);
    descriptor: (Lorg/hibernate/engine/internal/JoinSequence$Selector;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // org.hibernate.engine.internal.JoinSequence$Selector selector
         0: .line 371
            aload 0 /* this */
            aload 1 /* selector */
            putfield org.hibernate.engine.internal.JoinSequence.selector:Lorg/hibernate/engine/internal/JoinSequence$Selector;
         1: .line 372
            aload 0 /* this */
            areturn
        end local 1 // org.hibernate.engine.internal.JoinSequence$Selector selector
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/hibernate/engine/internal/JoinSequence;
            0    2     1  selector  Lorg/hibernate/engine/internal/JoinSequence$Selector;
    MethodParameters:
          Name  Flags
      selector  

  public org.hibernate.engine.internal.JoinSequence setUseThetaStyle(boolean);
    descriptor: (Z)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.internal.JoinSequence this
        start local 1 // boolean useThetaStyle
         0: .line 383
            aload 0 /* this */
            iload 1 /* useThetaStyle */
            putfield org.hibernate.engine.internal.JoinSequence.useThetaStyle:Z
         1: .line 384
            aload 0 /* this */
            areturn
        end local 1 // boolean useThetaStyle
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/hibernate/engine/internal/JoinSequence;
            0    2     1  useThetaStyle  Z
    MethodParameters:
               Name  Flags
      useThetaStyle  

  public boolean isThetaStyle();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.internal.JoinSequence this
         0: .line 388
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.useThetaStyle:Z
            ireturn
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/internal/JoinSequence;

  public org.hibernate.engine.internal.JoinSequence$Join getFirstJoin();
    descriptor: ()Lorg/hibernate/engine/internal/JoinSequence$Join;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.engine.internal.JoinSequence this
         0: .line 392
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.joins:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.engine.internal.JoinSequence$Join
            areturn
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/internal/JoinSequence;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.hibernate.engine.internal.JoinSequence this
         0: .line 460
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         1: .line 461
            aload 1 /* buf */
            ldc "JoinSequence{"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 462
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
            ifnull 7
         3: .line 463
            aload 1 /* buf */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootJoinable:Lorg/hibernate/persister/entity/Joinable;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 464
            bipush 91
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         5: .line 465
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.rootAlias:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 466
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 468
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.JoinSequence.joins:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: org.hibernate.engine.internal.JoinSequence java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         8: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.engine.internal.JoinSequence$Join
            astore 2 /* join */
        start local 2 // org.hibernate.engine.internal.JoinSequence$Join join
         9: .line 469
            aload 1 /* buf */
            ldc "->"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* join */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        end local 2 // org.hibernate.engine.internal.JoinSequence$Join join
        10: .line 468
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 471
            aload 1 /* buf */
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buf
        end local 0 // org.hibernate.engine.internal.JoinSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/hibernate/engine/internal/JoinSequence;
            1   12     1   buf  Ljava/lang/StringBuilder;
            9   10     2  join  Lorg/hibernate/engine/internal/JoinSequence$Join;
}
SourceFile: "JoinSequence.java"
NestMembers:
  org.hibernate.engine.internal.JoinSequence$Join  org.hibernate.engine.internal.JoinSequence$Selector
InnerClasses:
  public final Join = org.hibernate.engine.internal.JoinSequence$Join of org.hibernate.engine.internal.JoinSequence
  public abstract Selector = org.hibernate.engine.internal.JoinSequence$Selector of org.hibernate.engine.internal.JoinSequence