public class org.hibernate.loader.entity.CollectionElementLoader extends org.hibernate.loader.OuterJoinLoader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.loader.entity.CollectionElementLoader
  super_class: org.hibernate.loader.OuterJoinLoader
{
  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.hibernate.persister.entity.OuterJoinLoadable persister;
    descriptor: Lorg/hibernate/persister/entity/OuterJoinLoadable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.type.Type keyType;
    descriptor: Lorg/hibernate/type/Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.type.Type indexType;
    descriptor: Lorg/hibernate/type/Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 36
            ldc Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 37
            ldc Lorg/hibernate/loader/entity/CollectionElementLoader;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         2: .line 35
            invokestatic org.jboss.logging.Logger.getMessageLogger:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.hibernate.internal.CoreMessageLogger
            putstatic org.hibernate.loader.entity.CollectionElementLoader.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         3: .line 38
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.hibernate.persister.collection.QueryableCollection, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.LoadQueryInfluencers);
    descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // org.hibernate.loader.entity.CollectionElementLoader this
        start local 1 // org.hibernate.persister.collection.QueryableCollection collectionPersister
        start local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 3 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
         0: .line 49
            aload 0 /* this */
            aload 2 /* factory */
            aload 3 /* loadQueryInfluencers */
            invokespecial org.hibernate.loader.OuterJoinLoader.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
         1: .line 51
            aload 0 /* this */
            aload 1 /* collectionPersister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getKeyType:()Lorg/hibernate/type/Type;
            putfield org.hibernate.loader.entity.CollectionElementLoader.keyType:Lorg/hibernate/type/Type;
         2: .line 52
            aload 0 /* this */
            aload 1 /* collectionPersister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getIndexType:()Lorg/hibernate/type/Type;
            putfield org.hibernate.loader.entity.CollectionElementLoader.indexType:Lorg/hibernate/type/Type;
         3: .line 53
            aload 0 /* this */
            aload 1 /* collectionPersister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.OuterJoinLoadable
            putfield org.hibernate.loader.entity.CollectionElementLoader.persister:Lorg/hibernate/persister/entity/OuterJoinLoadable;
         4: .line 54
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.loader.entity.CollectionElementLoader.persister:Lorg/hibernate/persister/entity/OuterJoinLoadable;
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.getEntityName:()Ljava/lang/String;
            putfield org.hibernate.loader.entity.CollectionElementLoader.entityName:Ljava/lang/String;
         5: .line 56
            new org.hibernate.loader.entity.EntityJoinWalker
            dup
         6: .line 57
            aload 0 /* this */
            getfield org.hibernate.loader.entity.CollectionElementLoader.persister:Lorg/hibernate/persister/entity/OuterJoinLoadable;
         7: .line 59
            aload 1 /* collectionPersister */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getKeyColumnNames:()[Ljava/lang/String;
         8: .line 60
            aload 1 /* collectionPersister */
            ldc "index"
            invokeinterface org.hibernate.persister.collection.QueryableCollection.toColumns:(Ljava/lang/String;)[Ljava/lang/String;
         9: .line 58
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.join:([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
        10: .line 62
            iconst_1
        11: .line 63
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
        12: .line 64
            aload 2 /* factory */
        13: .line 65
            aload 3 /* loadQueryInfluencers */
        14: .line 56
            invokespecial org.hibernate.loader.entity.EntityJoinWalker.<init>:(Lorg/hibernate/persister/entity/OuterJoinLoadable;[Ljava/lang/String;ILorg/hibernate/LockMode;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
            astore 4 /* walker */
        start local 4 // org.hibernate.loader.JoinWalker walker
        15: .line 67
            aload 0 /* this */
            aload 4 /* walker */
            invokevirtual org.hibernate.loader.entity.CollectionElementLoader.initFromWalker:(Lorg/hibernate/loader/JoinWalker;)V
        16: .line 69
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.CollectionElementLoader.postInstantiate:()V
        17: .line 71
            getstatic org.hibernate.loader.entity.CollectionElementLoader.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 19
        18: .line 72
            getstatic org.hibernate.loader.entity.CollectionElementLoader.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Static select for entity %s: %s"
            aload 0 /* this */
            getfield org.hibernate.loader.entity.CollectionElementLoader.entityName:Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.CollectionElementLoader.getSQLString:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        19: .line 75
      StackMap locals: org.hibernate.loader.entity.CollectionElementLoader org.hibernate.persister.collection.QueryableCollection org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.engine.spi.LoadQueryInfluencers org.hibernate.loader.JoinWalker
      StackMap stack:
            return
        end local 4 // org.hibernate.loader.JoinWalker walker
        end local 3 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
        end local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 1 // org.hibernate.persister.collection.QueryableCollection collectionPersister
        end local 0 // org.hibernate.loader.entity.CollectionElementLoader this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   20     0                  this  Lorg/hibernate/loader/entity/CollectionElementLoader;
            0   20     1   collectionPersister  Lorg/hibernate/persister/collection/QueryableCollection;
            0   20     2               factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   20     3  loadQueryInfluencers  Lorg/hibernate/engine/spi/LoadQueryInfluencers;
           15   20     4                walker  Lorg/hibernate/loader/JoinWalker;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      collectionPersister   
      factory               
      loadQueryInfluencers  

  public java.lang.Object loadElement(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, java.lang.Object);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.hibernate.loader.entity.CollectionElementLoader this
        start local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 2 // java.lang.Object key
        start local 3 // java.lang.Object index
         0: .line 80
            aload 0 /* this */
         1: .line 81
            aload 1 /* session */
         2: .line 82
            aload 2 /* key */
         3: .line 83
            aload 3 /* index */
         4: .line 84
            aload 0 /* this */
            getfield org.hibernate.loader.entity.CollectionElementLoader.keyType:Lorg/hibernate/type/Type;
         5: .line 85
            aload 0 /* this */
            getfield org.hibernate.loader.entity.CollectionElementLoader.indexType:Lorg/hibernate/type/Type;
         6: .line 86
            aload 0 /* this */
            getfield org.hibernate.loader.entity.CollectionElementLoader.persister:Lorg/hibernate/persister/entity/OuterJoinLoadable;
         7: .line 80
            invokevirtual org.hibernate.loader.entity.CollectionElementLoader.loadEntity:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/type/Type;Lorg/hibernate/type/Type;Lorg/hibernate/persister/entity/EntityPersister;)Ljava/util/List;
            astore 4 /* list */
        start local 4 // java.util.List list
         8: .line 89
            aload 4 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 10
         9: .line 90
            aload 4 /* list */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            areturn
        10: .line 92
      StackMap locals: java.util.List
      StackMap stack:
            aload 4 /* list */
            invokeinterface java.util.List.size:()I
            ifne 12
        11: .line 93
            aconst_null
            areturn
        12: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.CollectionElementLoader.getCollectionOwners:()[I
            ifnull 14
        13: .line 97
            aload 4 /* list */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            areturn
        14: .line 100
      StackMap locals:
      StackMap stack:
            new org.hibernate.HibernateException
            dup
            ldc "More than one row was found"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.util.List list
        end local 3 // java.lang.Object index
        end local 2 // java.lang.Object key
        end local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 0 // org.hibernate.loader.entity.CollectionElementLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lorg/hibernate/loader/entity/CollectionElementLoader;
            0   15     1  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   15     2      key  Ljava/lang/Object;
            0   15     3    index  Ljava/lang/Object;
            8   15     4     list  Ljava/util/List;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      session  
      key      
      index    

  protected java.lang.Object getResultColumnOrRow(java.lang.Object[], org.hibernate.transform.ResultTransformer, java.sql.ResultSet, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: ([Ljava/lang/Object;Lorg/hibernate/transform/ResultTransformer;Ljava/sql/ResultSet;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.hibernate.loader.entity.CollectionElementLoader this
        start local 1 // java.lang.Object[] row
        start local 2 // org.hibernate.transform.ResultTransformer transformer
        start local 3 // java.sql.ResultSet rs
        start local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 112
            aload 1 /* row */
            aload 1 /* row */
            arraylength
            iconst_1
            isub
            aaload
            areturn
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 3 // java.sql.ResultSet rs
        end local 2 // org.hibernate.transform.ResultTransformer transformer
        end local 1 // java.lang.Object[] row
        end local 0 // org.hibernate.loader.entity.CollectionElementLoader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/loader/entity/CollectionElementLoader;
            0    1     1          row  [Ljava/lang/Object;
            0    1     2  transformer  Lorg/hibernate/transform/ResultTransformer;
            0    1     3           rs  Ljava/sql/ResultSet;
            0    1     4      session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    Exceptions:
      throws java.sql.SQLException, org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      row          
      transformer  
      rs           
      session      

  protected boolean isSingleRowLoader();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.entity.CollectionElementLoader this
         0: .line 117
            iconst_1
            ireturn
        end local 0 // org.hibernate.loader.entity.CollectionElementLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/entity/CollectionElementLoader;
}
SourceFile: "CollectionElementLoader.java"