public class org.hibernate.cfg.Ejb3JoinColumn extends org.hibernate.cfg.Ejb3Column
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.cfg.Ejb3JoinColumn
  super_class: org.hibernate.cfg.Ejb3Column
{
  private java.lang.String referencedColumn;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

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

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

  public static final int NO_REFERENCE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int PK_REFERENCE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int NON_PK_REFERENCE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public void setJPA2ElementCollection(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // boolean JPA2ElementCollection
         0: .line 71
            aload 0 /* this */
            iload 1 /* JPA2ElementCollection */
            putfield org.hibernate.cfg.Ejb3JoinColumn.JPA2ElementCollection:Z
         1: .line 72
            return
        end local 1 // boolean JPA2ElementCollection
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    2     1  JPA2ElementCollection  Z
    MethodParameters:
                       Name  Flags
      JPA2ElementCollection  

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

  public void setManyToManyOwnerSideEntityName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String manyToManyOwnerSideEntityName
         0: .line 80
            aload 0 /* this */
            aload 1 /* manyToManyOwnerSideEntityName */
            putfield org.hibernate.cfg.Ejb3JoinColumn.manyToManyOwnerSideEntityName:Ljava/lang/String;
         1: .line 81
            return
        end local 1 // java.lang.String manyToManyOwnerSideEntityName
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    2     0                           this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    2     1  manyToManyOwnerSideEntityName  Ljava/lang/String;
    MethodParameters:
                               Name  Flags
      manyToManyOwnerSideEntityName  

  public void setReferencedColumn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String referencedColumn
         0: .line 86
            aload 0 /* this */
            aload 1 /* referencedColumn */
            putfield org.hibernate.cfg.Ejb3JoinColumn.referencedColumn:Ljava/lang/String;
         1: .line 87
            return
        end local 1 // java.lang.String referencedColumn
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    2     1  referencedColumn  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      referencedColumn  

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

  public void setMappedBy(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String mappedBy
         0: .line 94
            aload 0 /* this */
            aload 1 /* mappedBy */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedBy:Ljava/lang/String;
         1: .line 95
            return
        end local 1 // java.lang.String mappedBy
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    2     1  mappedBy  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      mappedBy  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
         0: .line 98
            aload 0 /* this */
            invokespecial org.hibernate.cfg.Ejb3Column.<init>:()V
         1: .line 99
            aload 0 /* this */
            ldc ""
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappedBy:(Ljava/lang/String;)V
         2: .line 100
            return
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/cfg/Ejb3JoinColumn;

  private void <init>(java.lang.String, java.lang.String, boolean, boolean, boolean, boolean, java.lang.String, java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, java.lang.String, boolean, org.hibernate.cfg.Mappings);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;ZLorg/hibernate/cfg/Mappings;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=15, args_size=15
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String sqlType
        start local 2 // java.lang.String name
        start local 3 // boolean nullable
        start local 4 // boolean unique
        start local 5 // boolean insertable
        start local 6 // boolean updatable
        start local 7 // java.lang.String referencedColumn
        start local 8 // java.lang.String secondaryTable
        start local 9 // java.util.Map joins
        start local 10 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 11 // java.lang.String propertyName
        start local 12 // java.lang.String mappedBy
        start local 13 // boolean isImplicit
        start local 14 // org.hibernate.cfg.Mappings mappings
         0: .line 119
            aload 0 /* this */
            invokespecial org.hibernate.cfg.Ejb3Column.<init>:()V
         1: .line 120
            aload 0 /* this */
            iload 13 /* isImplicit */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
         2: .line 121
            aload 0 /* this */
            aload 1 /* sqlType */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setSqlType:(Ljava/lang/String;)V
         3: .line 122
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
         4: .line 123
            aload 0 /* this */
            iload 3 /* nullable */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setNullable:(Z)V
         5: .line 124
            aload 0 /* this */
            iload 4 /* unique */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setUnique:(Z)V
         6: .line 125
            aload 0 /* this */
            iload 5 /* insertable */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setInsertable:(Z)V
         7: .line 126
            aload 0 /* this */
            iload 6 /* updatable */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setUpdatable:(Z)V
         8: .line 127
            aload 0 /* this */
            aload 8 /* secondaryTable */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setExplicitTableName:(Ljava/lang/String;)V
         9: .line 128
            aload 0 /* this */
            aload 10 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
        10: .line 129
            aload 0 /* this */
            aload 9 /* joins */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
        11: .line 130
            aload 0 /* this */
            aload 14 /* mappings */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappings:(Lorg/hibernate/cfg/Mappings;)V
        12: .line 131
            aload 0 /* this */
            aload 10 /* propertyHolder */
            aload 11 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        13: .line 132
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        14: .line 133
            aload 0 /* this */
            aload 7 /* referencedColumn */
            putfield org.hibernate.cfg.Ejb3JoinColumn.referencedColumn:Ljava/lang/String;
        15: .line 134
            aload 0 /* this */
            aload 12 /* mappedBy */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedBy:Ljava/lang/String;
        16: .line 135
            return
        end local 14 // org.hibernate.cfg.Mappings mappings
        end local 13 // boolean isImplicit
        end local 12 // java.lang.String mappedBy
        end local 11 // java.lang.String propertyName
        end local 10 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 9 // java.util.Map joins
        end local 8 // java.lang.String secondaryTable
        end local 7 // java.lang.String referencedColumn
        end local 6 // boolean updatable
        end local 5 // boolean insertable
        end local 4 // boolean unique
        end local 3 // boolean nullable
        end local 2 // java.lang.String name
        end local 1 // java.lang.String sqlType
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   17     1           sqlType  Ljava/lang/String;
            0   17     2              name  Ljava/lang/String;
            0   17     3          nullable  Z
            0   17     4            unique  Z
            0   17     5        insertable  Z
            0   17     6         updatable  Z
            0   17     7  referencedColumn  Ljava/lang/String;
            0   17     8    secondaryTable  Ljava/lang/String;
            0   17     9             joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   17    10    propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   17    11      propertyName  Ljava/lang/String;
            0   17    12          mappedBy  Ljava/lang/String;
            0   17    13        isImplicit  Z
            0   17    14          mappings  Lorg/hibernate/cfg/Mappings;
    Signature: (Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;ZLorg/hibernate/cfg/Mappings;)V
    MethodParameters:
                  Name  Flags
      sqlType           
      name              
      nullable          
      unique            
      insertable        
      updatable         
      referencedColumn  
      secondaryTable    
      joins             
      propertyHolder    
      propertyName      
      mappedBy          
      isImplicit        
      mappings          

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

  public static org.hibernate.cfg.Ejb3JoinColumn[] buildJoinColumnsOrFormulas(org.hibernate.annotations.JoinColumnsOrFormulas, java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, org.hibernate.cfg.Mappings);
    descriptor: (Lorg/hibernate/annotations/JoinColumnsOrFormulas;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=6
        start local 0 // org.hibernate.annotations.JoinColumnsOrFormulas anns
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // org.hibernate.cfg.Mappings mappings
         0: .line 148
            aload 0 /* anns */
            invokeinterface org.hibernate.annotations.JoinColumnsOrFormulas.value:()[Lorg/hibernate/annotations/JoinColumnOrFormula;
            astore 6 /* ann */
        start local 6 // org.hibernate.annotations.JoinColumnOrFormula[] ann
         1: .line 149
            aload 6 /* ann */
            arraylength
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            astore 7 /* joinColumns */
        start local 7 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
         2: .line 150
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         3: goto 17
         4: .line 151
      StackMap locals: org.hibernate.annotations.JoinColumnOrFormula[] org.hibernate.cfg.Ejb3JoinColumn[] int
      StackMap stack:
            aload 6 /* ann */
            iload 8 /* i */
            aaload
            astore 9 /* join */
        start local 9 // org.hibernate.annotations.JoinColumnOrFormula join
         5: .line 152
            aload 9 /* join */
            invokeinterface org.hibernate.annotations.JoinColumnOrFormula.formula:()Lorg/hibernate/annotations/JoinFormula;
            astore 10 /* formula */
        start local 10 // org.hibernate.annotations.JoinFormula formula
         6: .line 153
            aload 10 /* formula */
            invokeinterface org.hibernate.annotations.JoinFormula.value:()Ljava/lang/String;
            ifnull 11
            aload 10 /* formula */
            invokeinterface org.hibernate.annotations.JoinFormula.value:()Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
         7: .line 154
            aload 7 /* joinColumns */
            iload 8 /* i */
         8: .line 155
            aload 10 /* formula */
            aload 1 /* mappedBy */
            aload 2 /* joins */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            aload 5 /* mappings */
         9: .line 154
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinFormula:(Lorg/hibernate/annotations/JoinFormula;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/cfg/Ejb3JoinColumn;
            aastore
        10: .line 157
            goto 16
        11: .line 159
      StackMap locals: org.hibernate.annotations.JoinColumnOrFormula org.hibernate.annotations.JoinFormula
      StackMap stack:
            aload 7 /* joinColumns */
            iload 8 /* i */
        12: .line 160
            iconst_1
            anewarray javax.persistence.JoinColumn
            dup
            iconst_0
            aload 9 /* join */
            invokeinterface org.hibernate.annotations.JoinColumnOrFormula.column:()Ljavax/persistence/JoinColumn;
            aastore
            aload 1 /* mappedBy */
            aload 2 /* joins */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            aload 5 /* mappings */
        13: .line 159
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinColumns:([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
        14: .line 161
            iconst_0
        15: .line 159
            aaload
            aastore
        end local 10 // org.hibernate.annotations.JoinFormula formula
        end local 9 // org.hibernate.annotations.JoinColumnOrFormula join
        16: .line 150
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 8 /* i */
            aload 6 /* ann */
            arraylength
            if_icmplt 4
        end local 8 // int i
        18: .line 165
            aload 7 /* joinColumns */
            areturn
        end local 7 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        end local 6 // org.hibernate.annotations.JoinColumnOrFormula[] ann
        end local 5 // org.hibernate.cfg.Mappings mappings
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // org.hibernate.annotations.JoinColumnsOrFormulas anns
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            anns  Lorg/hibernate/annotations/JoinColumnsOrFormulas;
            0   19     1        mappedBy  Ljava/lang/String;
            0   19     2           joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   19     3  propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   19     4    propertyName  Ljava/lang/String;
            0   19     5        mappings  Lorg/hibernate/cfg/Mappings;
            1   19     6             ann  [Lorg/hibernate/annotations/JoinColumnOrFormula;
            2   19     7     joinColumns  [Lorg/hibernate/cfg/Ejb3JoinColumn;
            3   18     8               i  I
            5   16     9            join  Lorg/hibernate/annotations/JoinColumnOrFormula;
            6   16    10         formula  Lorg/hibernate/annotations/JoinFormula;
    Signature: (Lorg/hibernate/annotations/JoinColumnsOrFormulas;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                Name  Flags
      anns            
      mappedBy        
      joins           
      propertyHolder  
      propertyName    
      mappings        

  public static org.hibernate.cfg.Ejb3JoinColumn buildJoinFormula(org.hibernate.annotations.JoinFormula, java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, org.hibernate.cfg.Mappings);
    descriptor: (Lorg/hibernate/annotations/JoinFormula;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=6
        start local 0 // org.hibernate.annotations.JoinFormula ann
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // org.hibernate.cfg.Mappings mappings
         0: .line 178
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 6 /* formulaColumn */
        start local 6 // org.hibernate.cfg.Ejb3JoinColumn formulaColumn
         1: .line 179
            aload 6 /* formulaColumn */
            aload 0 /* ann */
            invokeinterface org.hibernate.annotations.JoinFormula.value:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setFormula:(Ljava/lang/String;)V
         2: .line 180
            aload 6 /* formulaColumn */
            aload 0 /* ann */
            invokeinterface org.hibernate.annotations.JoinFormula.referencedColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setReferencedColumn:(Ljava/lang/String;)V
         3: .line 181
            aload 6 /* formulaColumn */
            aload 5 /* mappings */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappings:(Lorg/hibernate/cfg/Mappings;)V
         4: .line 182
            aload 6 /* formulaColumn */
            aload 3 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
         5: .line 183
            aload 6 /* formulaColumn */
            aload 2 /* joins */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
         6: .line 184
            aload 6 /* formulaColumn */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
         7: .line 185
            aload 6 /* formulaColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
         8: .line 186
            aload 6 /* formulaColumn */
            areturn
        end local 6 // org.hibernate.cfg.Ejb3JoinColumn formulaColumn
        end local 5 // org.hibernate.cfg.Mappings mappings
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // org.hibernate.annotations.JoinFormula ann
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0             ann  Lorg/hibernate/annotations/JoinFormula;
            0    9     1        mappedBy  Ljava/lang/String;
            0    9     2           joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0    9     3  propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0    9     4    propertyName  Ljava/lang/String;
            0    9     5        mappings  Lorg/hibernate/cfg/Mappings;
            1    9     6   formulaColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
    Signature: (Lorg/hibernate/annotations/JoinFormula;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                Name  Flags
      ann             
      mappedBy        
      joins           
      propertyHolder  
      propertyName    
      mappings        

  public static org.hibernate.cfg.Ejb3JoinColumn[] buildJoinColumns(javax.persistence.JoinColumn[], java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, org.hibernate.cfg.Mappings);
    descriptor: ([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // javax.persistence.JoinColumn[] anns
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // org.hibernate.cfg.Mappings mappings
         0: .line 197
            aload 0 /* anns */
            aload 1 /* mappedBy */
            aload 2 /* joins */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            ldc ""
            aload 5 /* mappings */
         1: .line 196
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinColumnsWithDefaultColumnSuffix:([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
            areturn
        end local 5 // org.hibernate.cfg.Mappings mappings
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // javax.persistence.JoinColumn[] anns
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            anns  [Ljavax/persistence/JoinColumn;
            0    2     1        mappedBy  Ljava/lang/String;
            0    2     2           joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0    2     3  propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0    2     4    propertyName  Ljava/lang/String;
            0    2     5        mappings  Lorg/hibernate/cfg/Mappings;
    Signature: ([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                Name  Flags
      anns            
      mappedBy        
      joins           
      propertyHolder  
      propertyName    
      mappings        

  public static org.hibernate.cfg.Ejb3JoinColumn[] buildJoinColumnsWithDefaultColumnSuffix(javax.persistence.JoinColumn[], java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, java.lang.String, org.hibernate.cfg.Mappings);
    descriptor: ([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=11, args_size=7
        start local 0 // javax.persistence.JoinColumn[] anns
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // java.lang.String suffixForDefaultColumnName
        start local 6 // org.hibernate.cfg.Mappings mappings
         0: .line 209
            aload 3 /* propertyHolder */
         1: .line 210
            aload 3 /* propertyHolder */
            invokeinterface org.hibernate.cfg.PropertyHolder.getPath:()Ljava/lang/String;
            aload 4 /* propertyName */
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         2: .line 209
            invokeinterface org.hibernate.cfg.PropertyHolder.getOverriddenJoinColumn:(Ljava/lang/String;)[Ljavax/persistence/JoinColumn;
            astore 7 /* actualColumns */
        start local 7 // javax.persistence.JoinColumn[] actualColumns
         3: .line 212
            aload 7 /* actualColumns */
            ifnonnull 4
            aload 0 /* anns */
            astore 7 /* actualColumns */
         4: .line 213
      StackMap locals: javax.persistence.JoinColumn[]
      StackMap stack:
            aload 7 /* actualColumns */
            ifnull 5
            aload 7 /* actualColumns */
            arraylength
            ifne 15
         5: .line 214
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            dup
            iconst_0
         6: .line 216
            aconst_null
         7: .line 217
            aload 1 /* mappedBy */
         8: .line 218
            aload 2 /* joins */
         9: .line 219
            aload 3 /* propertyHolder */
        10: .line 220
            aload 4 /* propertyName */
        11: .line 221
            aload 5 /* suffixForDefaultColumnName */
        12: .line 222
            aload 6 /* mappings */
        13: .line 215
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinColumn:(Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/cfg/Ejb3JoinColumn;
            aastore
        14: .line 214
            areturn
        15: .line 226
      StackMap locals:
      StackMap stack:
            aload 7 /* actualColumns */
            arraylength
            istore 8 /* size */
        start local 8 // int size
        16: .line 227
            iload 8 /* size */
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            astore 9 /* result */
        start local 9 // org.hibernate.cfg.Ejb3JoinColumn[] result
        17: .line 228
            iconst_0
            istore 10 /* index */
        start local 10 // int index
        18: goto 29
        19: .line 229
      StackMap locals: int org.hibernate.cfg.Ejb3JoinColumn[] int
      StackMap stack:
            aload 9 /* result */
            iload 10 /* index */
        20: .line 230
            aload 7 /* actualColumns */
            iload 10 /* index */
            aaload
        21: .line 231
            aload 1 /* mappedBy */
        22: .line 232
            aload 2 /* joins */
        23: .line 233
            aload 3 /* propertyHolder */
        24: .line 234
            aload 4 /* propertyName */
        25: .line 235
            aload 5 /* suffixForDefaultColumnName */
        26: .line 236
            aload 6 /* mappings */
        27: .line 229
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinColumn:(Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/cfg/Ejb3JoinColumn;
            aastore
        28: .line 228
            iinc 10 /* index */ 1
      StackMap locals:
      StackMap stack:
        29: iload 10 /* index */
            iload 8 /* size */
            if_icmplt 19
        end local 10 // int index
        30: .line 239
            aload 9 /* result */
            areturn
        end local 9 // org.hibernate.cfg.Ejb3JoinColumn[] result
        end local 8 // int size
        end local 7 // javax.persistence.JoinColumn[] actualColumns
        end local 6 // org.hibernate.cfg.Mappings mappings
        end local 5 // java.lang.String suffixForDefaultColumnName
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // javax.persistence.JoinColumn[] anns
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   31     0                        anns  [Ljavax/persistence/JoinColumn;
            0   31     1                    mappedBy  Ljava/lang/String;
            0   31     2                       joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   31     3              propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   31     4                propertyName  Ljava/lang/String;
            0   31     5  suffixForDefaultColumnName  Ljava/lang/String;
            0   31     6                    mappings  Lorg/hibernate/cfg/Mappings;
            3   31     7               actualColumns  [Ljavax/persistence/JoinColumn;
           16   31     8                        size  I
           17   31     9                      result  [Lorg/hibernate/cfg/Ejb3JoinColumn;
           18   30    10                       index  I
    Signature: ([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                            Name  Flags
      anns                        
      mappedBy                    
      joins                       
      propertyHolder              
      propertyName                
      suffixForDefaultColumnName  
      mappings                    

  private static org.hibernate.cfg.Ejb3JoinColumn buildJoinColumn(javax.persistence.JoinColumn, java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, java.lang.String, org.hibernate.cfg.Mappings);
    descriptor: (Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=7
        start local 0 // javax.persistence.JoinColumn ann
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // java.lang.String suffixForDefaultColumnName
        start local 6 // org.hibernate.cfg.Mappings mappings
         0: .line 253
            aload 0 /* ann */
            ifnull 19
         1: .line 254
            aload 1 /* mappedBy */
            invokestatic org.hibernate.cfg.BinderHelper.isEmptyAnnotationValue:(Ljava/lang/String;)Z
            ifeq 7
         2: .line 255
            new org.hibernate.AnnotationException
            dup
         3: .line 256
            new java.lang.StringBuilder
            dup
            ldc "Illegal attempt to define a @JoinColumn with a mappedBy association: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 257
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 256
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 255
            invokespecial org.hibernate.AnnotationException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 260
      StackMap locals:
      StackMap stack:
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 7 /* joinColumn */
        start local 7 // org.hibernate.cfg.Ejb3JoinColumn joinColumn
         8: .line 261
            aload 7 /* joinColumn */
            aload 6 /* mappings */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappings:(Lorg/hibernate/cfg/Mappings;)V
         9: .line 262
            aload 7 /* joinColumn */
            aload 0 /* ann */
            aconst_null
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoinAnnotation:(Ljavax/persistence/JoinColumn;Ljava/lang/String;)V
        10: .line 263
            aload 7 /* joinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getLogicalColumnName:()Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifeq 13
        11: .line 264
            aload 5 /* suffixForDefaultColumnName */
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifne 13
        12: .line 265
            aload 7 /* joinColumn */
            new java.lang.StringBuilder
            dup
            aload 4 /* propertyName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* suffixForDefaultColumnName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
        13: .line 267
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn
      StackMap stack:
            aload 7 /* joinColumn */
            aload 2 /* joins */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
        14: .line 268
            aload 7 /* joinColumn */
            aload 3 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
        15: .line 269
            aload 7 /* joinColumn */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        16: .line 270
            aload 7 /* joinColumn */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
        17: .line 271
            aload 7 /* joinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        18: .line 272
            aload 7 /* joinColumn */
            areturn
        end local 7 // org.hibernate.cfg.Ejb3JoinColumn joinColumn
        19: .line 275
      StackMap locals:
      StackMap stack:
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 7 /* joinColumn */
        start local 7 // org.hibernate.cfg.Ejb3JoinColumn joinColumn
        20: .line 276
            aload 7 /* joinColumn */
            aload 1 /* mappedBy */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappedBy:(Ljava/lang/String;)V
        21: .line 277
            aload 7 /* joinColumn */
            aload 2 /* joins */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
        22: .line 278
            aload 7 /* joinColumn */
            aload 3 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
        23: .line 279
            aload 7 /* joinColumn */
        24: .line 280
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
        25: .line 279
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        26: .line 283
            aload 5 /* suffixForDefaultColumnName */
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifne 30
        27: .line 284
            aload 7 /* joinColumn */
            new java.lang.StringBuilder
            dup
            aload 4 /* propertyName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* suffixForDefaultColumnName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
        28: .line 285
            aload 7 /* joinColumn */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
        29: .line 286
            goto 31
        30: .line 288
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn
      StackMap stack:
            aload 7 /* joinColumn */
            iconst_1
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
        31: .line 290
      StackMap locals:
      StackMap stack:
            aload 7 /* joinColumn */
            aload 6 /* mappings */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappings:(Lorg/hibernate/cfg/Mappings;)V
        32: .line 291
            aload 7 /* joinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        33: .line 292
            aload 7 /* joinColumn */
            areturn
        end local 7 // org.hibernate.cfg.Ejb3JoinColumn joinColumn
        end local 6 // org.hibernate.cfg.Mappings mappings
        end local 5 // java.lang.String suffixForDefaultColumnName
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // javax.persistence.JoinColumn ann
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   34     0                         ann  Ljavax/persistence/JoinColumn;
            0   34     1                    mappedBy  Ljava/lang/String;
            0   34     2                       joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   34     3              propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   34     4                propertyName  Ljava/lang/String;
            0   34     5  suffixForDefaultColumnName  Ljava/lang/String;
            0   34     6                    mappings  Lorg/hibernate/cfg/Mappings;
            8   19     7                  joinColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
           20   34     7                  joinColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
    Signature: (Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                            Name  Flags
      ann                         
      mappedBy                    
      joins                       
      propertyHolder              
      propertyName                
      suffixForDefaultColumnName  
      mappings                    

  public void setJoinAnnotation(javax.persistence.JoinColumn, java.lang.String);
    descriptor: (Ljavax/persistence/JoinColumn;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // javax.persistence.JoinColumn annJoin
        start local 2 // java.lang.String defaultName
         0: .line 299
            aload 1 /* annJoin */
            ifnonnull 3
         1: .line 300
            aload 0 /* this */
            iconst_1
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
         2: .line 301
            goto 20
         3: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
         4: .line 304
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappings:()Lorg/hibernate/cfg/Mappings;
            invokeinterface org.hibernate.cfg.Mappings.getObjectNameNormalizer:()Lorg/hibernate/cfg/ObjectNameNormalizer;
            astore 3 /* nameNormalizer */
        start local 3 // org.hibernate.cfg.ObjectNameNormalizer nameNormalizer
         5: .line 305
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.columnDefinition:()Ljava/lang/String;
            invokestatic org.hibernate.cfg.BinderHelper.isEmptyAnnotationValue:(Ljava/lang/String;)Z
            ifne 6
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.columnDefinition:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setSqlType:(Ljava/lang/String;)V
         6: .line 306
      StackMap locals: org.hibernate.cfg.ObjectNameNormalizer
      StackMap stack:
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.name:()Ljava/lang/String;
            invokestatic org.hibernate.cfg.BinderHelper.isEmptyAnnotationValue:(Ljava/lang/String;)Z
            ifne 7
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.name:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
         7: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.nullable:()Z
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setNullable:(Z)V
         8: .line 308
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.unique:()Z
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setUnique:(Z)V
         9: .line 309
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.insertable:()Z
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setInsertable:(Z)V
        10: .line 310
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.updatable:()Z
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setUpdatable:(Z)V
        11: .line 311
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.referencedColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setReferencedColumn:(Ljava/lang/String;)V
        12: .line 313
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.table:()Ljava/lang/String;
            invokestatic org.hibernate.cfg.BinderHelper.isEmptyAnnotationValue:(Ljava/lang/String;)Z
            ifne 17
        13: .line 314
            aload 3 /* nameNormalizer */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getNamingStrategyDelegate:()Lorg/hibernate/cfg/naming/NamingStrategyDelegate;
        14: .line 315
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.table:()Ljava/lang/String;
        15: .line 314
            invokeinterface org.hibernate.cfg.naming.NamingStrategyDelegate.toPhysicalTableName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
        16: .line 316
            goto 18
        17: .line 317
      StackMap locals:
      StackMap stack:
            ldc ""
        18: .line 313
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* tableName */
        start local 4 // java.lang.String tableName
        19: .line 318
            aload 0 /* this */
            aload 4 /* tableName */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setExplicitTableName:(Ljava/lang/String;)V
        end local 4 // java.lang.String tableName
        end local 3 // org.hibernate.cfg.ObjectNameNormalizer nameNormalizer
        20: .line 320
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String defaultName
        end local 1 // javax.persistence.JoinColumn annJoin
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   21     1         annJoin  Ljavax/persistence/JoinColumn;
            0   21     2     defaultName  Ljava/lang/String;
            5   20     3  nameNormalizer  Lorg/hibernate/cfg/ObjectNameNormalizer;
           19   20     4       tableName  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      annJoin      
      defaultName  

  public static org.hibernate.cfg.Ejb3JoinColumn buildJoinColumn(javax.persistence.PrimaryKeyJoinColumn, javax.persistence.JoinColumn, org.hibernate.mapping.Value, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, org.hibernate.cfg.Mappings);
    descriptor: (Ljavax/persistence/PrimaryKeyJoinColumn;Ljavax/persistence/JoinColumn;Lorg/hibernate/mapping/Value;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=16, locals=13, args_size=6
        start local 0 // javax.persistence.PrimaryKeyJoinColumn pkJoinAnn
        start local 1 // javax.persistence.JoinColumn joinAnn
        start local 2 // org.hibernate.mapping.Value identifier
        start local 3 // java.util.Map joins
        start local 4 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 5 // org.hibernate.cfg.Mappings mappings
         0: .line 332
            aload 2 /* identifier */
            invokeinterface org.hibernate.mapping.Value.getColumnIterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            astore 6 /* col */
        start local 6 // org.hibernate.mapping.Column col
         1: .line 333
            aload 5 /* mappings */
            aload 6 /* col */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:()Ljava/lang/String;
            aload 2 /* identifier */
            invokeinterface org.hibernate.mapping.Value.getTable:()Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.cfg.Mappings.getLogicalColumnName:(Ljava/lang/String;Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            astore 7 /* defaultName */
        start local 7 // java.lang.String defaultName
         2: .line 334
            aload 0 /* pkJoinAnn */
            ifnonnull 3
            aload 1 /* joinAnn */
            ifnull 28
         3: .line 338
      StackMap locals: org.hibernate.mapping.Column java.lang.String
      StackMap stack:
            aload 0 /* pkJoinAnn */
            ifnull 8
         4: .line 339
            aload 0 /* pkJoinAnn */
            invokeinterface javax.persistence.PrimaryKeyJoinColumn.name:()Ljava/lang/String;
            astore 8 /* colName */
        start local 8 // java.lang.String colName
         5: .line 340
            aload 0 /* pkJoinAnn */
            invokeinterface javax.persistence.PrimaryKeyJoinColumn.columnDefinition:()Ljava/lang/String;
            astore 9 /* columnDefinition */
        start local 9 // java.lang.String columnDefinition
         6: .line 341
            aload 0 /* pkJoinAnn */
            invokeinterface javax.persistence.PrimaryKeyJoinColumn.referencedColumnName:()Ljava/lang/String;
            astore 10 /* referencedColumnName */
        start local 10 // java.lang.String referencedColumnName
         7: .line 342
            goto 11
        end local 10 // java.lang.String referencedColumnName
        end local 9 // java.lang.String columnDefinition
        end local 8 // java.lang.String colName
         8: .line 344
      StackMap locals:
      StackMap stack:
            aload 1 /* joinAnn */
            invokeinterface javax.persistence.JoinColumn.name:()Ljava/lang/String;
            astore 8 /* colName */
        start local 8 // java.lang.String colName
         9: .line 345
            aload 1 /* joinAnn */
            invokeinterface javax.persistence.JoinColumn.columnDefinition:()Ljava/lang/String;
            astore 9 /* columnDefinition */
        start local 9 // java.lang.String columnDefinition
        10: .line 346
            aload 1 /* joinAnn */
            invokeinterface javax.persistence.JoinColumn.referencedColumnName:()Ljava/lang/String;
            astore 10 /* referencedColumnName */
        start local 10 // java.lang.String referencedColumnName
        11: .line 349
      StackMap locals: java.lang.String java.lang.String java.lang.String
      StackMap stack:
            ldc ""
            aload 9 /* columnDefinition */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 350
            aconst_null
            goto 14
        13: .line 351
      StackMap locals:
      StackMap stack:
            aload 5 /* mappings */
            invokeinterface org.hibernate.cfg.Mappings.getObjectNameNormalizer:()Lorg/hibernate/cfg/ObjectNameNormalizer;
            aload 9 /* columnDefinition */
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
        14: .line 349
      StackMap locals:
      StackMap stack: java.lang.String
            astore 11 /* sqlType */
        start local 11 // java.lang.String sqlType
        15: .line 352
            ldc ""
            aload 8 /* colName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 353
            aload 7 /* defaultName */
            goto 18
        17: .line 354
      StackMap locals: java.lang.String
      StackMap stack:
            aload 8 /* colName */
        18: .line 352
      StackMap locals:
      StackMap stack: java.lang.String
            astore 12 /* name */
        start local 12 // java.lang.String name
        19: .line 355
            aload 5 /* mappings */
            invokeinterface org.hibernate.cfg.Mappings.getObjectNameNormalizer:()Lorg/hibernate/cfg/ObjectNameNormalizer;
            aload 12 /* name */
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            astore 12 /* name */
        20: .line 356
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
        21: .line 357
            aload 11 /* sqlType */
        22: .line 358
            aload 12 /* name */
            iconst_0
            iconst_0
        23: .line 359
            iconst_1
            iconst_1
        24: .line 360
            aload 10 /* referencedColumnName */
        25: .line 361
            aconst_null
            aload 3 /* joins */
        26: .line 362
            aload 4 /* propertyHolder */
            aconst_null
            aconst_null
            iconst_0
            aload 5 /* mappings */
        27: .line 356
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:(Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;ZLorg/hibernate/cfg/Mappings;)V
            areturn
        end local 12 // java.lang.String name
        end local 11 // java.lang.String sqlType
        end local 10 // java.lang.String referencedColumnName
        end local 9 // java.lang.String columnDefinition
        end local 8 // java.lang.String colName
        28: .line 366
      StackMap locals: javax.persistence.PrimaryKeyJoinColumn javax.persistence.JoinColumn org.hibernate.mapping.Value java.util.Map org.hibernate.cfg.PropertyHolder org.hibernate.cfg.Mappings org.hibernate.mapping.Column java.lang.String
      StackMap stack:
            aload 5 /* mappings */
            invokeinterface org.hibernate.cfg.Mappings.getObjectNameNormalizer:()Lorg/hibernate/cfg/ObjectNameNormalizer;
            aload 7 /* defaultName */
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* defaultName */
        29: .line 367
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
        30: .line 368
            aconst_null
            aload 7 /* defaultName */
        31: .line 369
            iconst_0
            iconst_0
            iconst_1
            iconst_1
            aconst_null
            aconst_null
        32: .line 370
            aload 3 /* joins */
            aload 4 /* propertyHolder */
            aconst_null
            aconst_null
            iconst_1
            aload 5 /* mappings */
        33: .line 367
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:(Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;ZLorg/hibernate/cfg/Mappings;)V
            areturn
        end local 7 // java.lang.String defaultName
        end local 6 // org.hibernate.mapping.Column col
        end local 5 // org.hibernate.cfg.Mappings mappings
        end local 4 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 3 // java.util.Map joins
        end local 2 // org.hibernate.mapping.Value identifier
        end local 1 // javax.persistence.JoinColumn joinAnn
        end local 0 // javax.persistence.PrimaryKeyJoinColumn pkJoinAnn
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   34     0             pkJoinAnn  Ljavax/persistence/PrimaryKeyJoinColumn;
            0   34     1               joinAnn  Ljavax/persistence/JoinColumn;
            0   34     2            identifier  Lorg/hibernate/mapping/Value;
            0   34     3                 joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   34     4        propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   34     5              mappings  Lorg/hibernate/cfg/Mappings;
            1   34     6                   col  Lorg/hibernate/mapping/Column;
            2   34     7           defaultName  Ljava/lang/String;
            5    8     8               colName  Ljava/lang/String;
            9   28     8               colName  Ljava/lang/String;
            6    8     9      columnDefinition  Ljava/lang/String;
           10   28     9      columnDefinition  Ljava/lang/String;
            7    8    10  referencedColumnName  Ljava/lang/String;
           11   28    10  referencedColumnName  Ljava/lang/String;
           15   28    11               sqlType  Ljava/lang/String;
           19   28    12                  name  Ljava/lang/String;
    Signature: (Ljavax/persistence/PrimaryKeyJoinColumn;Ljavax/persistence/JoinColumn;Lorg/hibernate/mapping/Value;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Lorg/hibernate/cfg/Mappings;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                Name  Flags
      pkJoinAnn       
      joinAnn         
      identifier      
      joins           
      propertyHolder  
      mappings        

  public void setPersistentClass(org.hibernate.mapping.PersistentClass, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, java.util.Map<org.hibernate.annotations.common.reflection.XClass, org.hibernate.cfg.InheritanceState>);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Ljava/util/Map;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.PersistentClass persistentClass
        start local 2 // java.util.Map joins
        start local 3 // java.util.Map inheritanceStatePerClass
         0: .line 384
            aload 0 /* this */
            aload 1 /* persistentClass */
            aload 2 /* joins */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappings:()Lorg/hibernate/cfg/Mappings;
            aload 3 /* inheritanceStatePerClass */
            invokestatic org.hibernate.cfg.PropertyHolderBuilder.buildPropertyHolder:(Lorg/hibernate/mapping/PersistentClass;Ljava/util/Map;Lorg/hibernate/cfg/Mappings;Ljava/util/Map;)Lorg/hibernate/cfg/PropertyHolder;
            putfield org.hibernate.cfg.Ejb3JoinColumn.propertyHolder:Lorg/hibernate/cfg/PropertyHolder;
         1: .line 385
            return
        end local 3 // java.util.Map inheritanceStatePerClass
        end local 2 // java.util.Map joins
        end local 1 // org.hibernate.mapping.PersistentClass persistentClass
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    2     1           persistentClass  Lorg/hibernate/mapping/PersistentClass;
            0    2     2                     joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0    2     3  inheritanceStatePerClass  Ljava/util/Map<Lorg/hibernate/annotations/common/reflection/XClass;Lorg/hibernate/cfg/InheritanceState;>;
    Signature: (Lorg/hibernate/mapping/PersistentClass;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Ljava/util/Map<Lorg/hibernate/annotations/common/reflection/XClass;Lorg/hibernate/cfg/InheritanceState;>;)V
    MethodParameters:
                          Name  Flags
      persistentClass           
      joins                     
      inheritanceStatePerClass  

  public static void checkIfJoinColumn(java.lang.Object, org.hibernate.cfg.PropertyHolder, org.hibernate.cfg.PropertyData);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/cfg/PropertyHolder;Lorg/hibernate/cfg/PropertyData;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Object columns
        start local 1 // org.hibernate.cfg.PropertyHolder holder
        start local 2 // org.hibernate.cfg.PropertyData property
         0: .line 388
            aload 0 /* columns */
            instanceof org.hibernate.cfg.Ejb3JoinColumn[]
            ifne 8
         1: .line 389
            new org.hibernate.AnnotationException
            dup
         2: .line 390
            new java.lang.StringBuilder
            dup
            ldc "@Column cannot be used on an association property: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 391
            aload 1 /* holder */
            invokeinterface org.hibernate.cfg.PropertyHolder.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 392
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 393
            aload 2 /* property */
            invokeinterface org.hibernate.cfg.PropertyData.getPropertyName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 390
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 389
            invokespecial org.hibernate.AnnotationException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 396
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.cfg.PropertyData property
        end local 1 // org.hibernate.cfg.PropertyHolder holder
        end local 0 // java.lang.Object columns
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0   columns  Ljava/lang/Object;
            0    9     1    holder  Lorg/hibernate/cfg/PropertyHolder;
            0    9     2  property  Lorg/hibernate/cfg/PropertyData;
    MethodParameters:
          Name  Flags
      columns   
      holder    
      property  

  public void copyReferencedStructureAndCreateDefaultJoinColumns(org.hibernate.mapping.PersistentClass, java.util.Iterator, org.hibernate.mapping.SimpleValue);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Ljava/util/Iterator;Lorg/hibernate/mapping/SimpleValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 2 // java.util.Iterator columnIterator
        start local 3 // org.hibernate.mapping.SimpleValue value
         0: .line 404
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.isNameDeferred:()Z
            ifne 4
         1: .line 405
            new org.hibernate.AssertionFailure
            dup
            ldc "Building implicit column but the column is not implicit"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 408
      StackMap locals:
      StackMap stack:
            aload 2 /* columnIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            astore 4 /* synthCol */
        start local 4 // org.hibernate.mapping.Column synthCol
         3: .line 409
            aload 0 /* this */
            aload 4 /* synthCol */
            aload 1 /* referencedEntity */
            aload 3 /* value */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.linkValueUsingDefaultColumnNaming:(Lorg/hibernate/mapping/Column;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/mapping/SimpleValue;)V
        end local 4 // org.hibernate.mapping.Column synthCol
         4: .line 407
      StackMap locals:
      StackMap stack:
            aload 2 /* columnIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 412
            aload 0 /* this */
            aconst_null
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappingColumn:(Lorg/hibernate/mapping/Column;)V
         6: .line 413
            return
        end local 3 // org.hibernate.mapping.SimpleValue value
        end local 2 // java.util.Iterator columnIterator
        end local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    7     1  referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0    7     2    columnIterator  Ljava/util/Iterator;
            0    7     3             value  Lorg/hibernate/mapping/SimpleValue;
            3    4     4          synthCol  Lorg/hibernate/mapping/Column;
    MethodParameters:
                  Name  Flags
      referencedEntity  
      columnIterator    
      value             

  public void linkValueUsingDefaultColumnNaming(org.hibernate.mapping.Column, org.hibernate.mapping.PersistentClass, org.hibernate.mapping.SimpleValue);
    descriptor: (Lorg/hibernate/mapping/Column;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/mapping/SimpleValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=6, args_size=4
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.Column referencedColumn
        start local 2 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 3 // org.hibernate.mapping.SimpleValue value
         0: .line 420
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappings:()Lorg/hibernate/cfg/Mappings;
         1: .line 421
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:()Ljava/lang/String;
            aload 2 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
         2: .line 420
            invokeinterface org.hibernate.cfg.Mappings.getLogicalColumnName:(Ljava/lang/String;Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            astore 5 /* logicalReferencedColumn */
        start local 5 // java.lang.String logicalReferencedColumn
         3: .line 423
            aload 0 /* this */
            aload 2 /* referencedEntity */
            aload 5 /* logicalReferencedColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.buildDefaultColumnName:(Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* columnName */
        start local 4 // java.lang.String columnName
         4: .line 425
            aload 0 /* this */
            aload 4 /* columnName */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
         5: .line 426
            aload 0 /* this */
            aload 5 /* logicalReferencedColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setReferencedColumn:(Ljava/lang/String;)V
         6: .line 427
            aload 0 /* this */
         7: .line 428
            aload 4 /* columnName */
         8: .line 429
            aconst_null
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getLength:()I
         9: .line 430
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getPrecision:()I
        10: .line 431
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getScale:()I
        11: .line 432
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            ifnull 12
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            invokevirtual org.hibernate.mapping.Column.isNullable:()Z
            goto 13
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.Column org.hibernate.mapping.PersistentClass org.hibernate.mapping.SimpleValue java.lang.String java.lang.String
      StackMap stack: org.hibernate.cfg.Ejb3JoinColumn java.lang.String null int int int
        12: iconst_0
        13: .line 433
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.Column org.hibernate.mapping.PersistentClass org.hibernate.mapping.SimpleValue java.lang.String java.lang.String
      StackMap stack: org.hibernate.cfg.Ejb3JoinColumn java.lang.String null int int int int
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getSqlType:()Ljava/lang/String;
        14: .line 434
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            ifnull 15
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            invokevirtual org.hibernate.mapping.Column.isUnique:()Z
            goto 16
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.Column org.hibernate.mapping.PersistentClass org.hibernate.mapping.SimpleValue java.lang.String java.lang.String
      StackMap stack: org.hibernate.cfg.Ejb3JoinColumn java.lang.String null int int int int java.lang.String
        15: iconst_0
        16: .line 435
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.Column org.hibernate.mapping.PersistentClass org.hibernate.mapping.SimpleValue java.lang.String java.lang.String
      StackMap stack: org.hibernate.cfg.Ejb3JoinColumn java.lang.String null int int int int java.lang.String int
            iconst_0
        17: .line 427
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.initMappingColumn:(Ljava/lang/String;Ljava/lang/String;IIIZLjava/lang/String;ZZ)V
        18: .line 437
            aload 0 /* this */
            aload 3 /* value */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.linkWithValue:(Lorg/hibernate/mapping/SimpleValue;)V
        19: .line 438
            return
        end local 5 // java.lang.String logicalReferencedColumn
        end local 4 // java.lang.String columnName
        end local 3 // org.hibernate.mapping.SimpleValue value
        end local 2 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 1 // org.hibernate.mapping.Column referencedColumn
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   20     0                     this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   20     1         referencedColumn  Lorg/hibernate/mapping/Column;
            0   20     2         referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0   20     3                    value  Lorg/hibernate/mapping/SimpleValue;
            4   20     4               columnName  Ljava/lang/String;
            3   20     5  logicalReferencedColumn  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      referencedColumn  
      referencedEntity  
      value             

  public void addDefaultJoinColumnName(org.hibernate.mapping.PersistentClass, java.lang.String);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 2 // java.lang.String logicalReferencedColumn
         0: .line 441
            aload 0 /* this */
            aload 1 /* referencedEntity */
            aload 2 /* logicalReferencedColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.buildDefaultColumnName:(Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* columnName */
        start local 3 // java.lang.String columnName
         1: .line 442
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 3 /* columnName */
            invokevirtual org.hibernate.mapping.Column.setName:(Ljava/lang/String;)V
         2: .line 443
            aload 0 /* this */
            aload 3 /* columnName */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
         3: .line 444
            return
        end local 3 // java.lang.String columnName
        end local 2 // java.lang.String logicalReferencedColumn
        end local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    4     0                     this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    4     1         referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0    4     2  logicalReferencedColumn  Ljava/lang/String;
            1    4     3               columnName  Ljava/lang/String;
    MethodParameters:
                         Name  Flags
      referencedEntity         
      logicalReferencedColumn  

  private java.lang.String buildDefaultColumnName(org.hibernate.mapping.PersistentClass, java.lang.String);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 2 // java.lang.String logicalReferencedColumn
         0: .line 448
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByTableName:Ljava/lang/String;
            ifnonnull 1
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByPropertyName:Ljava/lang/String;
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* mappedBySide */
        start local 4 // boolean mappedBySide
         3: .line 449
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getPropertyName:()Ljava/lang/String;
            ifnull 4
            iconst_1
            goto 5
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String top int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* ownerSide */
        start local 5 // boolean ownerSide
         6: .line 451
            aload 2 /* logicalReferencedColumn */
            invokestatic org.hibernate.internal.util.StringHelper.isQuoted:(Ljava/lang/String;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 6 /* isRefColumnQuoted */
        start local 6 // java.lang.Boolean isRefColumnQuoted
         7: .line 452
            aload 6 /* isRefColumnQuoted */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 9
         8: .line 453
            aload 2 /* logicalReferencedColumn */
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;)Ljava/lang/String;
            goto 10
         9: .line 454
      StackMap locals: int java.lang.Boolean
      StackMap stack:
            aload 2 /* logicalReferencedColumn */
        10: .line 452
      StackMap locals:
      StackMap stack: java.lang.String
            astore 7 /* unquotedLogicalReferenceColumn */
        start local 7 // java.lang.String unquotedLogicalReferenceColumn
        11: .line 456
            iload 4 /* mappedBySide */
            ifeq 32
        12: .line 457
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByTableName:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* unquotedMappedbyTable */
        start local 8 // java.lang.String unquotedMappedbyTable
        13: .line 458
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.JPA2ElementCollection:Z
            ifeq 22
        14: .line 459
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getNamingStrategyDelegate:()Lorg/hibernate/cfg/naming/NamingStrategyDelegate;
        15: .line 460
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByEntityName:Ljava/lang/String;
        16: .line 461
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByJpaEntityName:Ljava/lang/String;
        17: .line 462
            aload 8 /* unquotedMappedbyTable */
        18: .line 463
            aload 7 /* unquotedLogicalReferenceColumn */
        19: .line 464
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByPropertyName:Ljava/lang/String;
        20: .line 459
            invokeinterface org.hibernate.cfg.naming.NamingStrategyDelegate.determineImplicitElementCollectionJoinColumnName:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* columnName */
        start local 3 // java.lang.String columnName
        21: .line 466
            goto 29
        end local 3 // java.lang.String columnName
        22: .line 468
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getNamingStrategyDelegate:()Lorg/hibernate/cfg/naming/NamingStrategyDelegate;
        23: .line 469
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByEntityName:Ljava/lang/String;
        24: .line 470
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByJpaEntityName:Ljava/lang/String;
        25: .line 471
            aload 8 /* unquotedMappedbyTable */
        26: .line 472
            aload 7 /* unquotedLogicalReferenceColumn */
        27: .line 473
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByPropertyName:Ljava/lang/String;
        28: .line 468
            invokeinterface org.hibernate.cfg.naming.NamingStrategyDelegate.determineImplicitEntityAssociationJoinColumnName:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* columnName */
        start local 3 // java.lang.String columnName
        29: .line 477
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String java.lang.String int int java.lang.Boolean java.lang.String java.lang.String
      StackMap stack:
            aload 6 /* isRefColumnQuoted */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 30
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByTableName:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isQuoted:(Ljava/lang/String;)Z
            ifeq 53
        30: .line 478
      StackMap locals:
      StackMap stack:
            aload 3 /* columnName */
            invokestatic org.hibernate.internal.util.StringHelper.quote:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* columnName */
        end local 8 // java.lang.String unquotedMappedbyTable
        31: .line 480
            goto 53
        end local 3 // java.lang.String columnName
        32: .line 481
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String top int int java.lang.Boolean java.lang.String
      StackMap stack:
            iload 5 /* ownerSide */
            ifeq 45
        33: .line 482
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappings:()Lorg/hibernate/cfg/Mappings;
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.cfg.Mappings.getLogicalTableName:(Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            astore 8 /* logicalTableName */
        start local 8 // java.lang.String logicalTableName
        34: .line 483
            aload 8 /* logicalTableName */
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* unquotedLogicalTableName */
        start local 9 // java.lang.String unquotedLogicalTableName
        35: .line 484
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getNamingStrategyDelegate:()Lorg/hibernate/cfg/naming/NamingStrategyDelegate;
        36: .line 485
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getEntityName:()Ljava/lang/String;
        37: .line 486
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getJpaEntityName:()Ljava/lang/String;
        38: .line 487
            aload 9 /* unquotedLogicalTableName */
        39: .line 488
            aload 7 /* unquotedLogicalReferenceColumn */
        40: .line 489
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getPropertyName:()Ljava/lang/String;
        41: .line 484
            invokeinterface org.hibernate.cfg.naming.NamingStrategyDelegate.determineImplicitEntityAssociationJoinColumnName:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* columnName */
        start local 3 // java.lang.String columnName
        42: .line 492
            aload 6 /* isRefColumnQuoted */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 43
            aload 8 /* logicalTableName */
            invokestatic org.hibernate.internal.util.StringHelper.isQuoted:(Ljava/lang/String;)Z
            ifeq 53
        43: .line 493
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String java.lang.String int int java.lang.Boolean java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* columnName */
            invokestatic org.hibernate.internal.util.StringHelper.quote:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* columnName */
        end local 9 // java.lang.String unquotedLogicalTableName
        end local 8 // java.lang.String logicalTableName
        44: .line 495
            goto 53
        end local 3 // java.lang.String columnName
        45: .line 498
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String top int int java.lang.Boolean java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappings:()Lorg/hibernate/cfg/Mappings;
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.cfg.Mappings.getLogicalTableName:(Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            astore 8 /* logicalTableName */
        start local 8 // java.lang.String logicalTableName
        46: .line 499
            aload 8 /* logicalTableName */
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* unquotedLogicalTableName */
        start local 9 // java.lang.String unquotedLogicalTableName
        47: .line 500
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getNamingStrategyDelegate:()Lorg/hibernate/cfg/naming/NamingStrategyDelegate;
        48: .line 501
            aload 7 /* unquotedLogicalReferenceColumn */
        49: .line 502
            aload 9 /* unquotedLogicalTableName */
        50: .line 500
            invokeinterface org.hibernate.cfg.naming.NamingStrategyDelegate.toPhysicalJoinKeyColumnName:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* columnName */
        start local 3 // java.lang.String columnName
        51: .line 505
            aload 6 /* isRefColumnQuoted */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 52
            aload 8 /* logicalTableName */
            invokestatic org.hibernate.internal.util.StringHelper.isQuoted:(Ljava/lang/String;)Z
            ifeq 53
        52: .line 506
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String java.lang.String int int java.lang.Boolean java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* columnName */
            invokestatic org.hibernate.internal.util.StringHelper.quote:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* columnName */
        end local 9 // java.lang.String unquotedLogicalTableName
        end local 8 // java.lang.String logicalTableName
        53: .line 509
      StackMap locals:
      StackMap stack:
            aload 3 /* columnName */
            areturn
        end local 7 // java.lang.String unquotedLogicalReferenceColumn
        end local 6 // java.lang.Boolean isRefColumnQuoted
        end local 5 // boolean ownerSide
        end local 4 // boolean mappedBySide
        end local 3 // java.lang.String columnName
        end local 2 // java.lang.String logicalReferencedColumn
        end local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   54     0                            this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   54     1                referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0   54     2         logicalReferencedColumn  Ljava/lang/String;
           21   22     3                      columnName  Ljava/lang/String;
           29   32     3                      columnName  Ljava/lang/String;
           42   45     3                      columnName  Ljava/lang/String;
           51   54     3                      columnName  Ljava/lang/String;
            3   54     4                    mappedBySide  Z
            6   54     5                       ownerSide  Z
            7   54     6               isRefColumnQuoted  Ljava/lang/Boolean;
           11   54     7  unquotedLogicalReferenceColumn  Ljava/lang/String;
           13   31     8           unquotedMappedbyTable  Ljava/lang/String;
           34   44     8                logicalTableName  Ljava/lang/String;
           35   44     9        unquotedLogicalTableName  Ljava/lang/String;
           46   53     8                logicalTableName  Ljava/lang/String;
           47   53     9        unquotedLogicalTableName  Ljava/lang/String;
    MethodParameters:
                         Name  Flags
      referencedEntity         
      logicalReferencedColumn  

  public void linkValueUsingAColumnCopy(org.hibernate.mapping.Column, org.hibernate.mapping.SimpleValue);
    descriptor: (Lorg/hibernate/mapping/Column;Lorg/hibernate/mapping/SimpleValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=3, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.Column column
        start local 2 // org.hibernate.mapping.SimpleValue value
         0: .line 516
            aload 0 /* this */
         1: .line 518
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:()Ljava/lang/String;
         2: .line 519
            aconst_null
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getLength:()I
         3: .line 520
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getPrecision:()I
         4: .line 521
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getScale:()I
         5: .line 522
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            invokevirtual org.hibernate.mapping.Column.isNullable:()Z
         6: .line 523
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getSqlType:()Ljava/lang/String;
         7: .line 524
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            invokevirtual org.hibernate.mapping.Column.isUnique:()Z
         8: .line 525
            iconst_0
         9: .line 516
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.initMappingColumn:(Ljava/lang/String;Ljava/lang/String;IIIZLjava/lang/String;ZZ)V
        10: .line 527
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.linkWithValue:(Lorg/hibernate/mapping/SimpleValue;)V
        11: .line 528
            return
        end local 2 // org.hibernate.mapping.SimpleValue value
        end local 1 // org.hibernate.mapping.Column column
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   12     1  column  Lorg/hibernate/mapping/Column;
            0   12     2   value  Lorg/hibernate/mapping/SimpleValue;
    MethodParameters:
        Name  Flags
      column  
      value   

  protected void addColumnBinding(org.hibernate.mapping.SimpleValue);
    descriptor: (Lorg/hibernate/mapping/SimpleValue;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.SimpleValue value
         0: .line 532
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedBy:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifeq 15
         1: .line 535
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getLogicalColumnName:()Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isQuoted:(Ljava/lang/String;)Z
            istore 2 /* isLogicalColumnQuoted */
        start local 2 // boolean isLogicalColumnQuoted
         2: .line 537
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappings:()Lorg/hibernate/cfg/Mappings;
            invokeinterface org.hibernate.cfg.Mappings.getObjectNameNormalizer:()Lorg/hibernate/cfg/ObjectNameNormalizer;
            astore 3 /* nameNormalizer */
        start local 3 // org.hibernate.cfg.ObjectNameNormalizer nameNormalizer
         3: .line 538
            aload 3 /* nameNormalizer */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getLogicalColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* logicalColumnName */
        start local 4 // java.lang.String logicalColumnName
         4: .line 539
            aload 3 /* nameNormalizer */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getReferencedColumn:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* referencedColumn */
        start local 5 // java.lang.String referencedColumn
         5: .line 540
            aload 4 /* logicalColumnName */
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* unquotedLogColName */
        start local 6 // java.lang.String unquotedLogColName
         6: .line 541
            aload 5 /* referencedColumn */
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* unquotedRefColumn */
        start local 7 // java.lang.String unquotedRefColumn
         7: .line 542
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getNamingStrategyDelegate:()Lorg/hibernate/cfg/naming/NamingStrategyDelegate;
         8: .line 543
            aload 6 /* unquotedLogColName */
         9: .line 544
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getPropertyName:()Ljava/lang/String;
        10: .line 545
            aload 7 /* unquotedRefColumn */
        11: .line 542
            invokeinterface org.hibernate.cfg.naming.NamingStrategyDelegate.determineLogicalCollectionColumnName:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* logicalCollectionColumnName */
        start local 8 // java.lang.String logicalCollectionColumnName
        12: .line 548
            iload 2 /* isLogicalColumnQuoted */
            ifeq 14
        13: .line 549
            aload 8 /* logicalCollectionColumnName */
            invokestatic org.hibernate.internal.util.StringHelper.quote:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* logicalCollectionColumnName */
        14: .line 551
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.SimpleValue int org.hibernate.cfg.ObjectNameNormalizer java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappings:()Lorg/hibernate/cfg/Mappings;
            aload 8 /* logicalCollectionColumnName */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 1 /* value */
            invokevirtual org.hibernate.mapping.SimpleValue.getTable:()Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.cfg.Mappings.addColumnBinding:(Ljava/lang/String;Lorg/hibernate/mapping/Column;Lorg/hibernate/mapping/Table;)V
        end local 8 // java.lang.String logicalCollectionColumnName
        end local 7 // java.lang.String unquotedRefColumn
        end local 6 // java.lang.String unquotedLogColName
        end local 5 // java.lang.String referencedColumn
        end local 4 // java.lang.String logicalColumnName
        end local 3 // org.hibernate.cfg.ObjectNameNormalizer nameNormalizer
        end local 2 // boolean isLogicalColumnQuoted
        15: .line 553
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.SimpleValue
      StackMap stack:
            return
        end local 1 // org.hibernate.mapping.SimpleValue value
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   16     0                         this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   16     1                        value  Lorg/hibernate/mapping/SimpleValue;
            2   15     2        isLogicalColumnQuoted  Z
            3   15     3               nameNormalizer  Lorg/hibernate/cfg/ObjectNameNormalizer;
            4   15     4            logicalColumnName  Ljava/lang/String;
            5   15     5             referencedColumn  Ljava/lang/String;
            6   15     6           unquotedLogColName  Ljava/lang/String;
            7   15     7            unquotedRefColumn  Ljava/lang/String;
           12   15     8  logicalCollectionColumnName  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  

  public static int checkReferencedColumnsType(org.hibernate.cfg.Ejb3JoinColumn[], org.hibernate.mapping.PersistentClass, org.hibernate.cfg.Mappings);
    descriptor: ([Lorg/hibernate/cfg/Ejb3JoinColumn;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cfg/Mappings;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn[] columns
        start local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 2 // org.hibernate.cfg.Mappings mappings
         0: .line 568
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* idColumns */
        start local 3 // java.util.Set idColumns
         1: .line 569
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getKey:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.getColumnIterator:()Ljava/util/Iterator;
            astore 4 /* idColumnsIt */
        start local 4 // java.util.Iterator idColumnsIt
         2: .line 570
            goto 4
         3: .line 571
      StackMap locals: java.util.Set java.util.Iterator
      StackMap stack:
            aload 3 /* idColumns */
            aload 4 /* idColumnsIt */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 570
      StackMap locals:
      StackMap stack:
            aload 4 /* idColumnsIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         5: .line 574
            iconst_0
            istore 5 /* isFkReferencedColumnName */
        start local 5 // boolean isFkReferencedColumnName
         6: .line 575
            iconst_1
            istore 6 /* noReferencedColumn */
        start local 6 // boolean noReferencedColumn
         7: .line 577
            aload 0 /* columns */
            arraylength
            ifne 8
            iconst_0
            ireturn
         8: .line 579
      StackMap locals: int int
      StackMap stack:
            aload 1 /* referencedEntity */
            aload 0 /* columns */
            iconst_0
            aaload
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getReferencedColumn:()Ljava/lang/String;
            aload 2 /* mappings */
         9: .line 578
            invokestatic org.hibernate.cfg.BinderHelper.findColumnOwner:(Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)Ljava/lang/Object;
            astore 7 /* columnOwner */
        start local 7 // java.lang.Object columnOwner
        10: .line 581
            aload 7 /* columnOwner */
            ifnonnull 19
        11: .line 583
            new org.hibernate.MappingException
            dup
        12: .line 584
            new java.lang.StringBuilder
            dup
            ldc "Unable to find column with logical name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 585
            aload 0 /* columns */
            iconst_0
            aaload
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getReferencedColumn:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " and its related "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 586
            ldc "supertables and secondary tables"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 584
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 583
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 589
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.cfg.Mappings java.util.Set java.util.Iterator int int java.lang.Object
      StackMap stack: org.hibernate.MappingException
            astore 8 /* e */
        start local 8 // org.hibernate.MappingException e
        18: .line 590
            new org.hibernate.cfg.RecoverableException
            dup
            aload 8 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 8 /* e */
            invokespecial org.hibernate.cfg.RecoverableException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // org.hibernate.MappingException e
        19: .line 593
      StackMap locals:
      StackMap stack:
            aload 7 /* columnOwner */
            instanceof org.hibernate.mapping.PersistentClass
            ifeq 21
        20: .line 594
            aload 7 /* columnOwner */
            checkcast org.hibernate.mapping.PersistentClass
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
            goto 22
        21: .line 595
      StackMap locals:
      StackMap stack:
            aload 7 /* columnOwner */
            checkcast org.hibernate.mapping.Join
            invokevirtual org.hibernate.mapping.Join.getTable:()Lorg/hibernate/mapping/Table;
        22: .line 593
      StackMap locals:
      StackMap stack: org.hibernate.mapping.Table
            astore 8 /* matchingTable */
        start local 8 // org.hibernate.mapping.Table matchingTable
        23: .line 597
            aload 0 /* columns */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 42
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.cfg.Mappings java.util.Set java.util.Iterator int int java.lang.Object org.hibernate.mapping.Table top int int org.hibernate.cfg.Ejb3JoinColumn[]
      StackMap stack:
        24: aload 12
            iload 10
            aaload
            astore 9 /* ejb3Column */
        start local 9 // org.hibernate.cfg.Ejb3JoinColumn ejb3Column
        25: .line 598
            aload 9 /* ejb3Column */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getReferencedColumn:()Ljava/lang/String;
            astore 13 /* logicalReferencedColumnName */
        start local 13 // java.lang.String logicalReferencedColumnName
        26: .line 599
            aload 13 /* logicalReferencedColumnName */
            invokestatic org.hibernate.internal.util.StringHelper.isNotEmpty:(Ljava/lang/String;)Z
            ifeq 41
        27: .line 602
            aload 2 /* mappings */
            aload 13 /* logicalReferencedColumnName */
            aload 8 /* matchingTable */
            invokeinterface org.hibernate.cfg.Mappings.getPhysicalColumnName:(Ljava/lang/String;Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            astore 14 /* referencedColumnName */
        start local 14 // java.lang.String referencedColumnName
        28: .line 603
            goto 35
        end local 14 // java.lang.String referencedColumnName
        29: .line 604
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.cfg.Mappings java.util.Set java.util.Iterator int int java.lang.Object org.hibernate.mapping.Table org.hibernate.cfg.Ejb3JoinColumn int int org.hibernate.cfg.Ejb3JoinColumn[] java.lang.String
      StackMap stack: org.hibernate.MappingException
            pop
        30: .line 606
            new org.hibernate.MappingException
            dup
        31: .line 607
            new java.lang.StringBuilder
            dup
            ldc "Unable to find column with logical name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        32: .line 608
            aload 13 /* logicalReferencedColumnName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* matchingTable */
            invokevirtual org.hibernate.mapping.Table.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 607
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 606
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        start local 14 // java.lang.String referencedColumnName
        35: .line 611
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            istore 6 /* noReferencedColumn */
        36: .line 612
            new org.hibernate.mapping.Column
            dup
            aload 14 /* referencedColumnName */
            invokespecial org.hibernate.mapping.Column.<init>:(Ljava/lang/String;)V
            astore 15 /* refCol */
        start local 15 // org.hibernate.mapping.Column refCol
        37: .line 613
            aload 3 /* idColumns */
            aload 15 /* refCol */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            istore 16 /* contains */
        start local 16 // boolean contains
        38: .line 614
            iload 16 /* contains */
            ifne 41
        39: .line 615
            iconst_1
            istore 5 /* isFkReferencedColumnName */
        40: .line 616
            goto 43
        end local 16 // boolean contains
        end local 15 // org.hibernate.mapping.Column refCol
        end local 14 // java.lang.String referencedColumnName
        end local 13 // java.lang.String logicalReferencedColumnName
        end local 9 // org.hibernate.cfg.Ejb3JoinColumn ejb3Column
        41: .line 597
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.cfg.Mappings java.util.Set java.util.Iterator int int java.lang.Object org.hibernate.mapping.Table top int int org.hibernate.cfg.Ejb3JoinColumn[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        42: iload 10
            iload 11
            if_icmplt 24
        43: .line 620
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.cfg.Mappings java.util.Set java.util.Iterator int int java.lang.Object org.hibernate.mapping.Table
      StackMap stack:
            iload 5 /* isFkReferencedColumnName */
            ifeq 45
        44: .line 621
            iconst_2
            ireturn
        45: .line 623
      StackMap locals:
      StackMap stack:
            iload 6 /* noReferencedColumn */
            ifeq 47
        46: .line 624
            iconst_0
            ireturn
        47: .line 626
      StackMap locals:
      StackMap stack:
            aload 3 /* idColumns */
            invokeinterface java.util.Set.size:()I
            aload 0 /* columns */
            arraylength
            if_icmpeq 49
        48: .line 628
            iconst_2
            ireturn
        49: .line 631
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 8 // org.hibernate.mapping.Table matchingTable
        end local 7 // java.lang.Object columnOwner
        end local 6 // boolean noReferencedColumn
        end local 5 // boolean isFkReferencedColumnName
        end local 4 // java.util.Iterator idColumnsIt
        end local 3 // java.util.Set idColumns
        end local 2 // org.hibernate.cfg.Mappings mappings
        end local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn[] columns
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   50     0                      columns  [Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   50     1             referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0   50     2                     mappings  Lorg/hibernate/cfg/Mappings;
            1   50     3                    idColumns  Ljava/util/Set<Lorg/hibernate/mapping/Column;>;
            2   50     4                  idColumnsIt  Ljava/util/Iterator;
            6   50     5     isFkReferencedColumnName  Z
            7   50     6           noReferencedColumn  Z
           10   50     7                  columnOwner  Ljava/lang/Object;
           18   19     8                            e  Lorg/hibernate/MappingException;
           23   50     8                matchingTable  Lorg/hibernate/mapping/Table;
           25   41     9                   ejb3Column  Lorg/hibernate/cfg/Ejb3JoinColumn;
           26   41    13  logicalReferencedColumnName  Ljava/lang/String;
           28   29    14         referencedColumnName  Ljava/lang/String;
           35   41    14         referencedColumnName  Ljava/lang/String;
           37   41    15                       refCol  Lorg/hibernate/mapping/Column;
           38   41    16                     contains  Z
      Exception table:
        from    to  target  type
          11    17      17  Class org.hibernate.MappingException
          27    28      29  Class org.hibernate.MappingException
    MethodParameters:
                  Name  Flags
      columns           
      referencedEntity  
      mappings          

  public void overrideFromReferencedColumnIfNecessary(org.hibernate.mapping.Column);
    descriptor: (Lorg/hibernate/mapping/Column;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.Column column
         0: .line 641
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            ifnull 7
         1: .line 644
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.sqlType:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 645
            aload 0 /* this */
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getSqlType:()Ljava/lang/String;
            putfield org.hibernate.cfg.Ejb3JoinColumn.sqlType:Ljava/lang/String;
         3: .line 646
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.sqlType:Ljava/lang/String;
            invokevirtual org.hibernate.mapping.Column.setSqlType:(Ljava/lang/String;)V
         4: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getLength:()I
            invokevirtual org.hibernate.mapping.Column.setLength:(I)V
         5: .line 651
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getPrecision:()I
            invokevirtual org.hibernate.mapping.Column.setPrecision:(I)V
         6: .line 652
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getScale:()I
            invokevirtual org.hibernate.mapping.Column.setScale:(I)V
         7: .line 654
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.mapping.Column column
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    8     1  column  Lorg/hibernate/mapping/Column;
    MethodParameters:
        Name  Flags
      column  

  public void redefineColumnName(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String columnName
        start local 2 // java.lang.String propertyName
        start local 3 // boolean applyNamingStrategy
         0: .line 658
            aload 1 /* columnName */
            invokestatic org.hibernate.internal.util.StringHelper.isNotEmpty:(Ljava/lang/String;)Z
            ifeq 6
         1: .line 659
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
         2: .line 660
            iload 3 /* applyNamingStrategy */
            ifeq 4
         3: .line 661
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getNamingStrategyDelegate:()Lorg/hibernate/cfg/naming/NamingStrategyDelegate;
            aload 1 /* columnName */
            invokeinterface org.hibernate.cfg.naming.NamingStrategyDelegate.toPhysicalColumnName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.quoteIdentifier:(Ljava/lang/String;)Ljava/lang/String;
            goto 5
         4: .line 662
      StackMap locals:
      StackMap stack: org.hibernate.mapping.Column
            aload 1 /* columnName */
         5: .line 659
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn java.lang.String java.lang.String int
      StackMap stack: org.hibernate.mapping.Column java.lang.String
            invokevirtual org.hibernate.mapping.Column.setName:(Ljava/lang/String;)V
         6: .line 665
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean applyNamingStrategy
        end local 2 // java.lang.String propertyName
        end local 1 // java.lang.String columnName
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    7     1           columnName  Ljava/lang/String;
            0    7     2         propertyName  Ljava/lang/String;
            0    7     3  applyNamingStrategy  Z
    MethodParameters:
                     Name  Flags
      columnName           
      propertyName         
      applyNamingStrategy  

  private java.lang.String quoteIdentifier(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String identifier
         0: .line 668
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappings:()Lorg/hibernate/cfg/Mappings;
            invokeinterface org.hibernate.cfg.Mappings.getObjectNameNormalizer:()Lorg/hibernate/cfg/ObjectNameNormalizer;
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.isUseQuotedIdentifiersGlobally:()Z
            ifeq 2
         1: .line 669
            aload 1 /* identifier */
            invokestatic org.hibernate.internal.util.StringHelper.quote:(Ljava/lang/String;)Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 1 /* identifier */
         3: .line 668
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // java.lang.String identifier
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    4     1  identifier  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      identifier  

  public static org.hibernate.cfg.Ejb3JoinColumn[] buildJoinTableJoinColumns(javax.persistence.JoinColumn[], java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, java.lang.String, org.hibernate.cfg.Mappings);
    descriptor: ([Ljavax/persistence/JoinColumn;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=6
        start local 0 // javax.persistence.JoinColumn[] annJoins
        start local 1 // java.util.Map secondaryTables
        start local 2 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 3 // java.lang.String propertyName
        start local 4 // java.lang.String mappedBy
        start local 5 // org.hibernate.cfg.Mappings mappings
         0: .line 680
            aload 0 /* annJoins */
            ifnonnull 16
         1: .line 681
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 7 /* currentJoinColumn */
        start local 7 // org.hibernate.cfg.Ejb3JoinColumn currentJoinColumn
         2: .line 682
            aload 7 /* currentJoinColumn */
            iconst_1
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
         3: .line 683
            aload 7 /* currentJoinColumn */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setNullable:(Z)V
         4: .line 684
            aload 7 /* currentJoinColumn */
            aload 2 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
         5: .line 685
            aload 7 /* currentJoinColumn */
            aload 1 /* secondaryTables */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
         6: .line 686
            aload 7 /* currentJoinColumn */
            aload 5 /* mappings */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappings:(Lorg/hibernate/cfg/Mappings;)V
         7: .line 687
            aload 7 /* currentJoinColumn */
         8: .line 688
            aload 2 /* propertyHolder */
            aload 3 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
         9: .line 687
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        10: .line 690
            aload 7 /* currentJoinColumn */
            aload 4 /* mappedBy */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappedBy:(Ljava/lang/String;)V
        11: .line 691
            aload 7 /* currentJoinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        12: .line 693
            iconst_1
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            dup
            iconst_0
        13: .line 694
            aload 7 /* currentJoinColumn */
            aastore
        14: .line 693
            astore 6 /* joinColumns */
        end local 7 // org.hibernate.cfg.Ejb3JoinColumn currentJoinColumn
        start local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        15: .line 697
            goto 34
        end local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        16: .line 699
      StackMap locals:
      StackMap stack:
            aload 0 /* annJoins */
            arraylength
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            astore 6 /* joinColumns */
        start local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        17: .line 701
            aload 0 /* annJoins */
            arraylength
            istore 8 /* length */
        start local 8 // int length
        18: .line 702
            iconst_0
            istore 9 /* index */
        start local 9 // int index
        19: goto 33
        20: .line 703
      StackMap locals: javax.persistence.JoinColumn[] java.util.Map org.hibernate.cfg.PropertyHolder java.lang.String java.lang.String org.hibernate.cfg.Mappings org.hibernate.cfg.Ejb3JoinColumn[] top int int
      StackMap stack:
            aload 0 /* annJoins */
            iload 9 /* index */
            aaload
            astore 7 /* annJoin */
        start local 7 // javax.persistence.JoinColumn annJoin
        21: .line 704
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 10 /* currentJoinColumn */
        start local 10 // org.hibernate.cfg.Ejb3JoinColumn currentJoinColumn
        22: .line 705
            aload 10 /* currentJoinColumn */
            iconst_1
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
        23: .line 706
            aload 10 /* currentJoinColumn */
            aload 2 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
        24: .line 707
            aload 10 /* currentJoinColumn */
            aload 1 /* secondaryTables */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
        25: .line 708
            aload 10 /* currentJoinColumn */
            aload 5 /* mappings */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappings:(Lorg/hibernate/cfg/Mappings;)V
        26: .line 709
            aload 10 /* currentJoinColumn */
            aload 2 /* propertyHolder */
            aload 3 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        27: .line 710
            aload 10 /* currentJoinColumn */
            aload 4 /* mappedBy */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappedBy:(Ljava/lang/String;)V
        28: .line 711
            aload 10 /* currentJoinColumn */
            aload 7 /* annJoin */
            aload 3 /* propertyName */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoinAnnotation:(Ljavax/persistence/JoinColumn;Ljava/lang/String;)V
        29: .line 712
            aload 10 /* currentJoinColumn */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setNullable:(Z)V
        30: .line 714
            aload 10 /* currentJoinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        31: .line 715
            aload 6 /* joinColumns */
            iload 9 /* index */
            aload 10 /* currentJoinColumn */
            aastore
        end local 10 // org.hibernate.cfg.Ejb3JoinColumn currentJoinColumn
        32: .line 702
            iinc 9 /* index */ 1
        end local 7 // javax.persistence.JoinColumn annJoin
      StackMap locals:
      StackMap stack:
        33: iload 9 /* index */
            iload 8 /* length */
            if_icmplt 20
        end local 9 // int index
        end local 8 // int length
        34: .line 718
      StackMap locals: javax.persistence.JoinColumn[] java.util.Map org.hibernate.cfg.PropertyHolder java.lang.String java.lang.String org.hibernate.cfg.Mappings org.hibernate.cfg.Ejb3JoinColumn[]
      StackMap stack:
            aload 6 /* joinColumns */
            areturn
        end local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        end local 5 // org.hibernate.cfg.Mappings mappings
        end local 4 // java.lang.String mappedBy
        end local 3 // java.lang.String propertyName
        end local 2 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 1 // java.util.Map secondaryTables
        end local 0 // javax.persistence.JoinColumn[] annJoins
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   35     0           annJoins  [Ljavax/persistence/JoinColumn;
            0   35     1    secondaryTables  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   35     2     propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   35     3       propertyName  Ljava/lang/String;
            0   35     4           mappedBy  Ljava/lang/String;
            0   35     5           mappings  Lorg/hibernate/cfg/Mappings;
           15   16     6        joinColumns  [Lorg/hibernate/cfg/Ejb3JoinColumn;
           17   35     6        joinColumns  [Lorg/hibernate/cfg/Ejb3JoinColumn;
            2   15     7  currentJoinColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
           21   33     7            annJoin  Ljavax/persistence/JoinColumn;
           18   34     8             length  I
           19   34     9              index  I
           22   32    10  currentJoinColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
    Signature: ([Ljavax/persistence/JoinColumn;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                 Name  Flags
      annJoins         
      secondaryTables  
      propertyHolder   
      propertyName     
      mappedBy         
      mappings         

  public void setMappedBy(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.String jpaEntityName
        start local 3 // java.lang.String logicalTableName
        start local 4 // java.lang.String mappedByProperty
         0: .line 722
            aload 0 /* this */
            aload 1 /* entityName */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedByEntityName:Ljava/lang/String;
         1: .line 723
            aload 0 /* this */
            aload 2 /* jpaEntityName */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedByJpaEntityName:Ljava/lang/String;
         2: .line 724
            aload 0 /* this */
            aload 3 /* logicalTableName */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedByTableName:Ljava/lang/String;
         3: .line 725
            aload 0 /* this */
            aload 4 /* mappedByProperty */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedByPropertyName:Ljava/lang/String;
         4: .line 726
            return
        end local 4 // java.lang.String mappedByProperty
        end local 3 // java.lang.String logicalTableName
        end local 2 // java.lang.String jpaEntityName
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    5     1        entityName  Ljava/lang/String;
            0    5     2     jpaEntityName  Ljava/lang/String;
            0    5     3  logicalTableName  Ljava/lang/String;
            0    5     4  mappedByProperty  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      entityName        
      jpaEntityName     
      logicalTableName  
      mappedByProperty  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
         0: .line 730
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 731
            aload 1 /* sb */
            ldc "Ejb3JoinColumn"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 732
            aload 1 /* sb */
            ldc "{logicalColumnName='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getLogicalColumnName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 733
            aload 1 /* sb */
            ldc ", referencedColumn='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.referencedColumn:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 734
            aload 1 /* sb */
            ldc ", mappedBy='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedBy:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 735
            aload 1 /* sb */
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 736
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            1    7     1    sb  Ljava/lang/StringBuilder;
}
SourceFile: "Ejb3JoinColumn.java"