class io.ebeaninternal.server.persist.MergeNodeAssocManyToMany extends io.ebeaninternal.server.persist.MergeNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.ebeaninternal.server.persist.MergeNodeAssocManyToMany
super_class: io.ebeaninternal.server.persist.MergeNode
{
private final io.ebeaninternal.server.deploy.BeanPropertyAssocMany<?> many;
descriptor: Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany<*>;
void <init>(java.lang.String, io.ebeaninternal.server.deploy.BeanPropertyAssocMany<?>);
descriptor: (Ljava/lang/String;Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // io.ebeaninternal.server.persist.MergeNodeAssocManyToMany this
start local 1 // java.lang.String fullPath
start local 2 // io.ebeaninternal.server.deploy.BeanPropertyAssocMany property
0: .line 23
aload 0 /* this */
aload 1 /* fullPath */
aload 2 /* property */
invokespecial io.ebeaninternal.server.persist.MergeNode.<init>:(Ljava/lang/String;Lio/ebeaninternal/server/deploy/BeanPropertyAssoc;)V
1: .line 24
aload 0 /* this */
aload 2 /* property */
putfield io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.many:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
2: .line 25
return
end local 2 // io.ebeaninternal.server.deploy.BeanPropertyAssocMany property
end local 1 // java.lang.String fullPath
end local 0 // io.ebeaninternal.server.persist.MergeNodeAssocManyToMany this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/ebeaninternal/server/persist/MergeNodeAssocManyToMany;
0 3 1 fullPath Ljava/lang/String;
0 3 2 property Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany<*>;
Signature: (Ljava/lang/String;Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany<*>;)V
MethodParameters:
Name Flags
fullPath
property
public void merge(io.ebeaninternal.server.persist.MergeRequest);
descriptor: (Lio/ebeaninternal/server/persist/MergeRequest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=14, args_size=2
start local 0 // io.ebeaninternal.server.persist.MergeNodeAssocManyToMany this
start local 1 // io.ebeaninternal.server.persist.MergeRequest request
0: .line 30
aload 1 /* request */
invokevirtual io.ebeaninternal.server.persist.MergeRequest.getBean:()Lio/ebean/bean/EntityBean;
astore 2 /* parentBean */
start local 2 // io.ebean.bean.EntityBean parentBean
1: .line 32
aload 0 /* this */
getfield io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.many:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
aload 2 /* parentBean */
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getRawCollection:(Lio/ebean/bean/EntityBean;)Ljava/util/Collection;
astore 3 /* beans */
start local 3 // java.util.Collection beans
2: .line 33
aload 0 /* this */
getfield io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.many:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
aload 1 /* request */
invokevirtual io.ebeaninternal.server.persist.MergeRequest.getOutline:()Lio/ebean/bean/EntityBean;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.getRawCollection:(Lio/ebean/bean/EntityBean;)Ljava/util/Collection;
astore 4 /* outlines */
start local 4 // java.util.Collection outlines
3: .line 35
aload 0 /* this */
aload 4 /* outlines */
invokevirtual io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.toMap:(Ljava/util/Collection;)Ljava/util/Map;
astore 5 /* outlineIds */
start local 5 // java.util.Map outlineIds
4: .line 37
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6 /* additions */
start local 6 // java.util.List additions
5: .line 38
aload 3 /* beans */
ifnull 14
6: .line 39
aload 3 /* beans */
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 8
goto 13
StackMap locals: io.ebeaninternal.server.persist.MergeNodeAssocManyToMany io.ebeaninternal.server.persist.MergeRequest io.ebean.bean.EntityBean java.util.Collection java.util.Collection java.util.Map java.util.List top java.util.Iterator
StackMap stack:
7: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 7 /* bean */
start local 7 // java.lang.Object bean
8: .line 40
aload 7 /* bean */
checkcast io.ebean.bean.EntityBean
astore 9 /* entityBean */
start local 9 // io.ebean.bean.EntityBean entityBean
9: .line 41
aload 0 /* this */
getfield io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.targetDescriptor:Lio/ebeaninternal/server/deploy/BeanDescriptor;
aload 9 /* entityBean */
invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getId:(Lio/ebean/bean/EntityBean;)Ljava/lang/Object;
astore 10 /* beanId */
start local 10 // java.lang.Object beanId
10: .line 42
aload 10 /* beanId */
ifnull 13
11: .line 43
aload 5 /* outlineIds */
aload 10 /* beanId */
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 13
12: .line 44
aload 6 /* additions */
aload 9 /* entityBean */
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 // java.lang.Object beanId
end local 9 // io.ebean.bean.EntityBean entityBean
end local 7 // java.lang.Object bean
13: .line 39
StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
14: .line 51
StackMap locals: io.ebeaninternal.server.persist.MergeNodeAssocManyToMany io.ebeaninternal.server.persist.MergeRequest io.ebean.bean.EntityBean java.util.Collection java.util.Collection java.util.Map java.util.List
StackMap stack:
new java.util.ArrayList
dup
aload 5 /* outlineIds */
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 7 /* deletions */
start local 7 // java.util.List deletions
15: .line 53
aload 1 /* request */
invokevirtual io.ebeaninternal.server.persist.MergeRequest.getServer:()Lio/ebeaninternal/api/SpiEbeanServer;
astore 8 /* server */
start local 8 // io.ebeaninternal.api.SpiEbeanServer server
16: .line 54
aload 1 /* request */
invokevirtual io.ebeaninternal.server.persist.MergeRequest.getTransaction:()Lio/ebeaninternal/api/SpiTransaction;
astore 9 /* transaction */
start local 9 // io.ebeaninternal.api.SpiTransaction transaction
17: .line 56
aload 0 /* this */
getfield io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.many:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.intersectionTable:()Lio/ebeaninternal/server/deploy/IntersectionTable;
astore 10 /* intersectionTable */
start local 10 // io.ebeaninternal.server.deploy.IntersectionTable intersectionTable
18: .line 58
aload 7 /* deletions */
invokeinterface java.util.List.isEmpty:()Z
ifne 27
19: .line 59
aload 9 /* transaction */
invokeinterface io.ebeaninternal.api.SpiTransaction.flush:()V
20: .line 61
aload 10 /* intersectionTable */
aload 8 /* server */
iconst_0
invokevirtual io.ebeaninternal.server.deploy.IntersectionTable.delete:(Lio/ebean/Database;Z)Lio/ebean/SqlUpdate;
astore 11 /* delete */
start local 11 // io.ebean.SqlUpdate delete
21: .line 62
aload 7 /* deletions */
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 25
StackMap locals: io.ebeaninternal.server.persist.MergeNodeAssocManyToMany io.ebeaninternal.server.persist.MergeRequest io.ebean.bean.EntityBean java.util.Collection java.util.Collection java.util.Map java.util.List java.util.List io.ebeaninternal.api.SpiEbeanServer io.ebeaninternal.api.SpiTransaction io.ebeaninternal.server.deploy.IntersectionTable io.ebean.SqlUpdate top java.util.Iterator
StackMap stack:
22: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.ebean.bean.EntityBean
astore 12 /* deletion */
start local 12 // io.ebean.bean.EntityBean deletion
23: .line 63
aload 0 /* this */
getfield io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.many:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
aload 11 /* delete */
aload 2 /* parentBean */
aload 12 /* deletion */
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.intersectionBind:(Lio/ebean/SqlUpdate;Lio/ebean/bean/EntityBean;Lio/ebean/bean/EntityBean;)V
24: .line 64
aload 11 /* delete */
invokeinterface io.ebean.SqlUpdate.addBatch:()V
end local 12 // io.ebean.bean.EntityBean deletion
25: .line 62
StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
26: .line 66
aload 11 /* delete */
invokeinterface io.ebean.SqlUpdate.execute:()I
pop
end local 11 // io.ebean.SqlUpdate delete
27: .line 69
StackMap locals: io.ebeaninternal.server.persist.MergeNodeAssocManyToMany io.ebeaninternal.server.persist.MergeRequest io.ebean.bean.EntityBean java.util.Collection java.util.Collection java.util.Map java.util.List java.util.List io.ebeaninternal.api.SpiEbeanServer io.ebeaninternal.api.SpiTransaction io.ebeaninternal.server.deploy.IntersectionTable
StackMap stack:
aload 6 /* additions */
invokeinterface java.util.List.isEmpty:()Z
ifne 36
28: .line 70
aload 9 /* transaction */
invokeinterface io.ebeaninternal.api.SpiTransaction.flush:()V
29: .line 72
aload 10 /* intersectionTable */
aload 8 /* server */
iconst_0
invokevirtual io.ebeaninternal.server.deploy.IntersectionTable.insert:(Lio/ebean/Database;Z)Lio/ebean/SqlUpdate;
astore 11 /* insert */
start local 11 // io.ebean.SqlUpdate insert
30: .line 73
aload 6 /* additions */
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 34
StackMap locals: io.ebeaninternal.server.persist.MergeNodeAssocManyToMany io.ebeaninternal.server.persist.MergeRequest io.ebean.bean.EntityBean java.util.Collection java.util.Collection java.util.Map java.util.List java.util.List io.ebeaninternal.api.SpiEbeanServer io.ebeaninternal.api.SpiTransaction io.ebeaninternal.server.deploy.IntersectionTable io.ebean.SqlUpdate top java.util.Iterator
StackMap stack:
31: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.ebean.bean.EntityBean
astore 12 /* addition */
start local 12 // io.ebean.bean.EntityBean addition
32: .line 74
aload 0 /* this */
getfield io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.many:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
aload 11 /* insert */
aload 2 /* parentBean */
aload 12 /* addition */
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.intersectionBind:(Lio/ebean/SqlUpdate;Lio/ebean/bean/EntityBean;Lio/ebean/bean/EntityBean;)V
33: .line 75
aload 11 /* insert */
invokeinterface io.ebean.SqlUpdate.addBatch:()V
end local 12 // io.ebean.bean.EntityBean addition
34: .line 73
StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 31
35: .line 77
aload 11 /* insert */
invokeinterface io.ebean.SqlUpdate.execute:()I
pop
end local 11 // io.ebean.SqlUpdate insert
36: .line 80
StackMap locals: io.ebeaninternal.server.persist.MergeNodeAssocManyToMany io.ebeaninternal.server.persist.MergeRequest io.ebean.bean.EntityBean java.util.Collection java.util.Collection java.util.Map java.util.List java.util.List io.ebeaninternal.api.SpiEbeanServer io.ebeaninternal.api.SpiTransaction io.ebeaninternal.server.deploy.IntersectionTable
StackMap stack:
aload 0 /* this */
getfield io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.many:Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;
aload 2 /* parentBean */
invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.resetMany:(Lio/ebean/bean/EntityBean;)V
37: .line 81
return
end local 10 // io.ebeaninternal.server.deploy.IntersectionTable intersectionTable
end local 9 // io.ebeaninternal.api.SpiTransaction transaction
end local 8 // io.ebeaninternal.api.SpiEbeanServer server
end local 7 // java.util.List deletions
end local 6 // java.util.List additions
end local 5 // java.util.Map outlineIds
end local 4 // java.util.Collection outlines
end local 3 // java.util.Collection beans
end local 2 // io.ebean.bean.EntityBean parentBean
end local 1 // io.ebeaninternal.server.persist.MergeRequest request
end local 0 // io.ebeaninternal.server.persist.MergeNodeAssocManyToMany this
LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lio/ebeaninternal/server/persist/MergeNodeAssocManyToMany;
0 38 1 request Lio/ebeaninternal/server/persist/MergeRequest;
1 38 2 parentBean Lio/ebean/bean/EntityBean;
2 38 3 beans Ljava/util/Collection;
3 38 4 outlines Ljava/util/Collection;
4 38 5 outlineIds Ljava/util/Map<Ljava/lang/Object;Lio/ebean/bean/EntityBean;>;
5 38 6 additions Ljava/util/List<Lio/ebean/bean/EntityBean;>;
8 13 7 bean Ljava/lang/Object;
9 13 9 entityBean Lio/ebean/bean/EntityBean;
10 13 10 beanId Ljava/lang/Object;
15 38 7 deletions Ljava/util/List<Lio/ebean/bean/EntityBean;>;
16 38 8 server Lio/ebeaninternal/api/SpiEbeanServer;
17 38 9 transaction Lio/ebeaninternal/api/SpiTransaction;
18 38 10 intersectionTable Lio/ebeaninternal/server/deploy/IntersectionTable;
21 27 11 delete Lio/ebean/SqlUpdate;
23 25 12 deletion Lio/ebean/bean/EntityBean;
30 36 11 insert Lio/ebean/SqlUpdate;
32 34 12 addition Lio/ebean/bean/EntityBean;
MethodParameters:
Name Flags
request
}
SourceFile: "MergeNodeAssocManyToMany.java"