class io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable
super_class: java.lang.Object
{
private final io.ebeaninternal.dbmigration.model.build.ModelBuildContext ctx;
descriptor: Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.ebeaninternal.server.deploy.BeanPropertyAssocMany<?> manyProp;
descriptor: Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany<*>;
private final io.ebeaninternal.server.deploy.TableJoin intersectionTableJoin;
descriptor: Lio/ebeaninternal/server/deploy/TableJoin;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.ebeaninternal.server.deploy.TableJoin tableJoin;
descriptor: Lio/ebeaninternal/server/deploy/TableJoin;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.ebeaninternal.dbmigration.model.MTable intersectionTable;
descriptor: Lio/ebeaninternal/dbmigration/model/MTable;
flags: (0x0002) ACC_PRIVATE
void <init>(io.ebeaninternal.dbmigration.model.build.ModelBuildContext, io.ebeaninternal.server.deploy.BeanPropertyAssocMany<?>);
descriptor: (Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
2: aload 0
aload 2
putfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.manyProp:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
3: aload 0
aload 2
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getIntersectionTableJoin:()Lio/ebeaninternal/server/deploy/TableJoin;
putfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTableJoin:Lio/ebeaninternal/server/deploy/TableJoin;
4: aload 0
aload 2
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getTableJoin:()Lio/ebeaninternal/server/deploy/TableJoin;
putfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.tableJoin:Lio/ebeaninternal/server/deploy/TableJoin;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/ebeaninternal/dbmigration/model/build/ModelBuildIntersectionTable;
0 6 1 ctx Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
0 6 2 manyProp Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany<*>;
Signature: (Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany<*>;)V
MethodParameters:
Name Flags
ctx
manyProp
public io.ebeaninternal.dbmigration.model.MTable build();
descriptor: ()Lio/ebeaninternal/dbmigration/model/MTable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.createTable:()Lio/ebeaninternal/dbmigration/model/MTable;
putfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTable:Lio/ebeaninternal/dbmigration/model/MTable;
1: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTable:Lio/ebeaninternal/dbmigration/model/MTable;
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.addTable:(Lio/ebeaninternal/dbmigration/model/MTable;)Lio/ebeaninternal/dbmigration/model/MTable;
astore 1
start local 1 2: aload 1
ifnull 6
3: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Property "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.manyProp:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getFullBeanName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " has duplicate ManyToMany intersection table "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTable:Lio/ebeaninternal/dbmigration/model/MTable;
invokevirtual io.ebeaninternal.dbmigration.model.MTable.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc ". Please use @JoinTable to define unique table to use"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: io.ebeaninternal.dbmigration.model.MTable
StackMap stack:
aload 0
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.buildFkConstraints:()V
7: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.manyProp:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getTargetDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isDraftable:()Z
ifeq 9
8: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTable:Lio/ebeaninternal/dbmigration/model/MTable;
iconst_0
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.createDraft:(Lio/ebeaninternal/dbmigration/model/MTable;Z)V
9: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTable:Lio/ebeaninternal/dbmigration/model/MTable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/ebeaninternal/dbmigration/model/build/ModelBuildIntersectionTable;
2 10 1 existingTable Lio/ebeaninternal/dbmigration/model/MTable;
private void buildFkConstraints();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.manyProp:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getForeignKey:()Lio/ebeaninternal/server/deploy/PropertyForeignKey;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokevirtual io.ebeaninternal.server.deploy.PropertyForeignKey.isNoConstraint:()Z
ifne 5
2: StackMap locals: io.ebeaninternal.server.deploy.PropertyForeignKey
StackMap stack:
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTable:Lio/ebeaninternal/dbmigration/model/MTable;
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.fkeyBuilder:(Lio/ebeaninternal/dbmigration/model/MTable;)Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext$FkeyBuilder;
3: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.manyProp:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTableJoin:Lio/ebeaninternal/server/deploy/TableJoin;
iconst_1
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext$FkeyBuilder.addForeignKey:(Lio/ebeaninternal/server/deploy/BeanDescriptor;Lio/ebeaninternal/server/deploy/TableJoin;Z)Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext$FkeyBuilder;
4: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.manyProp:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getTargetDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.tableJoin:Lio/ebeaninternal/server/deploy/TableJoin;
iconst_0
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext$FkeyBuilder.addForeignKey:(Lio/ebeaninternal/server/deploy/BeanDescriptor;Lio/ebeaninternal/server/deploy/TableJoin;Z)Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext$FkeyBuilder;
pop
5: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTable:Lio/ebeaninternal/dbmigration/model/MTable;
invokevirtual io.ebeaninternal.dbmigration.model.MTable.checkDuplicateForeignKeys:()V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/ebeaninternal/dbmigration/model/build/ModelBuildIntersectionTable;
1 7 1 foreignKey Lio/ebeaninternal/server/deploy/PropertyForeignKey;
private io.ebeaninternal.dbmigration.model.MTable createTable();
descriptor: ()Lio/ebeaninternal/dbmigration/model/MTable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.manyProp:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
astore 1
start local 1 1: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.manyProp:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getTargetDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
astore 2
start local 2 2: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTableJoin:Lio/ebeaninternal/server/deploy/TableJoin;
invokevirtual io.ebeaninternal.server.deploy.TableJoin.getTable:()Ljava/lang/String;
astore 3
start local 3 3: new io.ebeaninternal.dbmigration.model.MTable
dup
aload 3
invokespecial io.ebeaninternal.dbmigration.model.MTable.<init>:(Ljava/lang/String;)V
astore 4
start local 4 4: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.manyProp:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.isExcludedFromHistory:()Z
ifne 7
5: aload 1
invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isHistorySupport:()Z
ifeq 7
6: aload 4
iconst_1
invokevirtual io.ebeaninternal.dbmigration.model.MTable.setWithHistory:(Z)Lio/ebeaninternal/dbmigration/model/MTable;
pop
7: StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable io.ebeaninternal.server.deploy.BeanDescriptor io.ebeaninternal.server.deploy.BeanDescriptor java.lang.String io.ebeaninternal.dbmigration.model.MTable
StackMap stack:
aload 4
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
aload 3
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.primaryKeyName:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.ebeaninternal.dbmigration.model.MTable.setPkName:(Ljava/lang/String;)V
8: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.intersectionTableJoin:Lio/ebeaninternal/server/deploy/TableJoin;
invokevirtual io.ebeaninternal.server.deploy.TableJoin.columns:()[Lio/ebeaninternal/server/deploy/TableJoinColumn;
astore 5
start local 5 9: aload 5
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 13
StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable io.ebeaninternal.server.deploy.BeanDescriptor io.ebeaninternal.server.deploy.BeanDescriptor java.lang.String io.ebeaninternal.dbmigration.model.MTable io.ebeaninternal.server.deploy.TableJoinColumn[] top int int io.ebeaninternal.server.deploy.TableJoinColumn[]
StackMap stack:
10: aload 9
iload 7
aaload
astore 6
start local 6 11: aload 0
aload 4
aload 1
aload 6
invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.getForeignDbColumn:()Ljava/lang/String;
aload 6
invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.getLocalDbColumn:()Ljava/lang/String;
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.addColumn:(Lio/ebeaninternal/dbmigration/model/MTable;Lio/ebeaninternal/server/deploy/BeanDescriptor;Ljava/lang/String;Ljava/lang/String;)V
end local 6 12: iinc 7 1
StackMap locals:
StackMap stack:
13: iload 7
iload 8
if_icmplt 10
14: aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.tableJoin:Lio/ebeaninternal/server/deploy/TableJoin;
invokevirtual io.ebeaninternal.server.deploy.TableJoin.columns:()[Lio/ebeaninternal/server/deploy/TableJoinColumn;
astore 6
start local 6 15: aload 6
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 19
StackMap locals: io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable io.ebeaninternal.server.deploy.BeanDescriptor io.ebeaninternal.server.deploy.BeanDescriptor java.lang.String io.ebeaninternal.dbmigration.model.MTable io.ebeaninternal.server.deploy.TableJoinColumn[] io.ebeaninternal.server.deploy.TableJoinColumn[] top int int io.ebeaninternal.server.deploy.TableJoinColumn[]
StackMap stack:
16: aload 10
iload 8
aaload
astore 7
start local 7 17: aload 0
aload 4
aload 2
aload 7
invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.getLocalDbColumn:()Ljava/lang/String;
aload 7
invokevirtual io.ebeaninternal.server.deploy.TableJoinColumn.getForeignDbColumn:()Ljava/lang/String;
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.addColumn:(Lio/ebeaninternal/dbmigration/model/MTable;Lio/ebeaninternal/server/deploy/BeanDescriptor;Ljava/lang/String;Ljava/lang/String;)V
end local 7 18: iinc 8 1
StackMap locals:
StackMap stack:
19: iload 8
iload 9
if_icmplt 16
20: aload 4
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/ebeaninternal/dbmigration/model/build/ModelBuildIntersectionTable;
1 21 1 localDesc Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;
2 21 2 targetDesc Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;
3 21 3 tableName Ljava/lang/String;
4 21 4 table Lio/ebeaninternal/dbmigration/model/MTable;
9 21 5 columns [Lio/ebeaninternal/server/deploy/TableJoinColumn;
11 12 6 column Lio/ebeaninternal/server/deploy/TableJoinColumn;
15 21 6 otherColumns [Lio/ebeaninternal/server/deploy/TableJoinColumn;
17 18 7 otherColumn Lio/ebeaninternal/server/deploy/TableJoinColumn;
private void addColumn(io.ebeaninternal.dbmigration.model.MTable, io.ebeaninternal.server.deploy.BeanDescriptor<?>, java.lang.String, java.lang.String);
descriptor: (Lio/ebeaninternal/dbmigration/model/MTable;Lio/ebeaninternal/server/deploy/BeanDescriptor;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getIdBinder:()Lio/ebeaninternal/server/deploy/id/IdBinder;
aload 4
invokeinterface io.ebeaninternal.server.deploy.id.IdBinder.findBeanProperty:(Ljava/lang/String;)Lio/ebeaninternal/server/deploy/BeanProperty;
astore 5
start local 5 1: aload 5
ifnonnull 3
2: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Could not find id property for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
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: StackMap locals: io.ebeaninternal.server.deploy.BeanProperty
StackMap stack:
new io.ebeaninternal.dbmigration.model.MColumn
dup
aload 3
aload 0
getfield io.ebeaninternal.dbmigration.model.build.ModelBuildIntersectionTable.ctx:Lio/ebeaninternal/dbmigration/model/build/ModelBuildContext;
aload 5
iconst_1
invokevirtual io.ebeaninternal.dbmigration.model.build.ModelBuildContext.getColumnDefn:(Lio/ebeaninternal/server/deploy/BeanProperty;Z)Ljava/lang/String;
iconst_1
invokespecial io.ebeaninternal.dbmigration.model.MColumn.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
astore 6
start local 6 4: aload 6
iconst_1
invokevirtual io.ebeaninternal.dbmigration.model.MColumn.setPrimaryKey:(Z)V
5: aload 1
aload 6
invokevirtual io.ebeaninternal.dbmigration.model.MTable.addColumn:(Lio/ebeaninternal/dbmigration/model/MColumn;)V
6: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/ebeaninternal/dbmigration/model/build/ModelBuildIntersectionTable;
0 7 1 table Lio/ebeaninternal/dbmigration/model/MTable;
0 7 2 desc Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;
0 7 3 column Ljava/lang/String;
0 7 4 findPropColumn Ljava/lang/String;
1 7 5 p Lio/ebeaninternal/server/deploy/BeanProperty;
4 7 6 col Lio/ebeaninternal/dbmigration/model/MColumn;
Signature: (Lio/ebeaninternal/dbmigration/model/MTable;Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;Ljava/lang/String;Ljava/lang/String;)V
MethodParameters:
Name Flags
table
desc
column
findPropColumn
}
SourceFile: "ModelBuildIntersectionTable.java"
InnerClasses:
public FkeyBuilder = io.ebeaninternal.dbmigration.model.build.ModelBuildContext$FkeyBuilder of io.ebeaninternal.dbmigration.model.build.ModelBuildContext