public class org.hibernate.cfg.IndexOrUniqueKeySecondPass implements org.hibernate.cfg.SecondPass
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.cfg.IndexOrUniqueKeySecondPass
  super_class: java.lang.Object
{
  private org.hibernate.mapping.Table table;
    descriptor: Lorg/hibernate/mapping/Table;
    flags: (0x0002) ACC_PRIVATE

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

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

  private final org.hibernate.cfg.Mappings mappings;
    descriptor: Lorg/hibernate/cfg/Mappings;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.cfg.Ejb3Column column;
    descriptor: Lorg/hibernate/cfg/Ejb3Column;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean unique;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.hibernate.mapping.Table, java.lang.String, java.lang.String[], org.hibernate.cfg.Mappings);
    descriptor: (Lorg/hibernate/mapping/Table;Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/cfg/Mappings;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
        start local 1 // org.hibernate.mapping.Table table
        start local 2 // java.lang.String indexName
        start local 3 // java.lang.String[] columns
        start local 4 // org.hibernate.cfg.Mappings mappings
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            aload 1 /* table */
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.table:Lorg/hibernate/mapping/Table;
         2: .line 49
            aload 0 /* this */
            aload 2 /* indexName */
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.indexName:Ljava/lang/String;
         3: .line 50
            aload 0 /* this */
            aload 3 /* columns */
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.columns:[Ljava/lang/String;
         4: .line 51
            aload 0 /* this */
            aload 4 /* mappings */
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.mappings:Lorg/hibernate/cfg/Mappings;
         5: .line 52
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.column:Lorg/hibernate/cfg/Ejb3Column;
         6: .line 53
            aload 0 /* this */
            iconst_0
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.unique:Z
         7: .line 54
            return
        end local 4 // org.hibernate.cfg.Mappings mappings
        end local 3 // java.lang.String[] columns
        end local 2 // java.lang.String indexName
        end local 1 // org.hibernate.mapping.Table table
        end local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/hibernate/cfg/IndexOrUniqueKeySecondPass;
            0    8     1      table  Lorg/hibernate/mapping/Table;
            0    8     2  indexName  Ljava/lang/String;
            0    8     3    columns  [Ljava/lang/String;
            0    8     4   mappings  Lorg/hibernate/cfg/Mappings;
    MethodParameters:
           Name  Flags
      table      
      indexName  
      columns    
      mappings   

  public void <init>(java.lang.String, org.hibernate.cfg.Ejb3Column, org.hibernate.cfg.Mappings);
    descriptor: (Ljava/lang/String;Lorg/hibernate/cfg/Ejb3Column;Lorg/hibernate/cfg/Mappings;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
        start local 1 // java.lang.String indexName
        start local 2 // org.hibernate.cfg.Ejb3Column column
        start local 3 // org.hibernate.cfg.Mappings mappings
         0: .line 61
            aload 0 /* this */
            aload 1 /* indexName */
            aload 2 /* column */
            aload 3 /* mappings */
            iconst_0
            invokespecial org.hibernate.cfg.IndexOrUniqueKeySecondPass.<init>:(Ljava/lang/String;Lorg/hibernate/cfg/Ejb3Column;Lorg/hibernate/cfg/Mappings;Z)V
         1: .line 62
            return
        end local 3 // org.hibernate.cfg.Mappings mappings
        end local 2 // org.hibernate.cfg.Ejb3Column column
        end local 1 // java.lang.String indexName
        end local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/hibernate/cfg/IndexOrUniqueKeySecondPass;
            0    2     1  indexName  Ljava/lang/String;
            0    2     2     column  Lorg/hibernate/cfg/Ejb3Column;
            0    2     3   mappings  Lorg/hibernate/cfg/Mappings;
    MethodParameters:
           Name  Flags
      indexName  
      column     
      mappings   

  public void <init>(java.lang.String, org.hibernate.cfg.Ejb3Column, org.hibernate.cfg.Mappings, boolean);
    descriptor: (Ljava/lang/String;Lorg/hibernate/cfg/Ejb3Column;Lorg/hibernate/cfg/Mappings;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
        start local 1 // java.lang.String indexName
        start local 2 // org.hibernate.cfg.Ejb3Column column
        start local 3 // org.hibernate.cfg.Mappings mappings
        start local 4 // boolean unique
         0: .line 67
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 68
            aload 0 /* this */
            aload 1 /* indexName */
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.indexName:Ljava/lang/String;
         2: .line 69
            aload 0 /* this */
            aload 2 /* column */
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.column:Lorg/hibernate/cfg/Ejb3Column;
         3: .line 70
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.columns:[Ljava/lang/String;
         4: .line 71
            aload 0 /* this */
            aload 3 /* mappings */
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.mappings:Lorg/hibernate/cfg/Mappings;
         5: .line 72
            aload 0 /* this */
            iload 4 /* unique */
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.unique:Z
         6: .line 73
            return
        end local 4 // boolean unique
        end local 3 // org.hibernate.cfg.Mappings mappings
        end local 2 // org.hibernate.cfg.Ejb3Column column
        end local 1 // java.lang.String indexName
        end local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/hibernate/cfg/IndexOrUniqueKeySecondPass;
            0    7     1  indexName  Ljava/lang/String;
            0    7     2     column  Lorg/hibernate/cfg/Ejb3Column;
            0    7     3   mappings  Lorg/hibernate/cfg/Mappings;
            0    7     4     unique  Z
    MethodParameters:
           Name  Flags
      indexName  
      column     
      mappings   
      unique     

  public void doSecondPass(java.util.Map);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
        start local 1 // java.util.Map persistentClasses
         0: .line 76
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.columns:[Ljava/lang/String;
            ifnull 6
         1: .line 77
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 78
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.columns:[Ljava/lang/String;
            iload 2 /* i */
            aaload
            invokevirtual org.hibernate.cfg.IndexOrUniqueKeySecondPass.addConstraintToColumn:(Ljava/lang/String;)V
         4: .line 77
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.columns:[Ljava/lang/String;
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.column:Lorg/hibernate/cfg/Ejb3Column;
            ifnull 9
         7: .line 82
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.column:Lorg/hibernate/cfg/Ejb3Column;
            invokevirtual org.hibernate.cfg.Ejb3Column.getTable:()Lorg/hibernate/mapping/Table;
            putfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.table:Lorg/hibernate/mapping/Table;
         8: .line 83
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.mappings:Lorg/hibernate/cfg/Mappings;
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.column:Lorg/hibernate/cfg/Ejb3Column;
            invokevirtual org.hibernate.cfg.Ejb3Column.getMappingColumn:()Lorg/hibernate/mapping/Column;
            invokevirtual org.hibernate.mapping.Column.getQuotedName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.table:Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.cfg.Mappings.getLogicalColumnName:(Ljava/lang/String;Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.IndexOrUniqueKeySecondPass.addConstraintToColumn:(Ljava/lang/String;)V
         9: .line 85
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Map persistentClasses
        end local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lorg/hibernate/cfg/IndexOrUniqueKeySecondPass;
            0   10     1  persistentClasses  Ljava/util/Map;
            2    6     2                  i  I
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                   Name  Flags
      persistentClasses  

  private void addConstraintToColumn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
        start local 1 // java.lang.String columnName
         0: .line 88
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.table:Lorg/hibernate/mapping/Table;
         1: .line 89
            new org.hibernate.mapping.Column
            dup
         2: .line 90
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.mappings:Lorg/hibernate/cfg/Mappings;
            aload 1 /* columnName */
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.table:Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.cfg.Mappings.getPhysicalColumnName:(Ljava/lang/String;Lorg/hibernate/mapping/Table;)Ljava/lang/String;
         3: .line 89
            invokespecial org.hibernate.mapping.Column.<init>:(Ljava/lang/String;)V
         4: .line 88
            invokevirtual org.hibernate.mapping.Table.getColumn:(Lorg/hibernate/mapping/Column;)Lorg/hibernate/mapping/Column;
            astore 2 /* column */
        start local 2 // org.hibernate.mapping.Column column
         5: .line 93
            aload 2 /* column */
            ifnonnull 9
         6: .line 94
            new org.hibernate.AnnotationException
            dup
         7: .line 95
            new java.lang.StringBuilder
            dup
            ldc "@Index references a unknown column: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* columnName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 94
            invokespecial org.hibernate.AnnotationException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 98
      StackMap locals: org.hibernate.mapping.Column
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.unique:Z
            ifeq 11
        10: .line 99
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.table:Lorg/hibernate/mapping/Table;
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.indexName:Ljava/lang/String;
            invokevirtual org.hibernate.mapping.Table.getOrCreateUniqueKey:(Ljava/lang/String;)Lorg/hibernate/mapping/UniqueKey;
            aload 2 /* column */
            invokevirtual org.hibernate.mapping.UniqueKey.addColumn:(Lorg/hibernate/mapping/Column;)V
            goto 12
        11: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.table:Lorg/hibernate/mapping/Table;
            aload 0 /* this */
            getfield org.hibernate.cfg.IndexOrUniqueKeySecondPass.indexName:Ljava/lang/String;
            invokevirtual org.hibernate.mapping.Table.getOrCreateIndex:(Ljava/lang/String;)Lorg/hibernate/mapping/Index;
            aload 2 /* column */
            invokevirtual org.hibernate.mapping.Index.addColumn:(Lorg/hibernate/mapping/Column;)V
        12: .line 102
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.mapping.Column column
        end local 1 // java.lang.String columnName
        end local 0 // org.hibernate.cfg.IndexOrUniqueKeySecondPass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/hibernate/cfg/IndexOrUniqueKeySecondPass;
            0   13     1  columnName  Ljava/lang/String;
            5   13     2      column  Lorg/hibernate/mapping/Column;
    MethodParameters:
            Name  Flags
      columnName  final
}
SourceFile: "IndexOrUniqueKeySecondPass.java"