public abstract class org.hibernate.cfg.ResultSetMappingBinder
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.hibernate.cfg.ResultSetMappingBinder
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.cfg.ResultSetMappingBinder this
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.hibernate.cfg.ResultSetMappingBinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/cfg/ResultSetMappingBinder;

  protected static org.hibernate.engine.ResultSetMappingDefinition buildResultSetMappingDefinition(org.dom4j.Element, java.lang.String, org.hibernate.cfg.Mappings);
    descriptor: (Lorg/dom4j/Element;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/engine/ResultSetMappingDefinition;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // org.dom4j.Element resultSetElem
        start local 1 // java.lang.String path
        start local 2 // org.hibernate.cfg.Mappings mappings
         0: .line 66
            aload 0 /* resultSetElem */
            ldc "name"
            invokeinterface org.dom4j.Element.attribute:(Ljava/lang/String;)Lorg/dom4j/Attribute;
            invokeinterface org.dom4j.Attribute.getValue:()Ljava/lang/String;
            astore 3 /* resultSetName */
        start local 3 // java.lang.String resultSetName
         1: .line 67
            aload 1 /* path */
            ifnull 3
         2: .line 68
            new java.lang.StringBuilder
            dup
            aload 1 /* path */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* resultSetName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* resultSetName */
         3: .line 70
      StackMap locals: java.lang.String
      StackMap stack:
            new org.hibernate.engine.ResultSetMappingDefinition
            dup
            aload 3 /* resultSetName */
            invokespecial org.hibernate.engine.ResultSetMappingDefinition.<init>:(Ljava/lang/String;)V
            astore 4 /* definition */
        start local 4 // org.hibernate.engine.ResultSetMappingDefinition definition
         4: .line 72
            iconst_0
            istore 5 /* cnt */
        start local 5 // int cnt
         5: .line 73
            aload 0 /* resultSetElem */
            invokeinterface org.dom4j.Element.elementIterator:()Ljava/util/Iterator;
            astore 6 /* returns */
        start local 6 // java.util.Iterator returns
         6: .line 74
            goto 28
         7: .line 75
      StackMap locals: org.hibernate.engine.ResultSetMappingDefinition int java.util.Iterator
      StackMap stack:
            iinc 5 /* cnt */ 1
         8: .line 76
            aload 6 /* returns */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.dom4j.Element
            astore 7 /* returnElem */
        start local 7 // org.dom4j.Element returnElem
         9: .line 77
            aload 7 /* returnElem */
            invokeinterface org.dom4j.Element.getName:()Ljava/lang/String;
            astore 8 /* name */
        start local 8 // java.lang.String name
        10: .line 78
            ldc "return-scalar"
            aload 8 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        11: .line 79
            aload 7 /* returnElem */
            ldc "column"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* column */
        start local 9 // java.lang.String column
        12: .line 80
            aload 7 /* returnElem */
            invokestatic org.hibernate.cfg.HbmBinder.getTypeFromXML:(Lorg/dom4j/Element;)Ljava/lang/String;
            astore 10 /* typeFromXML */
        start local 10 // java.lang.String typeFromXML
        13: .line 81
            aconst_null
            astore 11 /* type */
        start local 11 // org.hibernate.type.Type type
        14: .line 82
            aload 10 /* typeFromXML */
            ifnull 18
        15: .line 83
            aload 2 /* mappings */
            invokeinterface org.hibernate.cfg.Mappings.getTypeResolver:()Lorg/hibernate/type/TypeResolver;
            aload 10 /* typeFromXML */
            invokevirtual org.hibernate.type.TypeResolver.heuristicType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            astore 11 /* type */
        16: .line 84
            aload 11 /* type */
            ifnonnull 18
        17: .line 85
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "could not determine type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 88
      StackMap locals: org.dom4j.Element java.lang.String org.hibernate.cfg.Mappings java.lang.String org.hibernate.engine.ResultSetMappingDefinition int java.util.Iterator org.dom4j.Element java.lang.String java.lang.String java.lang.String org.hibernate.type.Type
      StackMap stack:
            aload 4 /* definition */
            new org.hibernate.engine.query.spi.sql.NativeSQLQueryScalarReturn
            dup
            aload 9 /* column */
            aload 11 /* type */
            invokespecial org.hibernate.engine.query.spi.sql.NativeSQLQueryScalarReturn.<init>:(Ljava/lang/String;Lorg/hibernate/type/Type;)V
            invokevirtual org.hibernate.engine.ResultSetMappingDefinition.addQueryReturn:(Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryReturn;)V
        end local 11 // org.hibernate.type.Type type
        end local 10 // java.lang.String typeFromXML
        end local 9 // java.lang.String column
        19: .line 89
            goto 28
        20: .line 90
      StackMap locals:
      StackMap stack:
            ldc "return"
            aload 8 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 91
            aload 4 /* definition */
            aload 7 /* returnElem */
            aload 2 /* mappings */
            iload 5 /* cnt */
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.bindReturn:(Lorg/dom4j/Element;Lorg/hibernate/cfg/Mappings;I)Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryRootReturn;
            invokevirtual org.hibernate.engine.ResultSetMappingDefinition.addQueryReturn:(Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryReturn;)V
        22: .line 92
            goto 28
        23: .line 93
      StackMap locals:
      StackMap stack:
            ldc "return-join"
            aload 8 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        24: .line 94
            aload 4 /* definition */
            aload 7 /* returnElem */
            aload 2 /* mappings */
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.bindReturnJoin:(Lorg/dom4j/Element;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryJoinReturn;
            invokevirtual org.hibernate.engine.ResultSetMappingDefinition.addQueryReturn:(Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryReturn;)V
        25: .line 95
            goto 28
        26: .line 96
      StackMap locals:
      StackMap stack:
            ldc "load-collection"
            aload 8 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        27: .line 97
            aload 4 /* definition */
            aload 7 /* returnElem */
            aload 2 /* mappings */
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.bindLoadCollection:(Lorg/dom4j/Element;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryCollectionReturn;
            invokevirtual org.hibernate.engine.ResultSetMappingDefinition.addQueryReturn:(Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryReturn;)V
        end local 8 // java.lang.String name
        end local 7 // org.dom4j.Element returnElem
        28: .line 74
      StackMap locals:
      StackMap stack:
            aload 6 /* returns */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        29: .line 100
            aload 4 /* definition */
            areturn
        end local 6 // java.util.Iterator returns
        end local 5 // int cnt
        end local 4 // org.hibernate.engine.ResultSetMappingDefinition definition
        end local 3 // java.lang.String resultSetName
        end local 2 // org.hibernate.cfg.Mappings mappings
        end local 1 // java.lang.String path
        end local 0 // org.dom4j.Element resultSetElem
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   30     0  resultSetElem  Lorg/dom4j/Element;
            0   30     1           path  Ljava/lang/String;
            0   30     2       mappings  Lorg/hibernate/cfg/Mappings;
            1   30     3  resultSetName  Ljava/lang/String;
            4   30     4     definition  Lorg/hibernate/engine/ResultSetMappingDefinition;
            5   30     5            cnt  I
            6   30     6        returns  Ljava/util/Iterator;
            9   28     7     returnElem  Lorg/dom4j/Element;
           10   28     8           name  Ljava/lang/String;
           12   19     9         column  Ljava/lang/String;
           13   19    10    typeFromXML  Ljava/lang/String;
           14   19    11           type  Lorg/hibernate/type/Type;
    MethodParameters:
               Name  Flags
      resultSetElem  
      path           
      mappings       

  private static org.hibernate.engine.query.spi.sql.NativeSQLQueryRootReturn bindReturn(org.dom4j.Element, org.hibernate.cfg.Mappings, int);
    descriptor: (Lorg/dom4j/Element;Lorg/hibernate/cfg/Mappings;I)Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryRootReturn;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.dom4j.Element returnElem
        start local 1 // org.hibernate.cfg.Mappings mappings
        start local 2 // int elementCount
         0: .line 104
            aload 0 /* returnElem */
            ldc "alias"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* alias */
        start local 3 // java.lang.String alias
         1: .line 105
            aload 3 /* alias */
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 106
            new java.lang.StringBuilder
            dup
            ldc "alias_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* elementCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* alias */
         3: .line 109
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* returnElem */
            aload 1 /* mappings */
            invokestatic org.hibernate.cfg.HbmBinder.getEntityName:(Lorg/dom4j/Element;Lorg/hibernate/cfg/Mappings;)Ljava/lang/String;
            astore 4 /* entityName */
        start local 4 // java.lang.String entityName
         4: .line 110
            aload 4 /* entityName */
            ifnonnull 6
         5: .line 111
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "<return alias='"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'> must specify either a class or entity-name"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 113
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* returnElem */
            ldc "lock-mode"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.getLockMode:(Ljava/lang/String;)Lorg/hibernate/LockMode;
            astore 5 /* lockMode */
        start local 5 // org.hibernate.LockMode lockMode
         7: .line 115
            aload 1 /* mappings */
            aload 4 /* entityName */
            invokeinterface org.hibernate.cfg.Mappings.getClass:(Ljava/lang/String;)Lorg/hibernate/mapping/PersistentClass;
            astore 6 /* pc */
        start local 6 // org.hibernate.mapping.PersistentClass pc
         8: .line 116
            aload 3 /* alias */
            aload 0 /* returnElem */
            aload 6 /* pc */
            aload 1 /* mappings */
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.bindPropertyResults:(Ljava/lang/String;Lorg/dom4j/Element;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cfg/Mappings;)Ljava/util/Map;
            astore 7 /* propertyResults */
        start local 7 // java.util.Map propertyResults
         9: .line 118
            new org.hibernate.engine.query.spi.sql.NativeSQLQueryRootReturn
            dup
        10: .line 119
            aload 3 /* alias */
        11: .line 120
            aload 4 /* entityName */
        12: .line 121
            aload 7 /* propertyResults */
        13: .line 122
            aload 5 /* lockMode */
        14: .line 118
            invokespecial org.hibernate.engine.query.spi.sql.NativeSQLQueryRootReturn.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/LockMode;)V
            areturn
        end local 7 // java.util.Map propertyResults
        end local 6 // org.hibernate.mapping.PersistentClass pc
        end local 5 // org.hibernate.LockMode lockMode
        end local 4 // java.lang.String entityName
        end local 3 // java.lang.String alias
        end local 2 // int elementCount
        end local 1 // org.hibernate.cfg.Mappings mappings
        end local 0 // org.dom4j.Element returnElem
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0       returnElem  Lorg/dom4j/Element;
            0   15     1         mappings  Lorg/hibernate/cfg/Mappings;
            0   15     2     elementCount  I
            1   15     3            alias  Ljava/lang/String;
            4   15     4       entityName  Ljava/lang/String;
            7   15     5         lockMode  Lorg/hibernate/LockMode;
            8   15     6               pc  Lorg/hibernate/mapping/PersistentClass;
            9   15     7  propertyResults  Ljava/util/Map;
    MethodParameters:
              Name  Flags
      returnElem    
      mappings      
      elementCount  

  private static org.hibernate.engine.query.spi.sql.NativeSQLQueryJoinReturn bindReturnJoin(org.dom4j.Element, org.hibernate.cfg.Mappings);
    descriptor: (Lorg/dom4j/Element;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryJoinReturn;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.dom4j.Element returnElem
        start local 1 // org.hibernate.cfg.Mappings mappings
         0: .line 127
            aload 0 /* returnElem */
            ldc "alias"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* alias */
        start local 2 // java.lang.String alias
         1: .line 128
            aload 0 /* returnElem */
            ldc "property"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* roleAttribute */
        start local 3 // java.lang.String roleAttribute
         2: .line 129
            aload 0 /* returnElem */
            ldc "lock-mode"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.getLockMode:(Ljava/lang/String;)Lorg/hibernate/LockMode;
            astore 4 /* lockMode */
        start local 4 // org.hibernate.LockMode lockMode
         3: .line 130
            aload 3 /* roleAttribute */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 5 /* dot */
        start local 5 // int dot
         4: .line 131
            iload 5 /* dot */
            iconst_m1
            if_icmpne 10
         5: .line 132
            new org.hibernate.MappingException
            dup
         6: .line 133
            new java.lang.StringBuilder
            dup
            ldc "Role attribute for sql query return [alias="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 134
            ldc "] not formatted correctly {owningAlias.propertyName}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 133
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 132
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 137
      StackMap locals: org.dom4j.Element org.hibernate.cfg.Mappings java.lang.String java.lang.String org.hibernate.LockMode int
      StackMap stack:
            aload 3 /* roleAttribute */
            iconst_0
            iload 5 /* dot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* roleOwnerAlias */
        start local 6 // java.lang.String roleOwnerAlias
        11: .line 138
            aload 3 /* roleAttribute */
            iload 5 /* dot */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* roleProperty */
        start local 7 // java.lang.String roleProperty
        12: .line 141
            aload 2 /* alias */
            aload 0 /* returnElem */
            aconst_null
            aload 1 /* mappings */
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.bindPropertyResults:(Ljava/lang/String;Lorg/dom4j/Element;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cfg/Mappings;)Ljava/util/Map;
            astore 8 /* propertyResults */
        start local 8 // java.util.Map propertyResults
        13: .line 143
            new org.hibernate.engine.query.spi.sql.NativeSQLQueryJoinReturn
            dup
        14: .line 144
            aload 2 /* alias */
        15: .line 145
            aload 6 /* roleOwnerAlias */
        16: .line 146
            aload 7 /* roleProperty */
        17: .line 147
            aload 8 /* propertyResults */
        18: .line 148
            aload 4 /* lockMode */
        19: .line 143
            invokespecial org.hibernate.engine.query.spi.sql.NativeSQLQueryJoinReturn.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/LockMode;)V
            areturn
        end local 8 // java.util.Map propertyResults
        end local 7 // java.lang.String roleProperty
        end local 6 // java.lang.String roleOwnerAlias
        end local 5 // int dot
        end local 4 // org.hibernate.LockMode lockMode
        end local 3 // java.lang.String roleAttribute
        end local 2 // java.lang.String alias
        end local 1 // org.hibernate.cfg.Mappings mappings
        end local 0 // org.dom4j.Element returnElem
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0       returnElem  Lorg/dom4j/Element;
            0   20     1         mappings  Lorg/hibernate/cfg/Mappings;
            1   20     2            alias  Ljava/lang/String;
            2   20     3    roleAttribute  Ljava/lang/String;
            3   20     4         lockMode  Lorg/hibernate/LockMode;
            4   20     5              dot  I
           11   20     6   roleOwnerAlias  Ljava/lang/String;
           12   20     7     roleProperty  Ljava/lang/String;
           13   20     8  propertyResults  Ljava/util/Map;
    MethodParameters:
            Name  Flags
      returnElem  
      mappings    

  private static org.hibernate.engine.query.spi.sql.NativeSQLQueryCollectionReturn bindLoadCollection(org.dom4j.Element, org.hibernate.cfg.Mappings);
    descriptor: (Lorg/dom4j/Element;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/engine/query/spi/sql/NativeSQLQueryCollectionReturn;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.dom4j.Element returnElem
        start local 1 // org.hibernate.cfg.Mappings mappings
         0: .line 153
            aload 0 /* returnElem */
            ldc "alias"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* alias */
        start local 2 // java.lang.String alias
         1: .line 154
            aload 0 /* returnElem */
            ldc "role"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* collectionAttribute */
        start local 3 // java.lang.String collectionAttribute
         2: .line 155
            aload 0 /* returnElem */
            ldc "lock-mode"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.getLockMode:(Ljava/lang/String;)Lorg/hibernate/LockMode;
            astore 4 /* lockMode */
        start local 4 // org.hibernate.LockMode lockMode
         3: .line 156
            aload 3 /* collectionAttribute */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 5 /* dot */
        start local 5 // int dot
         4: .line 157
            iload 5 /* dot */
            iconst_m1
            if_icmpne 10
         5: .line 158
            new org.hibernate.MappingException
            dup
         6: .line 159
            new java.lang.StringBuilder
            dup
            ldc "Collection attribute for sql query return [alias="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 160
            ldc "] not formatted correctly {OwnerClassName.propertyName}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 159
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 158
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 163
      StackMap locals: org.dom4j.Element org.hibernate.cfg.Mappings java.lang.String java.lang.String org.hibernate.LockMode int
      StackMap stack:
            aload 3 /* collectionAttribute */
            iconst_0
            iload 5 /* dot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aload 1 /* mappings */
            invokestatic org.hibernate.cfg.HbmBinder.getClassName:(Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Ljava/lang/String;
            astore 6 /* ownerClassName */
        start local 6 // java.lang.String ownerClassName
        11: .line 164
            aload 3 /* collectionAttribute */
            iload 5 /* dot */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* ownerPropertyName */
        start local 7 // java.lang.String ownerPropertyName
        12: .line 167
            aload 2 /* alias */
            aload 0 /* returnElem */
            aconst_null
            aload 1 /* mappings */
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.bindPropertyResults:(Ljava/lang/String;Lorg/dom4j/Element;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cfg/Mappings;)Ljava/util/Map;
            astore 8 /* propertyResults */
        start local 8 // java.util.Map propertyResults
        13: .line 169
            new org.hibernate.engine.query.spi.sql.NativeSQLQueryCollectionReturn
            dup
        14: .line 170
            aload 2 /* alias */
        15: .line 171
            aload 6 /* ownerClassName */
        16: .line 172
            aload 7 /* ownerPropertyName */
        17: .line 173
            aload 8 /* propertyResults */
        18: .line 174
            aload 4 /* lockMode */
        19: .line 169
            invokespecial org.hibernate.engine.query.spi.sql.NativeSQLQueryCollectionReturn.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/LockMode;)V
            areturn
        end local 8 // java.util.Map propertyResults
        end local 7 // java.lang.String ownerPropertyName
        end local 6 // java.lang.String ownerClassName
        end local 5 // int dot
        end local 4 // org.hibernate.LockMode lockMode
        end local 3 // java.lang.String collectionAttribute
        end local 2 // java.lang.String alias
        end local 1 // org.hibernate.cfg.Mappings mappings
        end local 0 // org.dom4j.Element returnElem
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   20     0           returnElem  Lorg/dom4j/Element;
            0   20     1             mappings  Lorg/hibernate/cfg/Mappings;
            1   20     2                alias  Ljava/lang/String;
            2   20     3  collectionAttribute  Ljava/lang/String;
            3   20     4             lockMode  Lorg/hibernate/LockMode;
            4   20     5                  dot  I
           11   20     6       ownerClassName  Ljava/lang/String;
           12   20     7    ownerPropertyName  Ljava/lang/String;
           13   20     8      propertyResults  Ljava/util/Map;
    MethodParameters:
            Name  Flags
      returnElem  
      mappings    

  private static java.util.Map bindPropertyResults(java.lang.String, org.dom4j.Element, org.hibernate.mapping.PersistentClass, org.hibernate.cfg.Mappings);
    descriptor: (Ljava/lang/String;Lorg/dom4j/Element;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cfg/Mappings;)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=22, args_size=4
        start local 0 // java.lang.String alias
        start local 1 // org.dom4j.Element returnElement
        start local 2 // org.hibernate.mapping.PersistentClass pc
        start local 3 // org.hibernate.cfg.Mappings mappings
         0: .line 182
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* propertyresults */
        start local 4 // java.util.HashMap propertyresults
         1: .line 184
            aload 1 /* returnElement */
            ldc "return-discriminator"
            invokeinterface org.dom4j.Element.element:(Ljava/lang/String;)Lorg/dom4j/Element;
            astore 5 /* discriminatorResult */
        start local 5 // org.dom4j.Element discriminatorResult
         2: .line 185
            aload 5 /* discriminatorResult */
            ifnull 5
         3: .line 186
            aload 5 /* discriminatorResult */
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.getResultColumns:(Lorg/dom4j/Element;)Ljava/util/ArrayList;
            astore 6 /* resultColumns */
        start local 6 // java.util.ArrayList resultColumns
         4: .line 187
            aload 4 /* propertyresults */
            ldc "class"
            aload 6 /* resultColumns */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.util.ArrayList resultColumns
         5: .line 189
      StackMap locals: java.util.HashMap org.dom4j.Element
      StackMap stack:
            aload 1 /* returnElement */
            ldc "return-property"
            invokeinterface org.dom4j.Element.elementIterator:(Ljava/lang/String;)Ljava/util/Iterator;
            astore 6 /* iterator */
        start local 6 // java.util.Iterator iterator
         6: .line 190
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* properties */
        start local 7 // java.util.List properties
         7: .line 191
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* propertyNames */
        start local 8 // java.util.List propertyNames
         8: .line 192
            goto 62
         9: .line 193
      StackMap locals: java.util.Iterator java.util.List java.util.List
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.dom4j.Element
            astore 9 /* propertyresult */
        start local 9 // org.dom4j.Element propertyresult
        10: .line 194
            aload 9 /* propertyresult */
            ldc "name"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* name */
        start local 10 // java.lang.String name
        11: .line 195
            aload 2 /* pc */
            ifnull 12
            aload 10 /* name */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 15
        12: .line 197
      StackMap locals: org.dom4j.Element java.lang.String
      StackMap stack:
            aload 7 /* properties */
            aload 9 /* propertyresult */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 198
            aload 8 /* propertyNames */
            aload 10 /* name */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 199
            goto 62
        15: .line 207
      StackMap locals:
      StackMap stack:
            aload 2 /* pc */
            ifnonnull 17
        16: .line 208
            new org.hibernate.MappingException
            dup
            ldc "dotted notation in <return-join> or <load_collection> not yet supported"
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 209
      StackMap locals:
      StackMap stack:
            aload 10 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 11 /* dotIndex */
        start local 11 // int dotIndex
        18: .line 210
            aload 10 /* name */
            iconst_0
            iload 11 /* dotIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 12 /* reducedName */
        start local 12 // java.lang.String reducedName
        19: .line 211
            aload 2 /* pc */
            aload 12 /* reducedName */
            invokevirtual org.hibernate.mapping.PersistentClass.getRecursiveProperty:(Ljava/lang/String;)Lorg/hibernate/mapping/Property;
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            astore 13 /* value */
        start local 13 // org.hibernate.mapping.Value value
        20: .line 213
            aload 13 /* value */
            instanceof org.hibernate.mapping.Component
            ifeq 24
        21: .line 214
            aload 13 /* value */
            checkcast org.hibernate.mapping.Component
            astore 15 /* comp */
        start local 15 // org.hibernate.mapping.Component comp
        22: .line 215
            aload 15 /* comp */
            invokevirtual org.hibernate.mapping.Component.getPropertyIterator:()Ljava/util/Iterator;
            astore 14 /* parentPropIter */
        end local 15 // org.hibernate.mapping.Component comp
        start local 14 // java.util.Iterator parentPropIter
        23: .line 216
            goto 40
        end local 14 // java.util.Iterator parentPropIter
        24: .line 217
      StackMap locals: int java.lang.String org.hibernate.mapping.Value
      StackMap stack:
            aload 13 /* value */
            instanceof org.hibernate.mapping.ToOne
            ifeq 39
        25: .line 218
            aload 13 /* value */
            checkcast org.hibernate.mapping.ToOne
            astore 15 /* toOne */
        start local 15 // org.hibernate.mapping.ToOne toOne
        26: .line 219
            aload 3 /* mappings */
            aload 15 /* toOne */
            invokevirtual org.hibernate.mapping.ToOne.getReferencedEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.cfg.Mappings.getClass:(Ljava/lang/String;)Lorg/hibernate/mapping/PersistentClass;
            astore 16 /* referencedPc */
        start local 16 // org.hibernate.mapping.PersistentClass referencedPc
        27: .line 220
            aload 15 /* toOne */
            invokevirtual org.hibernate.mapping.ToOne.getReferencedPropertyName:()Ljava/lang/String;
            ifnull 32
        28: .line 222
            aload 16 /* referencedPc */
            aload 15 /* toOne */
            invokevirtual org.hibernate.mapping.ToOne.getReferencedPropertyName:()Ljava/lang/String;
            invokevirtual org.hibernate.mapping.PersistentClass.getRecursiveProperty:(Ljava/lang/String;)Lorg/hibernate/mapping/Property;
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            checkcast org.hibernate.mapping.Component
            invokevirtual org.hibernate.mapping.Component.getPropertyIterator:()Ljava/util/Iterator;
            astore 14 /* parentPropIter */
        start local 14 // java.util.Iterator parentPropIter
        29: .line 223
            goto 40
        end local 14 // java.util.Iterator parentPropIter
      StackMap locals: java.lang.String org.dom4j.Element org.hibernate.mapping.PersistentClass org.hibernate.cfg.Mappings java.util.HashMap org.dom4j.Element java.util.Iterator java.util.List java.util.List org.dom4j.Element java.lang.String int java.lang.String org.hibernate.mapping.Value top org.hibernate.mapping.ToOne org.hibernate.mapping.PersistentClass
      StackMap stack: java.lang.ClassCastException
        30: astore 17 /* e */
        start local 17 // java.lang.ClassCastException e
        31: .line 224
            new org.hibernate.MappingException
            dup
            ldc "dotted notation reference neither a component nor a many/one to one"
            aload 17 /* e */
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 17 // java.lang.ClassCastException e
        32: .line 229
      StackMap locals:
      StackMap stack:
            aload 16 /* referencedPc */
            invokevirtual org.hibernate.mapping.PersistentClass.getIdentifierMapper:()Lorg/hibernate/mapping/Component;
            ifnonnull 35
        33: .line 230
            aload 16 /* referencedPc */
            invokevirtual org.hibernate.mapping.PersistentClass.getIdentifierProperty:()Lorg/hibernate/mapping/Property;
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            checkcast org.hibernate.mapping.Component
            invokevirtual org.hibernate.mapping.Component.getPropertyIterator:()Ljava/util/Iterator;
            astore 14 /* parentPropIter */
        start local 14 // java.util.Iterator parentPropIter
        34: .line 231
            goto 40
        end local 14 // java.util.Iterator parentPropIter
        35: .line 233
      StackMap locals:
      StackMap stack:
            aload 16 /* referencedPc */
            invokevirtual org.hibernate.mapping.PersistentClass.getIdentifierMapper:()Lorg/hibernate/mapping/Component;
            invokevirtual org.hibernate.mapping.Component.getPropertyIterator:()Ljava/util/Iterator;
            astore 14 /* parentPropIter */
        start local 14 // java.util.Iterator parentPropIter
        36: .line 235
            goto 40
        end local 14 // java.util.Iterator parentPropIter
        37: .line 236
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            astore 17 /* e */
        start local 17 // java.lang.ClassCastException e
        38: .line 237
            new org.hibernate.MappingException
            dup
            ldc "dotted notation reference neither a component nor a many/one to one"
            aload 17 /* e */
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 17 // java.lang.ClassCastException e
        end local 16 // org.hibernate.mapping.PersistentClass referencedPc
        end local 15 // org.hibernate.mapping.ToOne toOne
        39: .line 242
      StackMap locals: java.lang.String org.dom4j.Element org.hibernate.mapping.PersistentClass org.hibernate.cfg.Mappings java.util.HashMap org.dom4j.Element java.util.Iterator java.util.List java.util.List org.dom4j.Element java.lang.String int java.lang.String org.hibernate.mapping.Value
      StackMap stack:
            new org.hibernate.MappingException
            dup
            ldc "dotted notation reference neither a component nor a many/one to one"
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        start local 14 // java.util.Iterator parentPropIter
        40: .line 244
      StackMap locals: java.util.Iterator
      StackMap stack:
            iconst_0
            istore 15 /* hasFollowers */
        start local 15 // boolean hasFollowers
        41: .line 245
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 16 /* followers */
        start local 16 // java.util.List followers
        42: .line 246
            goto 48
        43: .line 247
      StackMap locals: int java.util.List
      StackMap stack:
            aload 14 /* parentPropIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Property
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            astore 17 /* currentPropertyName */
        start local 17 // java.lang.String currentPropertyName
        44: .line 248
            new java.lang.StringBuilder
            dup
            aload 12 /* reducedName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 17 /* currentPropertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 18 /* currentName */
        start local 18 // java.lang.String currentName
        45: .line 249
            iload 15 /* hasFollowers */
            ifeq 47
        46: .line 250
            aload 16 /* followers */
            aload 18 /* currentName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        47: .line 252
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 10 /* name */
            aload 18 /* currentName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 48
            iconst_1
            istore 15 /* hasFollowers */
        end local 18 // java.lang.String currentName
        end local 17 // java.lang.String currentPropertyName
        48: .line 246
      StackMap locals:
      StackMap stack:
            aload 14 /* parentPropIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 43
        49: .line 255
            aload 8 /* propertyNames */
            invokeinterface java.util.List.size:()I
            istore 17 /* index */
        start local 17 // int index
        50: .line 256
            aload 16 /* followers */
            invokeinterface java.util.List.size:()I
            istore 18 /* followersSize */
        start local 18 // int followersSize
        51: .line 257
            iconst_0
            istore 19 /* loop */
        start local 19 // int loop
        52: goto 59
        53: .line 258
      StackMap locals: int int int
      StackMap stack:
            aload 16 /* followers */
            iload 19 /* loop */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 20 /* follower */
        start local 20 // java.lang.String follower
        54: .line 259
            aload 8 /* propertyNames */
            aload 20 /* follower */
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.getIndexOfFirstMatchingProperty:(Ljava/util/List;Ljava/lang/String;)I
            istore 21 /* currentIndex */
        start local 21 // int currentIndex
        55: .line 260
            iload 21 /* currentIndex */
            iconst_m1
            if_icmpeq 56
            iload 21 /* currentIndex */
            iload 17 /* index */
            if_icmpge 56
            iload 21 /* currentIndex */
            goto 57
      StackMap locals: java.lang.String int
      StackMap stack:
        56: iload 17 /* index */
      StackMap locals:
      StackMap stack: int
        57: istore 17 /* index */
        end local 21 // int currentIndex
        end local 20 // java.lang.String follower
        58: .line 257
            iinc 19 /* loop */ 1
      StackMap locals:
      StackMap stack:
        59: iload 19 /* loop */
            iload 18 /* followersSize */
            if_icmplt 53
        end local 19 // int loop
        60: .line 262
            aload 8 /* propertyNames */
            iload 17 /* index */
            aload 10 /* name */
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        61: .line 263
            aload 7 /* properties */
            iload 17 /* index */
            aload 9 /* propertyresult */
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        end local 18 // int followersSize
        end local 17 // int index
        end local 16 // java.util.List followers
        end local 15 // boolean hasFollowers
        end local 14 // java.util.Iterator parentPropIter
        end local 13 // org.hibernate.mapping.Value value
        end local 12 // java.lang.String reducedName
        end local 11 // int dotIndex
        end local 10 // java.lang.String name
        end local 9 // org.dom4j.Element propertyresult
        62: .line 192
      StackMap locals: java.lang.String org.dom4j.Element org.hibernate.mapping.PersistentClass org.hibernate.cfg.Mappings java.util.HashMap org.dom4j.Element java.util.Iterator java.util.List java.util.List
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        63: .line 267
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 9 /* uniqueReturnProperty */
        start local 9 // java.util.Set uniqueReturnProperty
        64: .line 268
            aload 7 /* properties */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6 /* iterator */
        65: .line 269
            goto 92
        66: .line 270
      StackMap locals: java.util.Set
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.dom4j.Element
            astore 10 /* propertyresult */
        start local 10 // org.dom4j.Element propertyresult
        67: .line 271
            aload 10 /* propertyresult */
            ldc "name"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 11 /* name */
        start local 11 // java.lang.String name
        68: .line 272
            ldc "class"
            aload 11 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 72
        69: .line 273
            new org.hibernate.MappingException
            dup
        70: .line 274
            ldc "class is not a valid property name to use in a <return-property>, use <return-discriminator> instead"
        71: .line 273
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        72: .line 278
      StackMap locals: org.dom4j.Element java.lang.String
      StackMap stack:
            aload 10 /* propertyresult */
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.getResultColumns:(Lorg/dom4j/Element;)Ljava/util/ArrayList;
            astore 12 /* allResultColumns */
        start local 12 // java.util.ArrayList allResultColumns
        73: .line 280
            aload 12 /* allResultColumns */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 79
        74: .line 281
            new org.hibernate.MappingException
            dup
        75: .line 282
            new java.lang.StringBuilder
            dup
            ldc "return-property for alias "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        76: .line 283
            ldc " must specify at least one column or return-column name"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        77: .line 282
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        78: .line 281
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        79: .line 286
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 9 /* uniqueReturnProperty */
            aload 11 /* name */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 85
        80: .line 287
            new org.hibernate.MappingException
            dup
        81: .line 288
            new java.lang.StringBuilder
            dup
            ldc "duplicate return-property for property "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        82: .line 289
            ldc " on alias "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        83: .line 288
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        84: .line 287
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        85: .line 292
      StackMap locals:
      StackMap stack:
            aload 9 /* uniqueReturnProperty */
            aload 11 /* name */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        86: .line 315
            aload 11 /* name */
            astore 13 /* key */
        start local 13 // java.lang.String key
        87: .line 316
            aload 4 /* propertyresults */
            aload 13 /* key */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList
            astore 14 /* intermediateResults */
        start local 14 // java.util.ArrayList intermediateResults
        88: .line 317
            aload 14 /* intermediateResults */
            ifnonnull 91
        89: .line 318
            aload 4 /* propertyresults */
            aload 13 /* key */
            aload 12 /* allResultColumns */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        90: .line 319
            goto 92
        91: .line 321
      StackMap locals: java.lang.String java.util.ArrayList
      StackMap stack:
            aload 14 /* intermediateResults */
            aload 12 /* allResultColumns */
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        end local 14 // java.util.ArrayList intermediateResults
        end local 13 // java.lang.String key
        end local 12 // java.util.ArrayList allResultColumns
        end local 11 // java.lang.String name
        end local 10 // org.dom4j.Element propertyresult
        92: .line 269
      StackMap locals: java.lang.String org.dom4j.Element org.hibernate.mapping.PersistentClass org.hibernate.cfg.Mappings java.util.HashMap org.dom4j.Element java.util.Iterator java.util.List java.util.List java.util.Set
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 66
        93: .line 325
            aload 4 /* propertyresults */
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10 /* entries */
        start local 10 // java.util.Iterator entries
        94: .line 326
            goto 99
        95: .line 327
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 10 /* entries */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 11 /* entry */
        start local 11 // java.util.Map$Entry entry
        96: .line 328
            aload 11 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            instanceof java.util.ArrayList
            ifeq 99
        97: .line 329
            aload 11 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.ArrayList
            astore 12 /* list */
        start local 12 // java.util.ArrayList list
        98: .line 330
            aload 11 /* entry */
            aload 12 /* list */
            aload 12 /* list */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.lang.String
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 12 // java.util.ArrayList list
        end local 11 // java.util.Map$Entry entry
        99: .line 326
      StackMap locals:
      StackMap stack:
            aload 10 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 95
       100: .line 333
            aload 4 /* propertyresults */
            invokevirtual java.util.HashMap.isEmpty:()Z
            ifeq 101
            getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
            goto 102
      StackMap locals:
      StackMap stack:
       101: aload 4 /* propertyresults */
      StackMap locals:
      StackMap stack: java.util.Map
       102: areturn
        end local 10 // java.util.Iterator entries
        end local 9 // java.util.Set uniqueReturnProperty
        end local 8 // java.util.List propertyNames
        end local 7 // java.util.List properties
        end local 6 // java.util.Iterator iterator
        end local 5 // org.dom4j.Element discriminatorResult
        end local 4 // java.util.HashMap propertyresults
        end local 3 // org.hibernate.cfg.Mappings mappings
        end local 2 // org.hibernate.mapping.PersistentClass pc
        end local 1 // org.dom4j.Element returnElement
        end local 0 // java.lang.String alias
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0  103     0                 alias  Ljava/lang/String;
            0  103     1         returnElement  Lorg/dom4j/Element;
            0  103     2                    pc  Lorg/hibernate/mapping/PersistentClass;
            0  103     3              mappings  Lorg/hibernate/cfg/Mappings;
            1  103     4       propertyresults  Ljava/util/HashMap;
            2  103     5   discriminatorResult  Lorg/dom4j/Element;
            4    5     6         resultColumns  Ljava/util/ArrayList;
            6  103     6              iterator  Ljava/util/Iterator;
            7  103     7            properties  Ljava/util/List;
            8  103     8         propertyNames  Ljava/util/List;
           10   62     9        propertyresult  Lorg/dom4j/Element;
           11   62    10                  name  Ljava/lang/String;
           18   62    11              dotIndex  I
           19   62    12           reducedName  Ljava/lang/String;
           20   62    13                 value  Lorg/hibernate/mapping/Value;
           23   24    14        parentPropIter  Ljava/util/Iterator;
           29   30    14        parentPropIter  Ljava/util/Iterator;
           34   35    14        parentPropIter  Ljava/util/Iterator;
           36   37    14        parentPropIter  Ljava/util/Iterator;
           40   62    14        parentPropIter  Ljava/util/Iterator;
           22   23    15                  comp  Lorg/hibernate/mapping/Component;
           26   39    15                 toOne  Lorg/hibernate/mapping/ToOne;
           27   39    16          referencedPc  Lorg/hibernate/mapping/PersistentClass;
           31   32    17                     e  Ljava/lang/ClassCastException;
           38   39    17                     e  Ljava/lang/ClassCastException;
           41   62    15          hasFollowers  Z
           42   62    16             followers  Ljava/util/List;
           44   48    17   currentPropertyName  Ljava/lang/String;
           45   48    18           currentName  Ljava/lang/String;
           50   62    17                 index  I
           51   62    18         followersSize  I
           52   60    19                  loop  I
           54   58    20              follower  Ljava/lang/String;
           55   58    21          currentIndex  I
           64  103     9  uniqueReturnProperty  Ljava/util/Set;
           67   92    10        propertyresult  Lorg/dom4j/Element;
           68   92    11                  name  Ljava/lang/String;
           73   92    12      allResultColumns  Ljava/util/ArrayList;
           87   92    13                   key  Ljava/lang/String;
           88   92    14   intermediateResults  Ljava/util/ArrayList;
           94  103    10               entries  Ljava/util/Iterator;
           96   99    11                 entry  Ljava/util/Map$Entry;
           98   99    12                  list  Ljava/util/ArrayList;
      Exception table:
        from    to  target  type
          28    29      30  Class java.lang.ClassCastException
          32    36      37  Class java.lang.ClassCastException
    MethodParameters:
               Name  Flags
      alias          
      returnElement  
      pc             
      mappings       

  private static int getIndexOfFirstMatchingProperty(java.util.List, java.lang.String);
    descriptor: (Ljava/util/List;Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.List propertyNames
        start local 1 // java.lang.String follower
         0: .line 337
            aload 0 /* propertyNames */
            invokeinterface java.util.List.size:()I
            istore 2 /* propertySize */
        start local 2 // int propertySize
         1: .line 338
            iconst_0
            istore 3 /* propIndex */
        start local 3 // int propIndex
         2: goto 6
         3: .line 339
      StackMap locals: int int
      StackMap stack:
            aload 0 /* propertyNames */
            iload 3 /* propIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* follower */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 340
            iload 3 /* propIndex */
            ireturn
         5: .line 338
      StackMap locals:
      StackMap stack:
            iinc 3 /* propIndex */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* propIndex */
            iload 2 /* propertySize */
            if_icmplt 3
        end local 3 // int propIndex
         7: .line 343
            iconst_m1
            ireturn
        end local 2 // int propertySize
        end local 1 // java.lang.String follower
        end local 0 // java.util.List propertyNames
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0  propertyNames  Ljava/util/List;
            0    8     1       follower  Ljava/lang/String;
            1    8     2   propertySize  I
            2    7     3      propIndex  I
    MethodParameters:
               Name  Flags
      propertyNames  
      follower       

  private static java.util.ArrayList getResultColumns(org.dom4j.Element);
    descriptor: (Lorg/dom4j/Element;)Ljava/util/ArrayList;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.dom4j.Element propertyresult
         0: .line 347
            aload 0 /* propertyresult */
            ldc "column"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.unquote:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* column */
        start local 1 // java.lang.String column
         1: .line 348
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* allResultColumns */
        start local 2 // java.util.ArrayList allResultColumns
         2: .line 349
            aload 1 /* column */
            ifnull 3
            aload 2 /* allResultColumns */
            aload 1 /* column */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 350
      StackMap locals: java.lang.String java.util.ArrayList
      StackMap stack:
            aload 0 /* propertyresult */
            ldc "return-column"
            invokeinterface org.dom4j.Element.elementIterator:(Ljava/lang/String;)Ljava/util/Iterator;
            astore 3 /* resultColumns */
        start local 3 // java.util.Iterator resultColumns
         4: .line 351
            goto 7
         5: .line 352
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* resultColumns */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.dom4j.Element
            astore 4 /* element */
        start local 4 // org.dom4j.Element element
         6: .line 353
            aload 2 /* allResultColumns */
            aload 4 /* element */
            ldc "name"
            invokeinterface org.dom4j.Element.attributeValue:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.hibernate.cfg.ResultSetMappingBinder.unquote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.dom4j.Element element
         7: .line 351
      StackMap locals:
      StackMap stack:
            aload 3 /* resultColumns */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 355
            aload 2 /* allResultColumns */
            areturn
        end local 3 // java.util.Iterator resultColumns
        end local 2 // java.util.ArrayList allResultColumns
        end local 1 // java.lang.String column
        end local 0 // org.dom4j.Element propertyresult
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0    propertyresult  Lorg/dom4j/Element;
            1    9     1            column  Ljava/lang/String;
            2    9     2  allResultColumns  Ljava/util/ArrayList;
            4    9     3     resultColumns  Ljava/util/Iterator;
            6    7     4           element  Lorg/dom4j/Element;
    MethodParameters:
                Name  Flags
      propertyresult  

  private static java.lang.String unquote(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 359
            aload 0 /* name */
            ifnull 2
            aload 0 /* name */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 96
            if_icmpne 2
         1: .line 360
            aload 0 /* name */
            iconst_1
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* name */
         2: .line 362
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private static org.hibernate.LockMode getLockMode(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/LockMode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String lockMode
         0: .line 366
            aload 0 /* lockMode */
            ifnull 1
            ldc "read"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 367
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            areturn
         2: .line 369
      StackMap locals:
      StackMap stack:
            ldc "none"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 370
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            areturn
         4: .line 372
      StackMap locals:
      StackMap stack:
            ldc "upgrade"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 373
            getstatic org.hibernate.LockMode.UPGRADE:Lorg/hibernate/LockMode;
            areturn
         6: .line 375
      StackMap locals:
      StackMap stack:
            ldc "upgrade-nowait"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 376
            getstatic org.hibernate.LockMode.UPGRADE_NOWAIT:Lorg/hibernate/LockMode;
            areturn
         8: .line 378
      StackMap locals:
      StackMap stack:
            ldc "upgrade-skiplocked"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 379
            getstatic org.hibernate.LockMode.UPGRADE_SKIPLOCKED:Lorg/hibernate/LockMode;
            areturn
        10: .line 381
      StackMap locals:
      StackMap stack:
            ldc "write"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 382
            getstatic org.hibernate.LockMode.WRITE:Lorg/hibernate/LockMode;
            areturn
        12: .line 384
      StackMap locals:
      StackMap stack:
            ldc "force"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 385
            getstatic org.hibernate.LockMode.FORCE:Lorg/hibernate/LockMode;
            areturn
        14: .line 387
      StackMap locals:
      StackMap stack:
            ldc "optimistic"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 388
            getstatic org.hibernate.LockMode.OPTIMISTIC:Lorg/hibernate/LockMode;
            areturn
        16: .line 390
      StackMap locals:
      StackMap stack:
            ldc "optimistic_force_increment"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 391
            getstatic org.hibernate.LockMode.OPTIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            areturn
        18: .line 393
      StackMap locals:
      StackMap stack:
            ldc "pessimistic_read"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 394
            getstatic org.hibernate.LockMode.PESSIMISTIC_READ:Lorg/hibernate/LockMode;
            areturn
        20: .line 396
      StackMap locals:
      StackMap stack:
            ldc "pessimistic_write"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 397
            getstatic org.hibernate.LockMode.PESSIMISTIC_WRITE:Lorg/hibernate/LockMode;
            areturn
        22: .line 399
      StackMap locals:
      StackMap stack:
            ldc "pessimistic_force_increment"
            aload 0 /* lockMode */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 24
        23: .line 400
            getstatic org.hibernate.LockMode.PESSIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            areturn
        24: .line 403
      StackMap locals:
      StackMap stack:
            new org.hibernate.MappingException
            dup
            ldc "unknown lockmode"
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String lockMode
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0  lockMode  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      lockMode  
}
SourceFile: "ResultSetMappingBinder.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map