public class org.hibernate.metamodel.relational.Database
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.metamodel.relational.Database
  super_class: java.lang.Object
{
  private final org.hibernate.metamodel.relational.Schema$Name implicitSchemaName;
    descriptor: Lorg/hibernate/metamodel/relational/Schema$Name;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<org.hibernate.metamodel.relational.Schema$Name, org.hibernate.metamodel.relational.Schema> schemaMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/hibernate/metamodel/relational/Schema$Name;Lorg/hibernate/metamodel/relational/Schema;>;

  private final java.util.List<org.hibernate.metamodel.relational.AuxiliaryDatabaseObject> auxiliaryDatabaseObjects;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/hibernate/metamodel/relational/AuxiliaryDatabaseObject;>;

  public void <init>(org.hibernate.metamodel.Metadata$Options);
    descriptor: (Lorg/hibernate/metamodel/Metadata$Options;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.metamodel.relational.Database this
        start local 1 // org.hibernate.metamodel.Metadata$Options options
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.metamodel.relational.Database.schemaMap:Ljava/util/Map;
         2: .line 50
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.metamodel.relational.Database.auxiliaryDatabaseObjects:Ljava/util/List;
         3: .line 53
            aload 1 /* options */
            invokeinterface org.hibernate.metamodel.Metadata$Options.getDefaultSchemaName:()Ljava/lang/String;
            astore 2 /* schemaName */
        start local 2 // java.lang.String schemaName
         4: .line 54
            aload 1 /* options */
            invokeinterface org.hibernate.metamodel.Metadata$Options.getDefaultCatalogName:()Ljava/lang/String;
            astore 3 /* catalogName */
        start local 3 // java.lang.String catalogName
         5: .line 55
            aload 1 /* options */
            invokeinterface org.hibernate.metamodel.Metadata$Options.isGloballyQuotedIdentifiers:()Z
            ifeq 8
         6: .line 56
            aload 2 /* schemaName */
            invokestatic org.hibernate.internal.util.StringHelper.quote:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* schemaName */
         7: .line 57
            aload 3 /* catalogName */
            invokestatic org.hibernate.internal.util.StringHelper.quote:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* catalogName */
         8: .line 59
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.metamodel.Metadata$Options java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            new org.hibernate.metamodel.relational.Schema$Name
            dup
            aload 2 /* schemaName */
            aload 3 /* catalogName */
            invokespecial org.hibernate.metamodel.relational.Schema$Name.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            putfield org.hibernate.metamodel.relational.Database.implicitSchemaName:Lorg/hibernate/metamodel/relational/Schema$Name;
         9: .line 60
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.implicitSchemaName:Lorg/hibernate/metamodel/relational/Schema$Name;
            invokevirtual org.hibernate.metamodel.relational.Database.makeSchema:(Lorg/hibernate/metamodel/relational/Schema$Name;)Lorg/hibernate/metamodel/relational/Schema;
            pop
        10: .line 61
            return
        end local 3 // java.lang.String catalogName
        end local 2 // java.lang.String schemaName
        end local 1 // org.hibernate.metamodel.Metadata$Options options
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lorg/hibernate/metamodel/relational/Database;
            0   11     1      options  Lorg/hibernate/metamodel/Metadata$Options;
            4   11     2   schemaName  Ljava/lang/String;
            5   11     3  catalogName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      options  

  public org.hibernate.metamodel.relational.Schema getDefaultSchema();
    descriptor: ()Lorg/hibernate/metamodel/relational/Schema;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.metamodel.relational.Database this
         0: .line 64
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.schemaMap:Ljava/util/Map;
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.implicitSchemaName:Lorg/hibernate/metamodel/relational/Schema$Name;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Schema
            areturn
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/metamodel/relational/Database;

  public org.hibernate.metamodel.relational.Schema locateSchema(org.hibernate.metamodel.relational.Schema$Name);
    descriptor: (Lorg/hibernate/metamodel/relational/Schema$Name;)Lorg/hibernate/metamodel/relational/Schema;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.metamodel.relational.Database this
        start local 1 // org.hibernate.metamodel.relational.Schema$Name name
         0: .line 68
            aload 1 /* name */
            invokevirtual org.hibernate.metamodel.relational.Schema$Name.getSchema:()Lorg/hibernate/metamodel/relational/Identifier;
            ifnonnull 2
            aload 1 /* name */
            invokevirtual org.hibernate.metamodel.relational.Schema$Name.getCatalog:()Lorg/hibernate/metamodel/relational/Identifier;
            ifnonnull 2
         1: .line 69
            aload 0 /* this */
            invokevirtual org.hibernate.metamodel.relational.Database.getDefaultSchema:()Lorg/hibernate/metamodel/relational/Schema;
            areturn
         2: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.schemaMap:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Schema
            astore 2 /* schema */
        start local 2 // org.hibernate.metamodel.relational.Schema schema
         3: .line 72
            aload 2 /* schema */
            ifnonnull 5
         4: .line 73
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.hibernate.metamodel.relational.Database.makeSchema:(Lorg/hibernate/metamodel/relational/Schema$Name;)Lorg/hibernate/metamodel/relational/Schema;
            astore 2 /* schema */
         5: .line 75
      StackMap locals: org.hibernate.metamodel.relational.Schema
      StackMap stack:
            aload 2 /* schema */
            areturn
        end local 2 // org.hibernate.metamodel.relational.Schema schema
        end local 1 // org.hibernate.metamodel.relational.Schema$Name name
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/hibernate/metamodel/relational/Database;
            0    6     1    name  Lorg/hibernate/metamodel/relational/Schema$Name;
            3    6     2  schema  Lorg/hibernate/metamodel/relational/Schema;
    MethodParameters:
      Name  Flags
      name  

  private org.hibernate.metamodel.relational.Schema makeSchema(org.hibernate.metamodel.relational.Schema$Name);
    descriptor: (Lorg/hibernate/metamodel/relational/Schema$Name;)Lorg/hibernate/metamodel/relational/Schema;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.metamodel.relational.Database this
        start local 1 // org.hibernate.metamodel.relational.Schema$Name name
         0: .line 80
            new org.hibernate.metamodel.relational.Schema
            dup
            aload 1 /* name */
            invokespecial org.hibernate.metamodel.relational.Schema.<init>:(Lorg/hibernate/metamodel/relational/Schema$Name;)V
            astore 2 /* schema */
        start local 2 // org.hibernate.metamodel.relational.Schema schema
         1: .line 81
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.schemaMap:Ljava/util/Map;
            aload 1 /* name */
            aload 2 /* schema */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 82
            aload 2 /* schema */
            areturn
        end local 2 // org.hibernate.metamodel.relational.Schema schema
        end local 1 // org.hibernate.metamodel.relational.Schema$Name name
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/hibernate/metamodel/relational/Database;
            0    3     1    name  Lorg/hibernate/metamodel/relational/Schema$Name;
            1    3     2  schema  Lorg/hibernate/metamodel/relational/Schema;
    MethodParameters:
      Name  Flags
      name  

  public org.hibernate.metamodel.relational.Schema getSchema(org.hibernate.metamodel.relational.Identifier, org.hibernate.metamodel.relational.Identifier);
    descriptor: (Lorg/hibernate/metamodel/relational/Identifier;Lorg/hibernate/metamodel/relational/Identifier;)Lorg/hibernate/metamodel/relational/Schema;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.metamodel.relational.Database this
        start local 1 // org.hibernate.metamodel.relational.Identifier schema
        start local 2 // org.hibernate.metamodel.relational.Identifier catalog
         0: .line 86
            aload 0 /* this */
            new org.hibernate.metamodel.relational.Schema$Name
            dup
            aload 1 /* schema */
            aload 2 /* catalog */
            invokespecial org.hibernate.metamodel.relational.Schema$Name.<init>:(Lorg/hibernate/metamodel/relational/Identifier;Lorg/hibernate/metamodel/relational/Identifier;)V
            invokevirtual org.hibernate.metamodel.relational.Database.locateSchema:(Lorg/hibernate/metamodel/relational/Schema$Name;)Lorg/hibernate/metamodel/relational/Schema;
            areturn
        end local 2 // org.hibernate.metamodel.relational.Identifier catalog
        end local 1 // org.hibernate.metamodel.relational.Identifier schema
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/metamodel/relational/Database;
            0    1     1   schema  Lorg/hibernate/metamodel/relational/Identifier;
            0    1     2  catalog  Lorg/hibernate/metamodel/relational/Identifier;
    MethodParameters:
         Name  Flags
      schema   
      catalog  

  public org.hibernate.metamodel.relational.Schema getSchema(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/metamodel/relational/Schema;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.metamodel.relational.Database this
        start local 1 // java.lang.String schema
        start local 2 // java.lang.String catalog
         0: .line 90
            aload 0 /* this */
            new org.hibernate.metamodel.relational.Schema$Name
            dup
            aload 1 /* schema */
            invokestatic org.hibernate.metamodel.relational.Identifier.toIdentifier:(Ljava/lang/String;)Lorg/hibernate/metamodel/relational/Identifier;
            aload 2 /* catalog */
            invokestatic org.hibernate.metamodel.relational.Identifier.toIdentifier:(Ljava/lang/String;)Lorg/hibernate/metamodel/relational/Identifier;
            invokespecial org.hibernate.metamodel.relational.Schema$Name.<init>:(Lorg/hibernate/metamodel/relational/Identifier;Lorg/hibernate/metamodel/relational/Identifier;)V
            invokevirtual org.hibernate.metamodel.relational.Database.locateSchema:(Lorg/hibernate/metamodel/relational/Schema$Name;)Lorg/hibernate/metamodel/relational/Schema;
            areturn
        end local 2 // java.lang.String catalog
        end local 1 // java.lang.String schema
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/metamodel/relational/Database;
            0    1     1   schema  Ljava/lang/String;
            0    1     2  catalog  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      schema   
      catalog  

  public void addAuxiliaryDatabaseObject(org.hibernate.metamodel.relational.AuxiliaryDatabaseObject);
    descriptor: (Lorg/hibernate/metamodel/relational/AuxiliaryDatabaseObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.metamodel.relational.Database this
        start local 1 // org.hibernate.metamodel.relational.AuxiliaryDatabaseObject auxiliaryDatabaseObject
         0: .line 94
            aload 1 /* auxiliaryDatabaseObject */
            ifnonnull 2
         1: .line 95
            new java.lang.IllegalArgumentException
            dup
            ldc "Auxiliary database object is null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.auxiliaryDatabaseObjects:Ljava/util/List;
            aload 1 /* auxiliaryDatabaseObject */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 98
            return
        end local 1 // org.hibernate.metamodel.relational.AuxiliaryDatabaseObject auxiliaryDatabaseObject
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    4     0                     this  Lorg/hibernate/metamodel/relational/Database;
            0    4     1  auxiliaryDatabaseObject  Lorg/hibernate/metamodel/relational/AuxiliaryDatabaseObject;
    MethodParameters:
                         Name  Flags
      auxiliaryDatabaseObject  

  public java.lang.Iterable<org.hibernate.metamodel.relational.AuxiliaryDatabaseObject> getAuxiliaryDatabaseObjects();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.metamodel.relational.Database this
         0: .line 101
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.auxiliaryDatabaseObjects:Ljava/util/List;
            areturn
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/metamodel/relational/Database;
    Signature: ()Ljava/lang/Iterable<Lorg/hibernate/metamodel/relational/AuxiliaryDatabaseObject;>;

  public java.lang.String[] generateSchemaCreationScript(org.hibernate.dialect.Dialect);
    descriptor: (Lorg/hibernate/dialect/Dialect;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.hibernate.metamodel.relational.Database this
        start local 1 // org.hibernate.dialect.Dialect dialect
         0: .line 105
            new java.util.HashSet
            dup
            bipush 50
            invokespecial java.util.HashSet.<init>:(I)V
            astore 2 /* exportIdentifiers */
        start local 2 // java.util.Set exportIdentifiers
         1: .line 106
            new java.util.ArrayList
            dup
            bipush 50
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* script */
        start local 3 // java.util.List script
         2: .line 108
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.schemaMap:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Schema
            astore 4 /* schema */
        start local 4 // org.hibernate.metamodel.relational.Schema schema
         4: .line 110
            aload 4 /* schema */
            invokevirtual org.hibernate.metamodel.relational.Schema.getTables:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 7
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List org.hibernate.metamodel.relational.Schema java.util.Iterator top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Table
            astore 6 /* table */
        start local 6 // org.hibernate.metamodel.relational.Table table
         6: .line 111
            aload 1 /* dialect */
            aload 2 /* exportIdentifiers */
            aload 3 /* script */
            aload 6 /* table */
            invokestatic org.hibernate.metamodel.relational.Database.addSqlCreateStrings:(Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
        end local 6 // org.hibernate.metamodel.relational.Table table
         7: .line 110
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // org.hibernate.metamodel.relational.Schema schema
         8: .line 108
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 115
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.schemaMap:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 28
      StackMap locals:
      StackMap stack:
        10: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Schema
            astore 4 /* schema */
        start local 4 // org.hibernate.metamodel.relational.Schema schema
        11: .line 116
            aload 4 /* schema */
            invokevirtual org.hibernate.metamodel.relational.Schema.getTables:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 27
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List org.hibernate.metamodel.relational.Schema java.util.Iterator top java.util.Iterator
      StackMap stack:
        12: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Table
            astore 6 /* table */
        start local 6 // org.hibernate.metamodel.relational.Table table
        13: .line 118
            aload 6 /* table */
            invokevirtual org.hibernate.metamodel.relational.Table.getUniqueKeys:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 9
            goto 16
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List org.hibernate.metamodel.relational.Schema java.util.Iterator org.hibernate.metamodel.relational.Table java.util.Iterator top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.UniqueKey
            astore 8 /* uniqueKey */
        start local 8 // org.hibernate.metamodel.relational.UniqueKey uniqueKey
        15: .line 119
            aload 1 /* dialect */
            aload 2 /* exportIdentifiers */
            aload 3 /* script */
            aload 8 /* uniqueKey */
            invokestatic org.hibernate.metamodel.relational.Database.addSqlCreateStrings:(Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
        end local 8 // org.hibernate.metamodel.relational.UniqueKey uniqueKey
        16: .line 118
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 122
            aload 6 /* table */
            invokevirtual org.hibernate.metamodel.relational.Table.getIndexes:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 9
            goto 20
      StackMap locals:
      StackMap stack:
        18: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Index
            astore 8 /* index */
        start local 8 // org.hibernate.metamodel.relational.Index index
        19: .line 123
            aload 1 /* dialect */
            aload 2 /* exportIdentifiers */
            aload 3 /* script */
            aload 8 /* index */
            invokestatic org.hibernate.metamodel.relational.Database.addSqlCreateStrings:(Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
        end local 8 // org.hibernate.metamodel.relational.Index index
        20: .line 122
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        21: .line 126
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.hasAlterTable:()Z
            ifeq 27
        22: .line 127
            aload 6 /* table */
            invokevirtual org.hibernate.metamodel.relational.Table.getForeignKeys:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 9
            goto 26
      StackMap locals:
      StackMap stack:
        23: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.ForeignKey
            astore 8 /* foreignKey */
        start local 8 // org.hibernate.metamodel.relational.ForeignKey foreignKey
        24: .line 129
            ldc Lorg/hibernate/metamodel/relational/Table;
            aload 8 /* foreignKey */
            invokevirtual org.hibernate.metamodel.relational.ForeignKey.getTargetTable:()Lorg/hibernate/metamodel/relational/TableSpecification;
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 26
        25: .line 130
            aload 1 /* dialect */
            aload 2 /* exportIdentifiers */
            aload 3 /* script */
            aload 8 /* foreignKey */
            invokestatic org.hibernate.metamodel.relational.Database.addSqlCreateStrings:(Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
        end local 8 // org.hibernate.metamodel.relational.ForeignKey foreignKey
        26: .line 127
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        end local 6 // org.hibernate.metamodel.relational.Table table
        27: .line 116
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List org.hibernate.metamodel.relational.Schema java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 4 // org.hibernate.metamodel.relational.Schema schema
        28: .line 115
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        29: .line 140
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.auxiliaryDatabaseObjects:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 33
      StackMap locals:
      StackMap stack:
        30: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.AuxiliaryDatabaseObject
            astore 4 /* auxiliaryDatabaseObject */
        start local 4 // org.hibernate.metamodel.relational.AuxiliaryDatabaseObject auxiliaryDatabaseObject
        31: .line 141
            aload 4 /* auxiliaryDatabaseObject */
            aload 1 /* dialect */
            invokeinterface org.hibernate.metamodel.relational.AuxiliaryDatabaseObject.appliesToDialect:(Lorg/hibernate/dialect/Dialect;)Z
            ifeq 33
        32: .line 142
            aload 1 /* dialect */
            aload 2 /* exportIdentifiers */
            aload 3 /* script */
            aload 4 /* auxiliaryDatabaseObject */
            invokestatic org.hibernate.metamodel.relational.Database.addSqlCreateStrings:(Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
        end local 4 // org.hibernate.metamodel.relational.AuxiliaryDatabaseObject auxiliaryDatabaseObject
        33: .line 140
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        34: .line 146
            aload 3 /* script */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            areturn
        end local 3 // java.util.List script
        end local 2 // java.util.Set exportIdentifiers
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   35     0                     this  Lorg/hibernate/metamodel/relational/Database;
            0   35     1                  dialect  Lorg/hibernate/dialect/Dialect;
            1   35     2        exportIdentifiers  Ljava/util/Set<Ljava/lang/String;>;
            2   35     3                   script  Ljava/util/List<Ljava/lang/String;>;
            4    8     4                   schema  Lorg/hibernate/metamodel/relational/Schema;
            6    7     6                    table  Lorg/hibernate/metamodel/relational/Table;
           11   28     4                   schema  Lorg/hibernate/metamodel/relational/Schema;
           13   27     6                    table  Lorg/hibernate/metamodel/relational/Table;
           15   16     8                uniqueKey  Lorg/hibernate/metamodel/relational/UniqueKey;
           19   20     8                    index  Lorg/hibernate/metamodel/relational/Index;
           24   26     8               foreignKey  Lorg/hibernate/metamodel/relational/ForeignKey;
           31   33     4  auxiliaryDatabaseObject  Lorg/hibernate/metamodel/relational/AuxiliaryDatabaseObject;
    MethodParameters:
         Name  Flags
      dialect  

  public java.lang.String[] generateDropSchemaScript(org.hibernate.dialect.Dialect);
    descriptor: (Lorg/hibernate/dialect/Dialect;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.hibernate.metamodel.relational.Database this
        start local 1 // org.hibernate.dialect.Dialect dialect
         0: .line 150
            new java.util.HashSet
            dup
            bipush 50
            invokespecial java.util.HashSet.<init>:(I)V
            astore 2 /* exportIdentifiers */
        start local 2 // java.util.Set exportIdentifiers
         1: .line 151
            new java.util.ArrayList
            dup
            bipush 50
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* script */
        start local 3 // java.util.List script
         2: .line 155
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.auxiliaryDatabaseObjects:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 156
      StackMap locals: java.util.Set java.util.List int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.auxiliaryDatabaseObjects:Ljava/util/List;
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.AuxiliaryDatabaseObject
            astore 5 /* object */
        start local 5 // org.hibernate.metamodel.relational.AuxiliaryDatabaseObject object
         5: .line 157
            aload 5 /* object */
            aload 1 /* dialect */
            invokeinterface org.hibernate.metamodel.relational.AuxiliaryDatabaseObject.appliesToDialect:(Lorg/hibernate/dialect/Dialect;)Z
            ifeq 7
         6: .line 158
            aload 1 /* dialect */
            aload 2 /* exportIdentifiers */
            aload 3 /* script */
            aload 5 /* object */
            invokestatic org.hibernate.metamodel.relational.Database.addSqlDropStrings:(Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
        end local 5 // org.hibernate.metamodel.relational.AuxiliaryDatabaseObject object
         7: .line 155
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            ifge 4
        end local 4 // int i
         9: .line 162
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.dropConstraints:()Z
            ifeq 21
        10: .line 163
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.schemaMap:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 20
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
        11: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Schema
            astore 4 /* schema */
        start local 4 // org.hibernate.metamodel.relational.Schema schema
        12: .line 164
            aload 4 /* schema */
            invokevirtual org.hibernate.metamodel.relational.Schema.getTables:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 19
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List org.hibernate.metamodel.relational.Schema java.util.Iterator top java.util.Iterator
      StackMap stack:
        13: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Table
            astore 6 /* table */
        start local 6 // org.hibernate.metamodel.relational.Table table
        14: .line 165
            aload 6 /* table */
            invokevirtual org.hibernate.metamodel.relational.Table.getForeignKeys:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 9
            goto 18
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List org.hibernate.metamodel.relational.Schema java.util.Iterator org.hibernate.metamodel.relational.Table java.util.Iterator top java.util.Iterator
      StackMap stack:
        15: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.ForeignKey
            astore 8 /* foreignKey */
        start local 8 // org.hibernate.metamodel.relational.ForeignKey foreignKey
        16: .line 167
            aload 8 /* foreignKey */
            invokevirtual org.hibernate.metamodel.relational.ForeignKey.getTargetTable:()Lorg/hibernate/metamodel/relational/TableSpecification;
            instanceof org.hibernate.metamodel.relational.Table
            ifeq 18
        17: .line 168
            aload 1 /* dialect */
            aload 2 /* exportIdentifiers */
            aload 3 /* script */
            aload 8 /* foreignKey */
            invokestatic org.hibernate.metamodel.relational.Database.addSqlDropStrings:(Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
        end local 8 // org.hibernate.metamodel.relational.ForeignKey foreignKey
        18: .line 165
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        end local 6 // org.hibernate.metamodel.relational.Table table
        19: .line 164
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List org.hibernate.metamodel.relational.Schema java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 4 // org.hibernate.metamodel.relational.Schema schema
        20: .line 163
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        21: .line 175
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.metamodel.relational.Database.schemaMap:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 27
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
        22: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Schema
            astore 4 /* schema */
        start local 4 // org.hibernate.metamodel.relational.Schema schema
        23: .line 176
            aload 4 /* schema */
            invokevirtual org.hibernate.metamodel.relational.Schema.getTables:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 26
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List org.hibernate.metamodel.relational.Schema java.util.Iterator top java.util.Iterator
      StackMap stack:
        24: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Table
            astore 6 /* table */
        start local 6 // org.hibernate.metamodel.relational.Table table
        25: .line 177
            aload 1 /* dialect */
            aload 2 /* exportIdentifiers */
            aload 3 /* script */
            aload 6 /* table */
            invokestatic org.hibernate.metamodel.relational.Database.addSqlDropStrings:(Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
        end local 6 // org.hibernate.metamodel.relational.Table table
        26: .line 176
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        end local 4 // org.hibernate.metamodel.relational.Schema schema
        27: .line 175
      StackMap locals: org.hibernate.metamodel.relational.Database org.hibernate.dialect.Dialect java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        28: .line 185
            aload 3 /* script */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            areturn
        end local 3 // java.util.List script
        end local 2 // java.util.Set exportIdentifiers
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.metamodel.relational.Database this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   29     0               this  Lorg/hibernate/metamodel/relational/Database;
            0   29     1            dialect  Lorg/hibernate/dialect/Dialect;
            1   29     2  exportIdentifiers  Ljava/util/Set<Ljava/lang/String;>;
            2   29     3             script  Ljava/util/List<Ljava/lang/String;>;
            3    9     4                  i  I
            5    7     5             object  Lorg/hibernate/metamodel/relational/AuxiliaryDatabaseObject;
           12   20     4             schema  Lorg/hibernate/metamodel/relational/Schema;
           14   19     6              table  Lorg/hibernate/metamodel/relational/Table;
           16   18     8         foreignKey  Lorg/hibernate/metamodel/relational/ForeignKey;
           23   27     4             schema  Lorg/hibernate/metamodel/relational/Schema;
           25   26     6              table  Lorg/hibernate/metamodel/relational/Table;
    MethodParameters:
         Name  Flags
      dialect  

  private static void addSqlDropStrings(org.hibernate.dialect.Dialect, java.util.Set<java.lang.String>, java.util.List<java.lang.String>, org.hibernate.metamodel.relational.Exportable);
    descriptor: (Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.dialect.Dialect dialect
        start local 1 // java.util.Set exportIdentifiers
        start local 2 // java.util.List script
        start local 3 // org.hibernate.metamodel.relational.Exportable exportable
         0: .line 194
            aload 1 /* exportIdentifiers */
            aload 2 /* script */
            aload 3 /* exportable */
            invokeinterface org.hibernate.metamodel.relational.Exportable.getExportIdentifier:()Ljava/lang/String;
            aload 3 /* exportable */
            aload 0 /* dialect */
            invokeinterface org.hibernate.metamodel.relational.Exportable.sqlDropStrings:(Lorg/hibernate/dialect/Dialect;)[Ljava/lang/String;
         1: .line 193
            invokestatic org.hibernate.metamodel.relational.Database.addSqlStrings:(Ljava/util/Set;Ljava/util/List;Ljava/lang/String;[Ljava/lang/String;)V
         2: .line 196
            return
        end local 3 // org.hibernate.metamodel.relational.Exportable exportable
        end local 2 // java.util.List script
        end local 1 // java.util.Set exportIdentifiers
        end local 0 // org.hibernate.dialect.Dialect dialect
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0            dialect  Lorg/hibernate/dialect/Dialect;
            0    3     1  exportIdentifiers  Ljava/util/Set<Ljava/lang/String;>;
            0    3     2             script  Ljava/util/List<Ljava/lang/String;>;
            0    3     3         exportable  Lorg/hibernate/metamodel/relational/Exportable;
    Signature: (Lorg/hibernate/dialect/Dialect;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;Lorg/hibernate/metamodel/relational/Exportable;)V
    MethodParameters:
                   Name  Flags
      dialect            
      exportIdentifiers  
      script             
      exportable         

  private static void addSqlCreateStrings(org.hibernate.dialect.Dialect, java.util.Set<java.lang.String>, java.util.List<java.lang.String>, org.hibernate.metamodel.relational.Exportable);
    descriptor: (Lorg/hibernate/dialect/Dialect;Ljava/util/Set;Ljava/util/List;Lorg/hibernate/metamodel/relational/Exportable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.dialect.Dialect dialect
        start local 1 // java.util.Set exportIdentifiers
        start local 2 // java.util.List script
        start local 3 // org.hibernate.metamodel.relational.Exportable exportable
         0: .line 204
            aload 1 /* exportIdentifiers */
            aload 2 /* script */
            aload 3 /* exportable */
            invokeinterface org.hibernate.metamodel.relational.Exportable.getExportIdentifier:()Ljava/lang/String;
            aload 3 /* exportable */
            aload 0 /* dialect */
            invokeinterface org.hibernate.metamodel.relational.Exportable.sqlCreateStrings:(Lorg/hibernate/dialect/Dialect;)[Ljava/lang/String;
         1: .line 203
            invokestatic org.hibernate.metamodel.relational.Database.addSqlStrings:(Ljava/util/Set;Ljava/util/List;Ljava/lang/String;[Ljava/lang/String;)V
         2: .line 206
            return
        end local 3 // org.hibernate.metamodel.relational.Exportable exportable
        end local 2 // java.util.List script
        end local 1 // java.util.Set exportIdentifiers
        end local 0 // org.hibernate.dialect.Dialect dialect
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0            dialect  Lorg/hibernate/dialect/Dialect;
            0    3     1  exportIdentifiers  Ljava/util/Set<Ljava/lang/String;>;
            0    3     2             script  Ljava/util/List<Ljava/lang/String;>;
            0    3     3         exportable  Lorg/hibernate/metamodel/relational/Exportable;
    Signature: (Lorg/hibernate/dialect/Dialect;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;Lorg/hibernate/metamodel/relational/Exportable;)V
    MethodParameters:
                   Name  Flags
      dialect            
      exportIdentifiers  
      script             
      exportable         

  private static void addSqlStrings(java.util.Set<java.lang.String>, java.util.List<java.lang.String>, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/util/Set;Ljava/util/List;Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.util.Set exportIdentifiers
        start local 1 // java.util.List script
        start local 2 // java.lang.String exportIdentifier
        start local 3 // java.lang.String[] sqlStrings
         0: .line 213
            aload 3 /* sqlStrings */
            ifnonnull 2
         1: .line 214
            return
         2: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* exportIdentifiers */
            aload 2 /* exportIdentifier */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 6
         3: .line 217
            new org.hibernate.MappingException
            dup
         4: .line 218
            new java.lang.StringBuilder
            dup
            ldc "SQL strings added more than once for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* exportIdentifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 217
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* exportIdentifiers */
            aload 2 /* exportIdentifier */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 222
            aload 1 /* script */
            aload 3 /* sqlStrings */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 223
            return
        end local 3 // java.lang.String[] sqlStrings
        end local 2 // java.lang.String exportIdentifier
        end local 1 // java.util.List script
        end local 0 // java.util.Set exportIdentifiers
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0  exportIdentifiers  Ljava/util/Set<Ljava/lang/String;>;
            0    9     1             script  Ljava/util/List<Ljava/lang/String;>;
            0    9     2   exportIdentifier  Ljava/lang/String;
            0    9     3         sqlStrings  [Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;[Ljava/lang/String;)V
    MethodParameters:
                   Name  Flags
      exportIdentifiers  
      script             
      exportIdentifier   
      sqlStrings         
}
SourceFile: "Database.java"
InnerClasses:
  public abstract Options = org.hibernate.metamodel.Metadata$Options of org.hibernate.metamodel.Metadata
  public Name = org.hibernate.metamodel.relational.Schema$Name of org.hibernate.metamodel.relational.Schema