public class org.hibernate.mapping.ForeignKey extends org.hibernate.mapping.Constraint
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.mapping.ForeignKey
  super_class: org.hibernate.mapping.Constraint
{
  private org.hibernate.mapping.Table referencedTable;
    descriptor: Lorg/hibernate/mapping/Table;
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.util.List referencedColumns;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.mapping.ForeignKey this
         0: .line 36
            aload 0 /* this */
            invokespecial org.hibernate.mapping.Constraint.<init>:()V
         1: .line 41
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.mapping.ForeignKey.referencedColumns:Ljava/util/List;
         2: .line 36
            return
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/mapping/ForeignKey;

  public java.lang.String sqlConstraintString(org.hibernate.dialect.Dialect, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Lorg/hibernate/dialect/Dialect;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=5
        start local 0 // org.hibernate.mapping.ForeignKey this
        start local 1 // org.hibernate.dialect.Dialect dialect
        start local 2 // java.lang.String constraintName
        start local 3 // java.lang.String defaultCatalog
        start local 4 // java.lang.String defaultSchema
         0: .line 44
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getColumnSpan:()I
            anewarray java.lang.String
            astore 5 /* cols */
        start local 5 // java.lang.String[] cols
         1: .line 45
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getColumnSpan:()I
            anewarray java.lang.String
            astore 6 /* refcols */
        start local 6 // java.lang.String[] refcols
         2: .line 46
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: .line 47
            aconst_null
            astore 8 /* refiter */
        start local 8 // java.util.Iterator refiter
         4: .line 48
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.isReferenceToPrimaryKey:()Z
            ifeq 7
         5: .line 49
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedTable:Lorg/hibernate/mapping/Table;
            invokevirtual org.hibernate.mapping.Table.getPrimaryKey:()Lorg/hibernate/mapping/PrimaryKey;
            invokevirtual org.hibernate.mapping.PrimaryKey.getColumnIterator:()Ljava/util/Iterator;
            astore 8 /* refiter */
         6: .line 50
            goto 8
         7: .line 52
      StackMap locals: org.hibernate.mapping.ForeignKey org.hibernate.dialect.Dialect java.lang.String java.lang.String java.lang.String java.lang.String[] java.lang.String[] int java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedColumns:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* refiter */
         8: .line 55
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getColumnIterator:()Ljava/util/Iterator;
            astore 9 /* iter */
        start local 9 // java.util.Iterator iter
         9: .line 56
            goto 13
        10: .line 57
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 5 /* cols */
            iload 7 /* i */
            aload 9 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            aload 1 /* dialect */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        11: .line 58
            aload 6 /* refcols */
            iload 7 /* i */
            aload 8 /* refiter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            aload 1 /* dialect */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        12: .line 59
            iinc 7 /* i */ 1
        13: .line 56
      StackMap locals:
      StackMap stack:
            aload 9 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 61
            aload 1 /* dialect */
        15: .line 62
            aload 2 /* constraintName */
            aload 5 /* cols */
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedTable:Lorg/hibernate/mapping/Table;
            aload 1 /* dialect */
            aload 3 /* defaultCatalog */
            aload 4 /* defaultSchema */
            invokevirtual org.hibernate.mapping.Table.getQualifiedName:(Lorg/hibernate/dialect/Dialect;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aload 6 /* refcols */
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.isReferenceToPrimaryKey:()Z
        16: .line 61
            invokevirtual org.hibernate.dialect.Dialect.getAddForeignKeyConstraintString:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)Ljava/lang/String;
            astore 10 /* result */
        start local 10 // java.lang.String result
        17: .line 64
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.cascadeDeleteEnabled:Z
            ifeq 19
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.supportsCascadeDelete:()Z
            ifeq 19
        18: .line 65
            new java.lang.StringBuilder
            dup
            aload 10 /* result */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " on delete cascade"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 20
        19: .line 66
      StackMap locals: java.lang.String
      StackMap stack:
            aload 10 /* result */
        20: .line 64
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 10 // java.lang.String result
        end local 9 // java.util.Iterator iter
        end local 8 // java.util.Iterator refiter
        end local 7 // int i
        end local 6 // java.lang.String[] refcols
        end local 5 // java.lang.String[] cols
        end local 4 // java.lang.String defaultSchema
        end local 3 // java.lang.String defaultCatalog
        end local 2 // java.lang.String constraintName
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lorg/hibernate/mapping/ForeignKey;
            0   21     1         dialect  Lorg/hibernate/dialect/Dialect;
            0   21     2  constraintName  Ljava/lang/String;
            0   21     3  defaultCatalog  Ljava/lang/String;
            0   21     4   defaultSchema  Ljava/lang/String;
            1   21     5            cols  [Ljava/lang/String;
            2   21     6         refcols  [Ljava/lang/String;
            3   21     7               i  I
            4   21     8         refiter  Ljava/util/Iterator;
            9   21     9            iter  Ljava/util/Iterator;
           17   21    10          result  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      dialect         
      constraintName  
      defaultCatalog  
      defaultSchema   

  public org.hibernate.mapping.Table getReferencedTable();
    descriptor: ()Lorg/hibernate/mapping/Table;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.mapping.ForeignKey this
         0: .line 70
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedTable:Lorg/hibernate/mapping/Table;
            areturn
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/mapping/ForeignKey;

  private void appendColumns(java.lang.StringBuilder, java.util.Iterator);
    descriptor: (Ljava/lang/StringBuilder;Ljava/util/Iterator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.hibernate.mapping.ForeignKey this
        start local 1 // java.lang.StringBuilder buf
        start local 2 // java.util.Iterator columns
         0: .line 74
            goto 4
         1: .line 75
      StackMap locals:
      StackMap stack:
            aload 2 /* columns */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            astore 3 /* column */
        start local 3 // org.hibernate.mapping.Column column
         2: .line 76
            aload 1 /* buf */
            aload 3 /* column */
            invokevirtual org.hibernate.mapping.Column.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 77
            aload 2 /* columns */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 4
            aload 1 /* buf */
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // org.hibernate.mapping.Column column
         4: .line 74
      StackMap locals:
      StackMap stack:
            aload 2 /* columns */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 79
            return
        end local 2 // java.util.Iterator columns
        end local 1 // java.lang.StringBuilder buf
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/hibernate/mapping/ForeignKey;
            0    6     1      buf  Ljava/lang/StringBuilder;
            0    6     2  columns  Ljava/util/Iterator;
            2    4     3   column  Lorg/hibernate/mapping/Column;
    MethodParameters:
         Name  Flags
      buf      
      columns  

  public void setReferencedTable(org.hibernate.mapping.Table);
    descriptor: (Lorg/hibernate/mapping/Table;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.mapping.ForeignKey this
        start local 1 // org.hibernate.mapping.Table referencedTable
         0: .line 84
            aload 0 /* this */
            aload 1 /* referencedTable */
            putfield org.hibernate.mapping.ForeignKey.referencedTable:Lorg/hibernate/mapping/Table;
         1: .line 85
            return
        end local 1 // org.hibernate.mapping.Table referencedTable
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/hibernate/mapping/ForeignKey;
            0    2     1  referencedTable  Lorg/hibernate/mapping/Table;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                 Name  Flags
      referencedTable  

  public void alignColumns();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.mapping.ForeignKey this
         0: .line 93
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.isReferenceToPrimaryKey:()Z
            ifeq 1
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedTable:Lorg/hibernate/mapping/Table;
            invokevirtual org.hibernate.mapping.ForeignKey.alignColumns:(Lorg/hibernate/mapping/Table;)V
         1: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/mapping/ForeignKey;

  private void alignColumns(org.hibernate.mapping.Table);
    descriptor: (Lorg/hibernate/mapping/Table;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.hibernate.mapping.ForeignKey this
        start local 1 // org.hibernate.mapping.Table referencedTable
         0: .line 97
            aload 1 /* referencedTable */
            invokevirtual org.hibernate.mapping.Table.getPrimaryKey:()Lorg/hibernate/mapping/PrimaryKey;
            invokevirtual org.hibernate.mapping.PrimaryKey.getColumnSpan:()I
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getColumnSpan:()I
            if_icmpeq 14
         1: .line 98
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         2: .line 99
            aload 2 /* sb */
            ldc "Foreign key ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 100
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 101
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getTable:()Lorg/hibernate/mapping/Table;
            invokevirtual org.hibernate.mapping.Table.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 102
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 103
            aload 0 /* this */
            aload 2 /* sb */
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getColumnIterator:()Ljava/util/Iterator;
            invokevirtual org.hibernate.mapping.ForeignKey.appendColumns:(Ljava/lang/StringBuilder;Ljava/util/Iterator;)V
         7: .line 104
            aload 2 /* sb */
            ldc "])"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 105
            ldc ") must have same number of columns as the referenced primary key ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 106
            aload 1 /* referencedTable */
            invokevirtual org.hibernate.mapping.Table.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 107
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 108
            aload 0 /* this */
            aload 2 /* sb */
            aload 1 /* referencedTable */
            invokevirtual org.hibernate.mapping.Table.getPrimaryKey:()Lorg/hibernate/mapping/PrimaryKey;
            invokevirtual org.hibernate.mapping.PrimaryKey.getColumnIterator:()Ljava/util/Iterator;
            invokevirtual org.hibernate.mapping.ForeignKey.appendColumns:(Ljava/lang/StringBuilder;Ljava/util/Iterator;)V
        12: .line 109
            aload 2 /* sb */
            ldc "])"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 110
            new org.hibernate.MappingException
            dup
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.StringBuilder sb
        14: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getColumnIterator:()Ljava/util/Iterator;
            astore 2 /* fkCols */
        start local 2 // java.util.Iterator fkCols
        15: .line 114
            aload 1 /* referencedTable */
            invokevirtual org.hibernate.mapping.Table.getPrimaryKey:()Lorg/hibernate/mapping/PrimaryKey;
            invokevirtual org.hibernate.mapping.PrimaryKey.getColumnIterator:()Ljava/util/Iterator;
            astore 3 /* pkCols */
        start local 3 // java.util.Iterator pkCols
        16: .line 115
            goto 18
        17: .line 116
      StackMap locals: java.util.Iterator java.util.Iterator
      StackMap stack:
            aload 2 /* fkCols */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            aload 3 /* pkCols */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            invokevirtual org.hibernate.mapping.Column.getLength:()I
            invokevirtual org.hibernate.mapping.Column.setLength:(I)V
        18: .line 115
      StackMap locals:
      StackMap stack:
            aload 3 /* pkCols */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        19: .line 119
            return
        end local 3 // java.util.Iterator pkCols
        end local 2 // java.util.Iterator fkCols
        end local 1 // org.hibernate.mapping.Table referencedTable
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Lorg/hibernate/mapping/ForeignKey;
            0   20     1  referencedTable  Lorg/hibernate/mapping/Table;
            2   14     2               sb  Ljava/lang/StringBuilder;
           15   20     2           fkCols  Ljava/util/Iterator;
           16   20     3           pkCols  Ljava/util/Iterator;
    MethodParameters:
                 Name  Flags
      referencedTable  

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

  public void setReferencedEntityName(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.mapping.ForeignKey this
        start local 1 // java.lang.String referencedEntityName
         0: .line 126
            aload 0 /* this */
            aload 1 /* referencedEntityName */
            putfield org.hibernate.mapping.ForeignKey.referencedEntityName:Ljava/lang/String;
         1: .line 127
            return
        end local 1 // java.lang.String referencedEntityName
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/hibernate/mapping/ForeignKey;
            0    2     1  referencedEntityName  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      referencedEntityName  

  public java.lang.String sqlDropString(org.hibernate.dialect.Dialect, java.lang.String, java.lang.String);
    descriptor: (Lorg/hibernate/dialect/Dialect;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.hibernate.mapping.ForeignKey this
        start local 1 // org.hibernate.dialect.Dialect dialect
        start local 2 // java.lang.String defaultCatalog
        start local 3 // java.lang.String defaultSchema
         0: .line 130
            new java.lang.StringBuilder
            dup
            ldc "alter table "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
         1: .line 131
            aload 4 /* buf */
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getTable:()Lorg/hibernate/mapping/Table;
            aload 1 /* dialect */
            aload 2 /* defaultCatalog */
            aload 3 /* defaultSchema */
            invokevirtual org.hibernate.mapping.Table.getQualifiedName:(Lorg/hibernate/dialect/Dialect;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 132
            aload 4 /* buf */
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.getDropForeignKeyString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 133
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.supportsIfExistsBeforeConstraintName:()Z
            ifeq 5
         4: .line 134
            aload 4 /* buf */
            ldc "if exists "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 136
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 4 /* buf */
            aload 1 /* dialect */
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getName:()Ljava/lang/String;
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 137
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.supportsIfExistsAfterConstraintName:()Z
            ifeq 8
         7: .line 138
            aload 4 /* buf */
            ldc " if exists"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 140
      StackMap locals:
      StackMap stack:
            aload 4 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.StringBuilder buf
        end local 3 // java.lang.String defaultSchema
        end local 2 // java.lang.String defaultCatalog
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lorg/hibernate/mapping/ForeignKey;
            0    9     1         dialect  Lorg/hibernate/dialect/Dialect;
            0    9     2  defaultCatalog  Ljava/lang/String;
            0    9     3   defaultSchema  Ljava/lang/String;
            1    9     4             buf  Ljava/lang/StringBuilder;
    MethodParameters:
                Name  Flags
      dialect         
      defaultCatalog  
      defaultSchema   

  public boolean isCascadeDeleteEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.mapping.ForeignKey this
         0: .line 144
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.cascadeDeleteEnabled:Z
            ireturn
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/mapping/ForeignKey;

  public void setCascadeDeleteEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.mapping.ForeignKey this
        start local 1 // boolean cascadeDeleteEnabled
         0: .line 148
            aload 0 /* this */
            iload 1 /* cascadeDeleteEnabled */
            putfield org.hibernate.mapping.ForeignKey.cascadeDeleteEnabled:Z
         1: .line 149
            return
        end local 1 // boolean cascadeDeleteEnabled
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/hibernate/mapping/ForeignKey;
            0    2     1  cascadeDeleteEnabled  Z
    MethodParameters:
                      Name  Flags
      cascadeDeleteEnabled  

  public boolean isPhysicalConstraint();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.mapping.ForeignKey this
         0: .line 152
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedTable:Lorg/hibernate/mapping/Table;
            invokevirtual org.hibernate.mapping.Table.isPhysicalTable:()Z
            ifeq 4
         1: .line 153
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getTable:()Lorg/hibernate/mapping/Table;
            invokevirtual org.hibernate.mapping.Table.isPhysicalTable:()Z
            ifeq 4
         2: .line 154
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedTable:Lorg/hibernate/mapping/Table;
            invokevirtual org.hibernate.mapping.Table.hasDenormalizedTables:()Z
            ifne 4
         3: .line 152
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/mapping/ForeignKey;

  public java.util.List getReferencedColumns();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.mapping.ForeignKey this
         0: .line 159
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedColumns:Ljava/util/List;
            areturn
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/mapping/ForeignKey;

  public boolean isReferenceToPrimaryKey();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.mapping.ForeignKey this
         0: .line 164
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedColumns:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ireturn
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/mapping/ForeignKey;

  public void addReferencedColumns(java.util.Iterator);
    descriptor: (Ljava/util/Iterator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.mapping.ForeignKey this
        start local 1 // java.util.Iterator referencedColumnsIterator
         0: .line 168
            goto 3
         1: .line 169
      StackMap locals:
      StackMap stack:
            aload 1 /* referencedColumnsIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Selectable
            astore 2 /* col */
        start local 2 // org.hibernate.mapping.Selectable col
         2: .line 170
            aload 2 /* col */
            invokeinterface org.hibernate.mapping.Selectable.isFormula:()Z
            ifne 3
            aload 0 /* this */
            aload 2 /* col */
            checkcast org.hibernate.mapping.Column
            invokevirtual org.hibernate.mapping.ForeignKey.addReferencedColumn:(Lorg/hibernate/mapping/Column;)V
        end local 2 // org.hibernate.mapping.Selectable col
         3: .line 168
      StackMap locals:
      StackMap stack:
            aload 1 /* referencedColumnsIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 172
            return
        end local 1 // java.util.Iterator referencedColumnsIterator
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    5     0                       this  Lorg/hibernate/mapping/ForeignKey;
            0    5     1  referencedColumnsIterator  Ljava/util/Iterator;
            2    3     2                        col  Lorg/hibernate/mapping/Selectable;
    MethodParameters:
                           Name  Flags
      referencedColumnsIterator  

  private void addReferencedColumn(org.hibernate.mapping.Column);
    descriptor: (Lorg/hibernate/mapping/Column;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.mapping.ForeignKey this
        start local 1 // org.hibernate.mapping.Column column
         0: .line 175
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedColumns:Ljava/util/List;
            aload 1 /* column */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* this */
            getfield org.hibernate.mapping.ForeignKey.referencedColumns:Ljava/util/List;
            aload 1 /* column */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 176
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.mapping.Column column
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/mapping/ForeignKey;
            0    2     1  column  Lorg/hibernate/mapping/Column;
    MethodParameters:
        Name  Flags
      column  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.hibernate.mapping.ForeignKey this
         0: .line 179
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.isReferenceToPrimaryKey:()Z
            ifne 5
         1: .line 180
            new java.lang.StringBuilder
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getTable:()Lorg/hibernate/mapping/Table;
            invokevirtual org.hibernate.mapping.Table.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getColumns:()Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* result */
        start local 1 // java.lang.StringBuilder result
         2: .line 181
            aload 1 /* result */
            new java.lang.StringBuilder
            dup
            ldc " ref-columns:("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getReferencedColumns:()Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 182
            aload 1 /* result */
            new java.lang.StringBuilder
            dup
            ldc ") as "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.mapping.ForeignKey.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 183
            aload 1 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder result
         5: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.hibernate.mapping.Constraint.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/hibernate/mapping/ForeignKey;
            2    5     1  result  Ljava/lang/StringBuilder;

  public java.lang.String generatedConstraintNamePrefix();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.mapping.ForeignKey this
         0: .line 192
            ldc "FK_"
            areturn
        end local 0 // org.hibernate.mapping.ForeignKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/mapping/ForeignKey;
}
SourceFile: "ForeignKey.java"