public class io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor extends io.ebeaninternal.dbmigration.model.visitor.BaseTablePropertyVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor
  super_class: io.ebeaninternal.dbmigration.model.visitor.BaseTablePropertyVisitor
{
  protected final io.ebeaninternal.dbmigration.model.build.ModelBuildContext ctx;
    descriptor: Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final io.ebeaninternal.dbmigration.model.MTable table;
    descriptor: Lio/ebeaninternal/dbmigration/model/MTable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.deploy.BeanDescriptor<?> beanDescriptor;
    descriptor: Lio/ebeaninternal/server/deploy/BeanDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;

  private final io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet indexSet;
    descriptor: Lio/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private io.ebeaninternal.dbmigration.model.MColumn lastColumn;
    descriptor: Lio/ebeaninternal/dbmigration/model/MColumn;
    flags: (0x0002) ACC_PRIVATE

  private int countForeignKey;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int countIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int countUnique;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int countCheck;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>(io.ebeaninternal.dbmigration.model.build.ModelBuildContext, io.ebeaninternal.dbmigration.model.MTable, io.ebeaninternal.server.deploy.BeanDescriptor<?>);
    descriptor: (Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;Lio/ebeaninternal/dbmigration/model/MTable;Lio/ebeaninternal/server/deploy/BeanDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // io.ebeaninternal.dbmigration.model.build.ModelBuildContext ctx
        start local 2 // io.ebeaninternal.dbmigration.model.MTable table
        start local 3 // io.ebeaninternal.server.deploy.BeanDescriptor beanDescriptor
         0: .line 46
            aload 0 /* this */
            invokespecial io.ebeaninternal.dbmigration.model.visitor.BaseTablePropertyVisitor.<init>:()V
         1: .line 36
            aload 0 /* this */
            new io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet
            dup
            invokespecial io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet.<init>:()V
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.indexSet:Lio/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet;
         2: .line 47
            aload 0 /* this */
            aload 1 /* ctx */
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
         3: .line 48
            aload 0 /* this */
            aload 2 /* table */
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
         4: .line 49
            aload 0 /* this */
            aload 3 /* beanDescriptor */
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.beanDescriptor:Lio/ebeaninternal/server/deploy/BeanDescriptor;
         5: .line 50
            aload 0 /* this */
            aload 3 /* beanDescriptor */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getIndexDefinitions:()[Lio/ebeaninternal/server/deploy/IndexDefinition;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.addIndexes:([Lio/ebeaninternal/server/deploy/IndexDefinition;)V
         6: .line 51
            return
        end local 3 // io.ebeaninternal.server.deploy.BeanDescriptor beanDescriptor
        end local 2 // io.ebeaninternal.dbmigration.model.MTable table
        end local 1 // io.ebeaninternal.dbmigration.model.build.ModelBuildContext ctx
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    7     1             ctx  Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            0    7     2           table  Lio/ebeaninternal/dbmigration/model/MTable;
            0    7     3  beanDescriptor  Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;
    Signature: (Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;Lio/ebeaninternal/dbmigration/model/MTable;Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;)V
    MethodParameters:
                Name  Flags
      ctx             
      table           
      beanDescriptor  

  private void addIndexes(io.ebeaninternal.server.deploy.IndexDefinition[]);
    descriptor: ([Lio/ebeaninternal/server/deploy/IndexDefinition;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // io.ebeaninternal.server.deploy.IndexDefinition[] indexes
         0: .line 58
            aload 1 /* indexes */
            ifnull 17
         1: .line 59
            aload 1 /* indexes */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 16
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.IndexDefinition[] top int int io.ebeaninternal.server.deploy.IndexDefinition[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* index */
        start local 2 // io.ebeaninternal.server.deploy.IndexDefinition index
         3: .line 60
            aload 2 /* index */
            invokevirtual io.ebeaninternal.server.deploy.IndexDefinition.getColumns:()[Ljava/lang/String;
            astore 6 /* columns */
        start local 6 // java.lang.String[] columns
         4: .line 61
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.indexSet:Lio/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet;
            aload 6 /* columns */
            invokevirtual io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet.add:([Ljava/lang/String;)Z
            pop
         5: .line 63
            aload 2 /* index */
            invokevirtual io.ebeaninternal.server.deploy.IndexDefinition.isUnique:()Z
            ifeq 11
         6: .line 64
            aload 2 /* index */
            invokevirtual io.ebeaninternal.server.deploy.IndexDefinition.getName:()Ljava/lang/String;
            astore 7 /* uqName */
        start local 7 // java.lang.String uqName
         7: .line 65
            aload 7 /* uqName */
            ifnull 8
            aload 7 /* uqName */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 9
         8: .line 66
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.IndexDefinition[] io.ebeaninternal.server.deploy.IndexDefinition int int io.ebeaninternal.server.deploy.IndexDefinition[] java.lang.String[] java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 6 /* columns */
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineUniqueConstraintName:([Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* uqName */
         9: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            aload 6 /* columns */
            iconst_0
            aload 7 /* uqName */
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.addUniqueConstraint:([Ljava/lang/String;ZLjava/lang/String;)V
        end local 7 // java.lang.String uqName
        10: .line 70
            goto 15
        11: .line 72
      StackMap locals:
      StackMap stack:
            aload 2 /* index */
            invokevirtual io.ebeaninternal.server.deploy.IndexDefinition.getName:()Ljava/lang/String;
            astore 7 /* idxName */
        start local 7 // java.lang.String idxName
        12: .line 73
            aload 7 /* idxName */
            ifnull 13
            aload 7 /* idxName */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 14
        13: .line 74
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 6 /* columns */
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineIndexName:([Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* idxName */
        14: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 7 /* idxName */
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
            aload 6 /* columns */
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.addIndex:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
        end local 7 // java.lang.String idxName
        end local 6 // java.lang.String[] columns
        end local 2 // io.ebeaninternal.server.deploy.IndexDefinition index
        15: .line 59
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.IndexDefinition[] top int int io.ebeaninternal.server.deploy.IndexDefinition[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        16: iload 3
            iload 4
            if_icmplt 2
        17: .line 80
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.IndexDefinition[]
      StackMap stack:
            return
        end local 1 // io.ebeaninternal.server.deploy.IndexDefinition[] indexes
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0   18     1  indexes  [Lio/ebeaninternal/server/deploy/IndexDefinition;
            3   15     2    index  Lio/ebeaninternal/server/deploy/IndexDefinition;
            4   15     6  columns  [Ljava/lang/String;
            7   10     7   uqName  Ljava/lang/String;
           12   15     7  idxName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      indexes  

  public void visitEnd();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
         0: .line 86
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            aload 0 /* this */
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determinePrimaryKeyName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.setPkName:(Ljava/lang/String;)V
         1: .line 89
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.allColumns:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.ebeaninternal.dbmigration.model.MColumn
            astore 1 /* column */
        start local 1 // io.ebeaninternal.dbmigration.model.MColumn column
         3: .line 90
            aload 0 /* this */
            aload 1 /* column */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getForeignKeyIndex:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.hasValue:(Ljava/lang/String;)Z
            ifeq 6
         4: .line 91
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.indexSet:Lio/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet;
            aload 1 /* column */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet.contains:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 94
            aload 1 /* column */
            aconst_null
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setForeignKeyIndex:(Ljava/lang/String;)V
        end local 1 // io.ebeaninternal.dbmigration.model.MColumn column
         6: .line 89
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 99
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getCompoundKeys:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
         8: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.ebeaninternal.dbmigration.model.MCompoundForeignKey
            astore 1 /* compoundKey */
        start local 1 // io.ebeaninternal.dbmigration.model.MCompoundForeignKey compoundKey
         9: .line 100
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.indexSet:Lio/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet;
            aload 1 /* compoundKey */
            invokevirtual io.ebeaninternal.dbmigration.model.MCompoundForeignKey.getColumns:()Ljava/util/List;
            invokevirtual io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet.contains:(Ljava/util/List;)Z
            ifeq 11
        10: .line 103
            aload 1 /* compoundKey */
            aconst_null
            invokevirtual io.ebeaninternal.dbmigration.model.MCompoundForeignKey.setIndexName:(Ljava/lang/String;)V
        end local 1 // io.ebeaninternal.dbmigration.model.MCompoundForeignKey compoundKey
        11: .line 99
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        12: .line 107
            aload 0 /* this */
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.addDraftTable:()V
        13: .line 109
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.updateCompoundIndices:()V
        14: .line 110
            return
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            3    6     1       column  Lio/ebeaninternal/dbmigration/model/MColumn;
            9   11     1  compoundKey  Lio/ebeaninternal/dbmigration/model/MCompoundForeignKey;

  private void addDraftTable();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
         0: .line 117
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.beanDescriptor:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isDraftable:()Z
            ifne 1
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.beanDescriptor:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isDraftableElement:()Z
            ifeq 4
         1: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.beanDescriptor:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isDraftableElement:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor
      StackMap stack: io.ebeaninternal.dbmigration.model.build.ModelBuildContext io.ebeaninternal.dbmigration.model.MTable
         2: iconst_1
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor
      StackMap stack: io.ebeaninternal.dbmigration.model.build.ModelBuildContext io.ebeaninternal.dbmigration.model.MTable int
         3: invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.createDraft:(Lio/ebeaninternal/dbmigration/model/MTable;Z)V
         4: .line 121
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;

  public void visitMany(io.ebeaninternal.server.deploy.BeanPropertyAssocMany<?>);
    descriptor: (Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // io.ebeaninternal.server.deploy.BeanPropertyAssocMany p
         0: .line 126
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.hasJoinTable:()Z
            ifeq 9
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getMappedBy:()Ljava/lang/String;
            ifnonnull 9
         1: .line 132
            new io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 1 /* p */
            invokespecial io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.<init>:(Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;)V
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.build:()Lio/ebeaninternal/dbmigration/model/MTable;
            astore 2 /* intersectionTable */
        start local 2 // io.ebeaninternal.dbmigration.model.MTable intersectionTable
         2: .line 133
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.isO2mJoinTable:()Z
            ifeq 11
         3: .line 134
            aload 2 /* intersectionTable */
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.clearForeignKeyIndexes:()V
         4: .line 135
            aload 2 /* intersectionTable */
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.allColumns:()Ljava/util/Collection;
            astore 3 /* cols */
        start local 3 // java.util.Collection cols
         5: .line 136
            aload 3 /* cols */
            invokeinterface java.util.Collection.size:()I
            iconst_2
            if_icmpne 11
         6: .line 138
            new java.util.ArrayList
            dup
            aload 3 /* cols */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            iconst_1
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast io.ebeaninternal.dbmigration.model.MColumn
            astore 4 /* col */
        start local 4 // io.ebeaninternal.dbmigration.model.MColumn col
         7: .line 139
            aload 4 /* col */
            aload 0 /* this */
            aload 4 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineUniqueConstraintName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setUnique:(Ljava/lang/String;)V
        end local 4 // io.ebeaninternal.dbmigration.model.MColumn col
        end local 3 // java.util.Collection cols
        end local 2 // io.ebeaninternal.dbmigration.model.MTable intersectionTable
         8: .line 142
            goto 11
      StackMap locals:
      StackMap stack:
         9: aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.isElementCollection:()Z
            ifeq 11
        10: .line 143
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 1 /* p */
            invokestatic io.ebeaninternal.dbmigration.model.build.ModelBuildElementTable.build:(Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;)V
        11: .line 145
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.ebeaninternal.server.deploy.BeanPropertyAssocMany p
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0   12     1                  p  Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany<*>;
            2    8     2  intersectionTable  Lio/ebeaninternal/dbmigration/model/MTable;
            5    8     3               cols  Ljava/util/Collection<Lio/ebeaninternal/dbmigration/model/MColumn;>;
            7    8     4                col  Lio/ebeaninternal/dbmigration/model/MColumn;
    Signature: (Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany<*>;)V
    MethodParameters:
      Name  Flags
      p     

  public void visitEmbeddedScalar(io.ebeaninternal.server.deploy.BeanProperty, io.ebeaninternal.server.deploy.BeanPropertyAssocOne<?>);
    descriptor: (Lio/ebeaninternal/server/deploy/BeanProperty;Lio/ebeaninternal/server/deploy/BeanPropertyAssocOne;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // io.ebeaninternal.server.deploy.BeanProperty p
        start local 2 // io.ebeaninternal.server.deploy.BeanPropertyAssocOne embedded
         0: .line 150
            aload 1 /* p */
            instanceof io.ebeaninternal.server.deploy.BeanPropertyAssocOne
            ifeq 3
         1: .line 151
            aload 0 /* this */
            aload 1 /* p */
            checkcast io.ebeaninternal.server.deploy.BeanPropertyAssocOne
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.visitOneImported:(Lio/ebeaninternal/server/deploy/BeanPropertyAssocOne;)V
         2: .line 152
            goto 4
         3: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.visitScalar:(Lio/ebeaninternal/server/deploy/BeanProperty;)V
         4: .line 155
      StackMap locals:
      StackMap stack:
            aload 2 /* embedded */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.isId:()Z
            ifeq 6
         5: .line 157
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.lastColumn:Lio/ebeaninternal/dbmigration/model/MColumn;
            iconst_1
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setPrimaryKey:(Z)V
         6: .line 159
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.ebeaninternal.server.deploy.BeanPropertyAssocOne embedded
        end local 1 // io.ebeaninternal.server.deploy.BeanProperty p
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    7     1         p  Lio/ebeaninternal/server/deploy/BeanProperty;
            0    7     2  embedded  Lio/ebeaninternal/server/deploy/BeanPropertyAssocOne<*>;
    Signature: (Lio/ebeaninternal/server/deploy/BeanProperty;Lio/ebeaninternal/server/deploy/BeanPropertyAssocOne<*>;)V
    MethodParameters:
          Name  Flags
      p         
      embedded  

  public void visitOneImported(io.ebeaninternal.server.deploy.BeanPropertyAssocOne<?>);
    descriptor: (Lio/ebeaninternal/server/deploy/BeanPropertyAssocOne;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=17, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // io.ebeaninternal.server.deploy.BeanPropertyAssocOne p
         0: .line 164
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getTableJoin:()Lio/ebeaninternal/server/deploy/TableJoin;
            invokevirtual io.ebeaninternal.server.deploy.TableJoin.columns:()[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            astore 2 /* columns */
        start local 2 // io.ebeaninternal.server.deploy.TableJoinColumn[] columns
         1: .line 165
            aload 2 /* columns */
            arraylength
            ifne 3
         2: .line 166
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No join columns for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getFullBeanName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 169
      StackMap locals: io.ebeaninternal.server.deploy.TableJoinColumn[]
      StackMap stack:
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getImportedId:()Lio/ebeaninternal/server/deploy/id/ImportedId;
            astore 3 /* importedId */
        start local 3 // io.ebeaninternal.server.deploy.id.ImportedId importedId
         4: .line 171
            new java.util.ArrayList
            dup
            aload 2 /* columns */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* modelColumns */
        start local 4 // java.util.List modelColumns
         5: .line 173
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getForeignKey:()Lio/ebeaninternal/server/deploy/PropertyForeignKey;
            astore 5 /* foreignKey */
        start local 5 // io.ebeaninternal.server.deploy.PropertyForeignKey foreignKey
         6: .line 175
            aconst_null
            astore 6 /* compoundKey */
        start local 6 // io.ebeaninternal.dbmigration.model.MCompoundForeignKey compoundKey
         7: .line 176
            aload 2 /* columns */
            arraylength
            iconst_1
            if_icmple 13
         8: .line 178
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getTargetDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getBaseTable:()Ljava/lang/String;
            astore 7 /* refTable */
        start local 7 // java.lang.String refTable
         9: .line 179
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineForeignKeyConstraintName:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* fkName */
        start local 8 // java.lang.String fkName
        10: .line 180
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineForeignKeyIndexName:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* fkIndex */
        start local 9 // java.lang.String fkIndex
        11: .line 181
            new io.ebeaninternal.dbmigration.model.MCompoundForeignKey
            dup
            aload 8 /* fkName */
            aload 7 /* refTable */
            aload 9 /* fkIndex */
            invokespecial io.ebeaninternal.dbmigration.model.MCompoundForeignKey.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 6 /* compoundKey */
        12: .line 182
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            aload 6 /* compoundKey */
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.addForeignKey:(Lio/ebeaninternal/dbmigration/model/MCompoundForeignKey;)V
        end local 9 // java.lang.String fkIndex
        end local 8 // java.lang.String fkName
        end local 7 // java.lang.String refTable
        13: .line 185
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.BeanPropertyAssocOne io.ebeaninternal.server.deploy.TableJoinColumn[] io.ebeaninternal.server.deploy.id.ImportedId java.util.List io.ebeaninternal.server.deploy.PropertyForeignKey io.ebeaninternal.dbmigration.model.MCompoundForeignKey
      StackMap stack:
            aload 2 /* columns */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 41
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.BeanPropertyAssocOne io.ebeaninternal.server.deploy.TableJoinColumn[] io.ebeaninternal.server.deploy.id.ImportedId java.util.List io.ebeaninternal.server.deploy.PropertyForeignKey io.ebeaninternal.dbmigration.model.MCompoundForeignKey top int int io.ebeaninternal.server.deploy.TableJoinColumn[]
      StackMap stack:
        14: aload 10
            iload 8
            aaload
            astore 7 /* column */
        start local 7 // io.ebeaninternal.server.deploy.TableJoinColumn column
        15: .line 187
            aload 7 /* column */
            invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.getLocalDbColumn:()Ljava/lang/String;
            astore 11 /* dbCol */
        start local 11 // java.lang.String dbCol
        16: .line 188
            aload 3 /* importedId */
            aload 11 /* dbCol */
            invokeinterface io.ebeaninternal.server.deploy.id.ImportedId.findMatchImport:(Ljava/lang/String;)Lio/ebeaninternal/server/deploy/BeanProperty;
            astore 12 /* importedProperty */
        start local 12 // io.ebeaninternal.server.deploy.BeanProperty importedProperty
        17: .line 189
            aload 12 /* importedProperty */
            ifnonnull 19
        18: .line 190
            new java.lang.RuntimeException
            dup
            ldc "Imported BeanProperty not found?"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 192
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.BeanPropertyAssocOne io.ebeaninternal.server.deploy.TableJoinColumn[] io.ebeaninternal.server.deploy.id.ImportedId java.util.List io.ebeaninternal.server.deploy.PropertyForeignKey io.ebeaninternal.dbmigration.model.MCompoundForeignKey io.ebeaninternal.server.deploy.TableJoinColumn int int io.ebeaninternal.server.deploy.TableJoinColumn[] java.lang.String io.ebeaninternal.server.deploy.BeanProperty
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 12 /* importedProperty */
            iconst_1
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.getColumnDefn:(Lio/ebeaninternal/server/deploy/BeanProperty;Z)Ljava/lang/String;
            astore 13 /* columnDefn */
        start local 13 // java.lang.String columnDefn
        20: .line 193
            aload 12 /* importedProperty */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getDbColumn:()Ljava/lang/String;
            astore 14 /* refColumn */
        start local 14 // java.lang.String refColumn
        21: .line 195
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            aload 11 /* dbCol */
            aload 13 /* columnDefn */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.isNullable:()Z
            ifeq 22
            iconst_0
            goto 23
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.BeanPropertyAssocOne io.ebeaninternal.server.deploy.TableJoinColumn[] io.ebeaninternal.server.deploy.id.ImportedId java.util.List io.ebeaninternal.server.deploy.PropertyForeignKey io.ebeaninternal.dbmigration.model.MCompoundForeignKey io.ebeaninternal.server.deploy.TableJoinColumn int int io.ebeaninternal.server.deploy.TableJoinColumn[] java.lang.String io.ebeaninternal.server.deploy.BeanProperty java.lang.String java.lang.String
      StackMap stack: io.ebeaninternal.dbmigration.model.MTable java.lang.String java.lang.String
        22: iconst_1
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.BeanPropertyAssocOne io.ebeaninternal.server.deploy.TableJoinColumn[] io.ebeaninternal.server.deploy.id.ImportedId java.util.List io.ebeaninternal.server.deploy.PropertyForeignKey io.ebeaninternal.dbmigration.model.MCompoundForeignKey io.ebeaninternal.server.deploy.TableJoinColumn int int io.ebeaninternal.server.deploy.TableJoinColumn[] java.lang.String io.ebeaninternal.server.deploy.BeanProperty java.lang.String java.lang.String
      StackMap stack: io.ebeaninternal.dbmigration.model.MTable java.lang.String java.lang.String int
        23: invokevirtual io.ebeaninternal.dbmigration.model.MTable.addColumn:(Ljava/lang/String;Ljava/lang/String;Z)Lio/ebeaninternal/dbmigration/model/MColumn;
            astore 15 /* col */
        start local 15 // io.ebeaninternal.dbmigration.model.MColumn col
        24: .line 196
            aload 15 /* col */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getDbMigrationInfos:()Ljava/util/List;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setDbMigrationInfos:(Ljava/util/List;)V
        25: .line 197
            aload 15 /* col */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getDbColumnDefault:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setDefaultValue:(Ljava/lang/String;)V
        26: .line 198
            aload 2 /* columns */
            arraylength
            iconst_1
            if_icmpne 38
        27: .line 199
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.hasForeignKey:()Z
            ifeq 39
            aload 12 /* importedProperty */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.suppressForeignKey:()Z
            ifne 39
        28: .line 201
            aload 12 /* importedProperty */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getBaseTable:()Ljava/lang/String;
            astore 16 /* refTable */
        start local 16 // java.lang.String refTable
        29: .line 202
            aload 16 /* refTable */
            ifnonnull 31
        30: .line 204
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getTargetDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getBaseTable:()Ljava/lang/String;
            astore 16 /* refTable */
        31: .line 206
      StackMap locals: io.ebeaninternal.dbmigration.model.MColumn java.lang.String
      StackMap stack:
            aload 15 /* col */
            new java.lang.StringBuilder
            dup
            aload 16 /* refTable */
            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;
            aload 14 /* refColumn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setReferences:(Ljava/lang/String;)V
        32: .line 207
            aload 15 /* col */
            aload 0 /* this */
            aload 15 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineForeignKeyConstraintName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setForeignKeyName:(Ljava/lang/String;)V
        33: .line 208
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.hasForeignKeyIndex:()Z
            ifeq 35
        34: .line 209
            aload 15 /* col */
            aload 0 /* this */
            aload 15 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineForeignKeyIndexName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setForeignKeyIndex:(Ljava/lang/String;)V
        35: .line 211
      StackMap locals:
      StackMap stack:
            aload 5 /* foreignKey */
            ifnull 39
        36: .line 212
            aload 15 /* col */
            aload 5 /* foreignKey */
            invokevirtual io.ebeaninternal.server.deploy.PropertyForeignKey.getOnDelete:()Lio/ebean/annotation/ConstraintMode;
            aload 5 /* foreignKey */
            invokevirtual io.ebeaninternal.server.deploy.PropertyForeignKey.getOnUpdate:()Lio/ebean/annotation/ConstraintMode;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setForeignKeyModes:(Lio/ebean/annotation/ConstraintMode;Lio/ebean/annotation/ConstraintMode;)V
        end local 16 // java.lang.String refTable
        37: .line 215
            goto 39
        38: .line 216
      StackMap locals:
      StackMap stack:
            aload 6 /* compoundKey */
            aload 11 /* dbCol */
            aload 14 /* refColumn */
            invokevirtual io.ebeaninternal.dbmigration.model.MCompoundForeignKey.addColumnPair:(Ljava/lang/String;Ljava/lang/String;)V
        39: .line 218
      StackMap locals:
      StackMap stack:
            aload 4 /* modelColumns */
            aload 15 /* col */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // io.ebeaninternal.dbmigration.model.MColumn col
        end local 14 // java.lang.String refColumn
        end local 13 // java.lang.String columnDefn
        end local 12 // io.ebeaninternal.server.deploy.BeanProperty importedProperty
        end local 11 // java.lang.String dbCol
        end local 7 // io.ebeaninternal.server.deploy.TableJoinColumn column
        40: .line 185
            iinc 8 1
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.BeanPropertyAssocOne io.ebeaninternal.server.deploy.TableJoinColumn[] io.ebeaninternal.server.deploy.id.ImportedId java.util.List io.ebeaninternal.server.deploy.PropertyForeignKey io.ebeaninternal.dbmigration.model.MCompoundForeignKey top int int io.ebeaninternal.server.deploy.TableJoinColumn[]
      StackMap stack:
        41: iload 8
            iload 9
            if_icmplt 14
        42: .line 221
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.isOneToOne:()Z
            ifeq 51
        43: .line 224
            aload 4 /* modelColumns */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 48
        44: .line 225
            aload 4 /* modelColumns */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.ebeaninternal.dbmigration.model.MColumn
            astore 7 /* col */
        start local 7 // io.ebeaninternal.dbmigration.model.MColumn col
        45: .line 226
            aload 7 /* col */
            aload 0 /* this */
            aload 7 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineUniqueConstraintName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setUniqueOneToOne:(Ljava/lang/String;)V
        46: .line 227
            aload 0 /* this */
            aload 7 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.indexSetAdd:(Ljava/lang/String;)V
        end local 7 // io.ebeaninternal.dbmigration.model.MColumn col
        47: .line 229
            goto 51
        48: .line 230
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor io.ebeaninternal.server.deploy.BeanPropertyAssocOne io.ebeaninternal.server.deploy.TableJoinColumn[] io.ebeaninternal.server.deploy.id.ImportedId java.util.List io.ebeaninternal.server.deploy.PropertyForeignKey io.ebeaninternal.dbmigration.model.MCompoundForeignKey
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocOne.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineUniqueConstraintName:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* uqName */
        start local 7 // java.lang.String uqName
        49: .line 231
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            aload 4 /* modelColumns */
            iconst_1
            aload 7 /* uqName */
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.addUniqueConstraint:(Ljava/util/List;ZLjava/lang/String;)V
        50: .line 232
            aload 0 /* this */
            aload 4 /* modelColumns */
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.indexSetAdd:(Ljava/util/List;)V
        end local 7 // java.lang.String uqName
        51: .line 235
      StackMap locals:
      StackMap stack:
            return
        end local 6 // io.ebeaninternal.dbmigration.model.MCompoundForeignKey compoundKey
        end local 5 // io.ebeaninternal.server.deploy.PropertyForeignKey foreignKey
        end local 4 // java.util.List modelColumns
        end local 3 // io.ebeaninternal.server.deploy.id.ImportedId importedId
        end local 2 // io.ebeaninternal.server.deploy.TableJoinColumn[] columns
        end local 1 // io.ebeaninternal.server.deploy.BeanPropertyAssocOne p
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   52     0              this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0   52     1                 p  Lio/ebeaninternal/server/deploy/BeanPropertyAssocOne<*>;
            1   52     2           columns  [Lio/ebeaninternal/server/deploy/TableJoinColumn;
            4   52     3        importedId  Lio/ebeaninternal/server/deploy/id/ImportedId;
            5   52     4      modelColumns  Ljava/util/List<Lio/ebeaninternal/dbmigration/model/MColumn;>;
            6   52     5        foreignKey  Lio/ebeaninternal/server/deploy/PropertyForeignKey;
            7   52     6       compoundKey  Lio/ebeaninternal/dbmigration/model/MCompoundForeignKey;
            9   13     7          refTable  Ljava/lang/String;
           10   13     8            fkName  Ljava/lang/String;
           11   13     9           fkIndex  Ljava/lang/String;
           15   40     7            column  Lio/ebeaninternal/server/deploy/TableJoinColumn;
           16   40    11             dbCol  Ljava/lang/String;
           17   40    12  importedProperty  Lio/ebeaninternal/server/deploy/BeanProperty;
           20   40    13        columnDefn  Ljava/lang/String;
           21   40    14         refColumn  Ljava/lang/String;
           24   40    15               col  Lio/ebeaninternal/dbmigration/model/MColumn;
           29   37    16          refTable  Ljava/lang/String;
           45   47     7               col  Lio/ebeaninternal/dbmigration/model/MColumn;
           49   51     7            uqName  Ljava/lang/String;
    Signature: (Lio/ebeaninternal/server/deploy/BeanPropertyAssocOne<*>;)V
    MethodParameters:
      Name  Flags
      p     

  public void visitScalar(io.ebeaninternal.server.deploy.BeanProperty);
    descriptor: (Lio/ebeaninternal/server/deploy/BeanProperty;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // io.ebeaninternal.server.deploy.BeanProperty p
         0: .line 240
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isSecondaryTable:()Z
            ifeq 3
         1: .line 241
            aload 0 /* this */
            aconst_null
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.lastColumn:Lio/ebeaninternal/dbmigration/model/MColumn;
         2: .line 242
            return
         3: .line 247
      StackMap locals:
      StackMap stack:
            new io.ebeaninternal.dbmigration.model.MColumn
            dup
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getDbColumn:()Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 1 /* p */
            iconst_0
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.getColumnDefn:(Lio/ebeaninternal/server/deploy/BeanProperty;Z)Ljava/lang/String;
            invokespecial io.ebeaninternal.dbmigration.model.MColumn.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* col */
        start local 2 // io.ebeaninternal.dbmigration.model.MColumn col
         4: .line 248
            aload 2 /* col */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getDbComment:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setComment:(Ljava/lang/String;)V
         5: .line 249
            aload 2 /* col */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isDraftOnly:()Z
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setDraftOnly:(Z)V
         6: .line 250
            aload 2 /* col */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isExcludedFromHistory:()Z
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setHistoryExclude:(Z)V
         7: .line 252
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isId:()Z
            ifeq 17
         8: .line 253
            aload 2 /* col */
            iconst_1
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setPrimaryKey:(Z)V
         9: .line 254
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isUseIdGenerator:()Z
            ifeq 11
        10: .line 255
            aload 2 /* col */
            iconst_1
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setIdentity:(Z)V
        11: .line 257
      StackMap locals: io.ebeaninternal.dbmigration.model.MColumn
      StackMap stack:
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getPrimaryKeyJoin:()Lio/ebeaninternal/server/deploy/TableJoin;
            astore 3 /* primaryKeyJoin */
        start local 3 // io.ebeaninternal.server.deploy.TableJoin primaryKeyJoin
        12: .line 258
            aload 3 /* primaryKeyJoin */
            ifnull 20
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.isPartitioned:()Z
            ifne 20
        13: .line 259
            aload 3 /* primaryKeyJoin */
            invokevirtual io.ebeaninternal.server.deploy.TableJoin.columns:()[Lio/ebeaninternal/server/deploy/TableJoinColumn;
            astore 4 /* columns */
        start local 4 // io.ebeaninternal.server.deploy.TableJoinColumn[] columns
        14: .line 260
            aload 2 /* col */
            new java.lang.StringBuilder
            dup
            aload 3 /* primaryKeyJoin */
            invokevirtual io.ebeaninternal.server.deploy.TableJoin.getTable:()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;
            aload 4 /* columns */
            iconst_0
            aaload
            invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.getForeignDbColumn:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setReferences:(Ljava/lang/String;)V
        15: .line 261
            aload 2 /* col */
            aload 0 /* this */
            aload 2 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineForeignKeyConstraintName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setForeignKeyName:(Ljava/lang/String;)V
        end local 4 // io.ebeaninternal.server.deploy.TableJoinColumn[] columns
        end local 3 // io.ebeaninternal.server.deploy.TableJoin primaryKeyJoin
        16: .line 263
            goto 20
        17: .line 264
      StackMap locals:
      StackMap stack:
            aload 2 /* col */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getDbColumnDefault:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setDefaultValue:(Ljava/lang/String;)V
        18: .line 265
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isNullable:()Z
            ifeq 19
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isDDLNotNull:()Z
            ifeq 20
        19: .line 266
      StackMap locals:
      StackMap stack:
            aload 2 /* col */
            iconst_1
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setNotnull:(Z)V
        20: .line 270
      StackMap locals:
      StackMap stack:
            aload 2 /* col */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getDbMigrationInfos:()Ljava/util/List;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setDbMigrationInfos:(Ljava/util/List;)V
        21: .line 272
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isUnique:()Z
            ifeq 24
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isId:()Z
            ifne 24
        22: .line 273
            aload 2 /* col */
            aload 0 /* this */
            aload 2 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineUniqueConstraintName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setUnique:(Ljava/lang/String;)V
        23: .line 274
            aload 0 /* this */
            aload 2 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.indexSetAdd:(Ljava/lang/String;)V
        24: .line 276
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getDbCheckConstraintValues:()Ljava/util/Set;
            astore 3 /* checkConstraintValues */
        start local 3 // java.util.Set checkConstraintValues
        25: .line 277
            aload 3 /* checkConstraintValues */
            ifnull 31
        26: .line 278
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.beanDescriptor:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.hasInheritance:()Z
            ifeq 29
        27: .line 279
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.beanDescriptor:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getInheritInfo:()Lio/ebeaninternal/server/deploy/InheritInfo;
            astore 4 /* inheritInfo */
        start local 4 // io.ebeaninternal.server.deploy.InheritInfo inheritInfo
        28: .line 280
            aload 4 /* inheritInfo */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getName:()Ljava/lang/String;
            aload 3 /* checkConstraintValues */
            invokevirtual io.ebeaninternal.server.deploy.InheritInfo.appendCheckConstraintValues:(Ljava/lang/String;Ljava/util/Set;)V
        end local 4 // io.ebeaninternal.server.deploy.InheritInfo inheritInfo
        29: .line 282
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* col */
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getDbColumn:()Ljava/lang/String;
            aload 3 /* checkConstraintValues */
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.buildCheckConstraint:(Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setCheckConstraint:(Ljava/lang/String;)V
        30: .line 283
            aload 2 /* col */
            aload 0 /* this */
            aload 2 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineCheckConstraintName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setCheckConstraintName:(Ljava/lang/String;)V
        31: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* col */
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.lastColumn:Lio/ebeaninternal/dbmigration/model/MColumn;
        32: .line 287
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            aload 2 /* col */
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.addColumn:(Lio/ebeaninternal/dbmigration/model/MColumn;)V
        33: .line 288
            return
        end local 3 // java.util.Set checkConstraintValues
        end local 2 // io.ebeaninternal.dbmigration.model.MColumn col
        end local 1 // io.ebeaninternal.server.deploy.BeanProperty p
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   34     0                   this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0   34     1                      p  Lio/ebeaninternal/server/deploy/BeanProperty;
            4   34     2                    col  Lio/ebeaninternal/dbmigration/model/MColumn;
           12   16     3         primaryKeyJoin  Lio/ebeaninternal/server/deploy/TableJoin;
           14   16     4                columns  [Lio/ebeaninternal/server/deploy/TableJoinColumn;
           25   34     3  checkConstraintValues  Ljava/util/Set<Ljava/lang/String;>;
           28   29     4            inheritInfo  Lio/ebeaninternal/server/deploy/InheritInfo;
    MethodParameters:
      Name  Flags
      p     

  private java.lang.String buildCheckConstraint(java.lang.String, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String dbColumn
        start local 2 // java.util.Set checkConstraintValues
         0: .line 294
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 295
            aload 3 /* sb */
            ldc "check ( "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* dbColumn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 296
            iconst_0
            istore 4 /* count */
        start local 4 // int count
         3: .line 297
            aload 2 /* checkConstraintValues */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor java.lang.String java.util.Set java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* value */
        start local 5 // java.lang.String value
         5: .line 298
            iload 4 /* count */
            iinc 4 /* count */ 1
            ifle 7
         6: .line 299
            aload 3 /* sb */
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 301
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor java.lang.String java.util.Set java.lang.StringBuilder int java.lang.String java.util.Iterator
      StackMap stack:
            aload 3 /* sb */
            aload 5 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 5 // java.lang.String value
         8: .line 297
      StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor java.lang.String java.util.Set java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 303
            aload 3 /* sb */
            ldc "))"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 304
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // int count
        end local 3 // java.lang.StringBuilder sb
        end local 2 // java.util.Set checkConstraintValues
        end local 1 // java.lang.String dbColumn
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   11     0                   this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0   11     1               dbColumn  Ljava/lang/String;
            0   11     2  checkConstraintValues  Ljava/util/Set<Ljava/lang/String;>;
            1   11     3                     sb  Ljava/lang/StringBuilder;
            3   11     4                  count  I
            5    8     5                  value  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                       Name  Flags
      dbColumn               
      checkConstraintValues  

  private void indexSetAdd(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String column
         0: .line 308
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.indexSet:Lio/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet;
            aload 1 /* column */
            invokevirtual io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet.add:(Ljava/lang/String;)V
         1: .line 309
            return
        end local 1 // java.lang.String column
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    2     1  column  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      column  

  private void indexSetAdd(java.util.List<io.ebeaninternal.dbmigration.model.MColumn>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.util.List modelColumns
         0: .line 312
            aload 1 /* modelColumns */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            astore 2 /* cols */
        start local 2 // java.lang.String[] cols
         1: .line 313
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 314
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 2 /* cols */
            iload 3 /* i */
            aload 1 /* modelColumns */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.ebeaninternal.dbmigration.model.MColumn
            invokevirtual io.ebeaninternal.dbmigration.model.MColumn.getName:()Ljava/lang/String;
            aastore
         4: .line 313
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 1 /* modelColumns */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 3 // int i
         6: .line 316
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.indexSet:Lio/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet;
            aload 2 /* cols */
            invokevirtual io.ebeaninternal.dbmigration.ddlgeneration.platform.util.IndexSet.add:([Ljava/lang/String;)Z
            pop
         7: .line 317
            return
        end local 2 // java.lang.String[] cols
        end local 1 // java.util.List modelColumns
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    8     1  modelColumns  Ljava/util/List<Lio/ebeaninternal/dbmigration/model/MColumn;>;
            1    8     2          cols  [Ljava/lang/String;
            2    6     3             i  I
    Signature: (Ljava/util/List<Lio/ebeaninternal/dbmigration/model/MColumn;>;)V
    MethodParameters:
              Name  Flags
      modelColumns  

  protected java.lang.String determinePrimaryKeyName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
         0: .line 324
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.primaryKeyName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;

  protected java.lang.String determineForeignKeyConstraintName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String columnName
         0: .line 332
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
            aload 1 /* columnName */
            aload 0 /* this */
            dup
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countForeignKey:I
            iconst_1
            iadd
            dup_x1
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countForeignKey:I
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.foreignKeyConstraintName:(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String columnName
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    1     1  columnName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      columnName  

  protected java.lang.String determineForeignKeyIndexName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String column
         0: .line 337
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* column */
            aastore
            astore 2 /* cols */
        start local 2 // java.lang.String[] cols
         1: .line 338
            aload 0 /* this */
            aload 2 /* cols */
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.determineForeignKeyIndexName:([Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String[] cols
        end local 1 // java.lang.String column
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    2     1  column  Ljava/lang/String;
            1    2     2    cols  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      column  

  protected java.lang.String determineForeignKeyIndexName(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String[] columns
         0: .line 346
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
            aload 1 /* columns */
            aload 0 /* this */
            dup
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countIndex:I
            iconst_1
            iadd
            dup_x1
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countIndex:I
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.foreignKeyIndexName:(Ljava/lang/String;[Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String[] columns
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    1     1  columns  [Ljava/lang/String;
    MethodParameters:
         Name  Flags
      columns  

  protected java.lang.String determineIndexName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String column
         0: .line 354
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
            aload 1 /* column */
            aload 0 /* this */
            dup
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countIndex:I
            iconst_1
            iadd
            dup_x1
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countIndex:I
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.indexName:(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String column
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    1     1  column  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      column  

  protected java.lang.String determineIndexName(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String[] columns
         0: .line 362
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
            aload 1 /* columns */
            aload 0 /* this */
            dup
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countIndex:I
            iconst_1
            iadd
            dup_x1
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countIndex:I
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.indexName:(Ljava/lang/String;[Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String[] columns
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    1     1  columns  [Ljava/lang/String;
    MethodParameters:
         Name  Flags
      columns  

  protected java.lang.String determineUniqueConstraintName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String columnName
         0: .line 370
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
            aload 1 /* columnName */
            aload 0 /* this */
            dup
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countUnique:I
            iconst_1
            iadd
            dup_x1
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countUnique:I
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.uniqueConstraintName:(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String columnName
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    1     1  columnName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      columnName  

  protected java.lang.String determineUniqueConstraintName(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String[] columnNames
         0: .line 378
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
            aload 1 /* columnNames */
            aload 0 /* this */
            dup
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countUnique:I
            iconst_1
            iadd
            dup_x1
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countUnique:I
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.uniqueConstraintName:(Ljava/lang/String;[Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String[] columnNames
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    1     1  columnNames  [Ljava/lang/String;
    MethodParameters:
             Name  Flags
      columnNames  

  protected java.lang.String determineCheckConstraintName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String columnName
         0: .line 386
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
            aload 0 /* this */
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.table:Lio/ebeaninternal/dbmigration/model/MTable;
            invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
            aload 1 /* columnName */
            aload 0 /* this */
            dup
            getfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countCheck:I
            iconst_1
            iadd
            dup_x1
            putfield io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor.countCheck:I
            invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.checkConstraintName:(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String columnName
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    1     1  columnName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      columnName  

  private boolean hasValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
        start local 1 // java.lang.String val
         0: .line 391
            aload 1 /* val */
            ifnull 1
            aload 1 /* val */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String val
        end local 0 // io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor;
            0    2     1   val  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      val   
}
SourceFile: "ModelBuildPropertyVisitor.java"