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"