class io.ebeaninternal.server.persist.MergeHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.ebeaninternal.server.persist.MergeHandler
  super_class: java.lang.Object
{
  private static final java.util.regex.Pattern PATH_SPLIT;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.ebeaninternal.api.SpiEbeanServer server;
    descriptor: Lio/ebeaninternal/api/SpiEbeanServer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final io.ebean.bean.EntityBean bean;
    descriptor: Lio/ebean/bean/EntityBean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.MergeOptions options;
    descriptor: Lio/ebean/MergeOptions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.api.SpiTransaction transaction;
    descriptor: Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, io.ebeaninternal.server.persist.MergeNode> nodes;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lio/ebeaninternal/server/persist/MergeNode;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 29
            ldc "\\."
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.ebeaninternal.server.persist.MergeHandler.PATH_SPLIT:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(io.ebeaninternal.api.SpiEbeanServer, io.ebeaninternal.server.deploy.BeanDescriptor<?>, io.ebean.bean.EntityBean, io.ebean.MergeOptions, io.ebeaninternal.api.SpiTransaction);
    descriptor: (Lio/ebeaninternal/api/SpiEbeanServer;Lio/ebeaninternal/server/deploy/BeanDescriptor;Lio/ebean/bean/EntityBean;Lio/ebean/MergeOptions;Lio/ebeaninternal/api/SpiTransaction;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // io.ebeaninternal.server.persist.MergeHandler this
        start local 1 // io.ebeaninternal.api.SpiEbeanServer server
        start local 2 // io.ebeaninternal.server.deploy.BeanDescriptor desc
        start local 3 // io.ebean.bean.EntityBean bean
        start local 4 // io.ebean.MergeOptions options
        start local 5 // io.ebeaninternal.api.SpiTransaction transaction
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 37
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield io.ebeaninternal.server.persist.MergeHandler.nodes:Ljava/util/Map;
         2: .line 41
            aload 0 /* this */
            aload 1 /* server */
            putfield io.ebeaninternal.server.persist.MergeHandler.server:Lio/ebeaninternal/api/SpiEbeanServer;
         3: .line 42
            aload 0 /* this */
            aload 2 /* desc */
            putfield io.ebeaninternal.server.persist.MergeHandler.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
         4: .line 43
            aload 0 /* this */
            aload 3 /* bean */
            putfield io.ebeaninternal.server.persist.MergeHandler.bean:Lio/ebean/bean/EntityBean;
         5: .line 44
            aload 0 /* this */
            aload 4 /* options */
            putfield io.ebeaninternal.server.persist.MergeHandler.options:Lio/ebean/MergeOptions;
         6: .line 45
            aload 0 /* this */
            aload 5 /* transaction */
            putfield io.ebeaninternal.server.persist.MergeHandler.transaction:Lio/ebeaninternal/api/SpiTransaction;
         7: .line 46
            return
        end local 5 // io.ebeaninternal.api.SpiTransaction transaction
        end local 4 // io.ebean.MergeOptions options
        end local 3 // io.ebean.bean.EntityBean bean
        end local 2 // io.ebeaninternal.server.deploy.BeanDescriptor desc
        end local 1 // io.ebeaninternal.api.SpiEbeanServer server
        end local 0 // io.ebeaninternal.server.persist.MergeHandler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lio/ebeaninternal/server/persist/MergeHandler;
            0    8     1       server  Lio/ebeaninternal/api/SpiEbeanServer;
            0    8     2         desc  Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;
            0    8     3         bean  Lio/ebean/bean/EntityBean;
            0    8     4      options  Lio/ebean/MergeOptions;
            0    8     5  transaction  Lio/ebeaninternal/api/SpiTransaction;
    Signature: (Lio/ebeaninternal/api/SpiEbeanServer;Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;Lio/ebean/bean/EntityBean;Lio/ebean/MergeOptions;Lio/ebeaninternal/api/SpiTransaction;)V
    MethodParameters:
             Name  Flags
      server       
      desc         
      bean         
      options      
      transaction  

  java.util.List<io.ebean.bean.EntityBean> merge();
    descriptor: ()Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // io.ebeaninternal.server.persist.MergeHandler this
         0: .line 53
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.options:Lio/ebean/MergeOptions;
            invokeinterface io.ebean.MergeOptions.paths:()Ljava/util/Set;
            astore 1 /* paths */
        start local 1 // java.util.Set paths
         1: .line 54
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isIdGeneratedValue:()Z
            ifeq 6
            aload 1 /* paths */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 6
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.options:Lio/ebean/MergeOptions;
            invokeinterface io.ebean.MergeOptions.isClientGeneratedIds:()Z
            ifne 6
         2: .line 56
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.bean:Lio/ebean/bean/EntityBean;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getId:(Lio/ebean/bean/EntityBean;)Ljava/lang/Object;
            astore 2 /* id */
        start local 2 // java.lang.Object id
         3: .line 57
            aload 2 /* id */
            ifnull 5
         4: .line 58
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.bean:Lio/ebean/bean/EntityBean;
            invokeinterface io.ebean.bean.EntityBean._ebean_getIntercept:()Lio/ebean/bean/EntityBeanIntercept;
            iconst_1
            invokevirtual io.ebean.bean.EntityBeanIntercept.setForceUpdate:(Z)V
         5: .line 60
      StackMap locals: java.util.Set java.lang.Object
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
        end local 2 // java.lang.Object id
         6: .line 63
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* paths */
            invokevirtual io.ebeaninternal.server.persist.MergeHandler.fetchOutline:(Ljava/util/Set;)Lio/ebean/bean/EntityBean;
            astore 2 /* outline */
        start local 2 // io.ebean.bean.EntityBean outline
         7: .line 64
            aload 2 /* outline */
            ifnonnull 9
         8: .line 66
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         9: .line 70
      StackMap locals: io.ebean.bean.EntityBean
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.bean:Lio/ebean/bean/EntityBean;
            invokeinterface io.ebean.bean.EntityBean._ebean_getIntercept:()Lio/ebean/bean/EntityBeanIntercept;
            iconst_1
            invokevirtual io.ebean.bean.EntityBeanIntercept.setForceUpdate:(Z)V
        10: .line 74
            new io.ebeaninternal.server.persist.MergeContext
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.server:Lio/ebeaninternal/api/SpiEbeanServer;
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.transaction:Lio/ebeaninternal/api/SpiTransaction;
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.options:Lio/ebean/MergeOptions;
            invokeinterface io.ebean.MergeOptions.isClientGeneratedIds:()Z
            invokespecial io.ebeaninternal.server.persist.MergeContext.<init>:(Lio/ebeaninternal/api/SpiEbeanServer;Lio/ebeaninternal/api/SpiTransaction;Z)V
            astore 3 /* context */
        start local 3 // io.ebeaninternal.server.persist.MergeContext context
        11: .line 75
            new io.ebeaninternal.server.persist.MergeRequest
            dup
            aload 3 /* context */
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.bean:Lio/ebean/bean/EntityBean;
            aload 2 /* outline */
            invokespecial io.ebeaninternal.server.persist.MergeRequest.<init>:(Lio/ebeaninternal/server/persist/MergeContext;Lio/ebean/bean/EntityBean;Lio/ebean/bean/EntityBean;)V
            astore 4 /* request */
        start local 4 // io.ebeaninternal.server.persist.MergeRequest request
        12: .line 76
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.nodes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: io.ebeaninternal.server.persist.MergeHandler java.util.Set io.ebean.bean.EntityBean io.ebeaninternal.server.persist.MergeContext io.ebeaninternal.server.persist.MergeRequest top java.util.Iterator
      StackMap stack:
        13: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.ebeaninternal.server.persist.MergeNode
            astore 5 /* value */
        start local 5 // io.ebeaninternal.server.persist.MergeNode value
        14: .line 77
            aload 5 /* value */
            aload 4 /* request */
            invokevirtual io.ebeaninternal.server.persist.MergeNode.merge:(Lio/ebeaninternal/server/persist/MergeRequest;)V
        end local 5 // io.ebeaninternal.server.persist.MergeNode value
        15: .line 76
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 80
            aload 3 /* context */
            invokevirtual io.ebeaninternal.server.persist.MergeContext.getDeletedBeans:()Ljava/util/List;
            areturn
        end local 4 // io.ebeaninternal.server.persist.MergeRequest request
        end local 3 // io.ebeaninternal.server.persist.MergeContext context
        end local 2 // io.ebean.bean.EntityBean outline
        end local 1 // java.util.Set paths
        end local 0 // io.ebeaninternal.server.persist.MergeHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lio/ebeaninternal/server/persist/MergeHandler;
            1   17     1    paths  Ljava/util/Set<Ljava/lang/String;>;
            3    6     2       id  Ljava/lang/Object;
            7   17     2  outline  Lio/ebean/bean/EntityBean;
           11   17     3  context  Lio/ebeaninternal/server/persist/MergeContext;
           12   17     4  request  Lio/ebeaninternal/server/persist/MergeRequest;
           14   15     5    value  Lio/ebeaninternal/server/persist/MergeNode;
    Signature: ()Ljava/util/List<Lio/ebean/bean/EntityBean;>;

  private io.ebean.bean.EntityBean fetchOutline(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)Lio/ebean/bean/EntityBean;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // io.ebeaninternal.server.persist.MergeHandler this
        start local 1 // java.util.Set paths
         0: .line 90
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.server:Lio/ebeaninternal/api/SpiEbeanServer;
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getBeanType:()Ljava/lang/Class;
            invokeinterface io.ebeaninternal.api.SpiEbeanServer.find:(Ljava/lang/Class;)Lio/ebean/Query;
            astore 2 /* query */
        start local 2 // io.ebean.Query query
         1: .line 92
            aload 2 /* query */
            getstatic io.ebean.CacheMode.OFF:Lio/ebean/CacheMode;
            invokeinterface io.ebean.Query.setBeanCacheMode:(Lio/ebean/CacheMode;)Lio/ebean/Query;
            pop
         2: .line 93
            aload 2 /* query */
            getstatic io.ebean.PersistenceContextScope.QUERY:Lio/ebean/PersistenceContextScope;
            invokeinterface io.ebean.Query.setPersistenceContextScope:(Lio/ebean/PersistenceContextScope;)Lio/ebean/Query;
            pop
         3: .line 94
            aload 2 /* query */
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.bean:Lio/ebean/bean/EntityBean;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getId:(Lio/ebean/bean/EntityBean;)Ljava/lang/Object;
            invokeinterface io.ebean.Query.setId:(Ljava/lang/Object;)Lio/ebean/Query;
            pop
         4: .line 95
            aload 2 /* query */
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getIdProperty:()Lio/ebeaninternal/server/deploy/BeanProperty;
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getName:()Ljava/lang/String;
            invokeinterface io.ebean.Query.select:(Ljava/lang/String;)Lio/ebean/Query;
            pop
         5: .line 97
            aload 1 /* paths */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: io.ebeaninternal.server.persist.MergeHandler java.util.Set io.ebean.Query top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* path */
        start local 3 // java.lang.String path
         7: .line 98
            aload 0 /* this */
            aload 3 /* path */
            invokevirtual io.ebeaninternal.server.persist.MergeHandler.buildNode:(Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
            astore 5 /* node */
        start local 5 // io.ebeaninternal.server.persist.MergeNode node
         8: .line 99
            aload 5 /* node */
            aload 2 /* query */
            invokevirtual io.ebeaninternal.server.persist.MergeNode.addSelectId:(Lio/ebean/Query;)V
        end local 5 // io.ebeaninternal.server.persist.MergeNode node
        end local 3 // java.lang.String path
         9: .line 97
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 101
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.server:Lio/ebeaninternal/api/SpiEbeanServer;
            aload 2 /* query */
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.transaction:Lio/ebeaninternal/api/SpiTransaction;
            invokeinterface io.ebeaninternal.api.SpiEbeanServer.findOne:(Lio/ebean/Query;Lio/ebean/Transaction;)Ljava/lang/Object;
            checkcast io.ebean.bean.EntityBean
            areturn
        end local 2 // io.ebean.Query query
        end local 1 // java.util.Set paths
        end local 0 // io.ebeaninternal.server.persist.MergeHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lio/ebeaninternal/server/persist/MergeHandler;
            0   11     1  paths  Ljava/util/Set<Ljava/lang/String;>;
            1   11     2  query  Lio/ebean/Query<*>;
            7    9     3   path  Ljava/lang/String;
            8    9     5   node  Lio/ebeaninternal/server/persist/MergeNode;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)Lio/ebean/bean/EntityBean;
    MethodParameters:
       Name  Flags
      paths  

  private io.ebeaninternal.server.persist.MergeNode buildNode(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.persist.MergeHandler this
        start local 1 // java.lang.String path
         0: .line 105
            getstatic io.ebeaninternal.server.persist.MergeHandler.PATH_SPLIT:Ljava/util/regex/Pattern;
            aload 1 /* path */
            invokevirtual java.util.regex.Pattern.split:(Ljava/lang/CharSequence;)[Ljava/lang/String;
            astore 2 /* split */
        start local 2 // java.lang.String[] split
         1: .line 106
            aload 2 /* split */
            arraylength
            iconst_1
            if_icmpne 3
         2: .line 107
            aload 0 /* this */
            aload 2 /* split */
            iconst_0
            aaload
            invokevirtual io.ebeaninternal.server.persist.MergeHandler.addRootLevelNode:(Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
            areturn
         3: .line 109
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            aload 2 /* split */
            invokevirtual io.ebeaninternal.server.persist.MergeHandler.addSubNode:(Ljava/lang/String;[Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
            areturn
        end local 2 // java.lang.String[] split
        end local 1 // java.lang.String path
        end local 0 // io.ebeaninternal.server.persist.MergeHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lio/ebeaninternal/server/persist/MergeHandler;
            0    4     1   path  Ljava/lang/String;
            1    4     2  split  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  private io.ebeaninternal.server.persist.MergeNode addSubNode(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // io.ebeaninternal.server.persist.MergeHandler this
        start local 1 // java.lang.String fullPath
        start local 2 // java.lang.String[] split
         0: .line 114
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.nodes:Ljava/util/Map;
            aload 2 /* split */
            iconst_0
            aaload
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.ebeaninternal.server.persist.MergeNode
            astore 3 /* parent */
        start local 3 // io.ebeaninternal.server.persist.MergeNode parent
         1: .line 115
            aload 3 /* parent */
            ifnonnull 3
         2: .line 116
            new javax.persistence.PersistenceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to find parent path "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* split */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in merge paths?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 119
      StackMap locals: io.ebeaninternal.server.persist.MergeNode
      StackMap stack:
            iconst_1
            istore 4 /* i */
        start local 4 // int i
         4: goto 9
         5: .line 120
      StackMap locals: int
      StackMap stack:
            aload 3 /* parent */
            aload 2 /* split */
            iload 4 /* i */
            aaload
            invokevirtual io.ebeaninternal.server.persist.MergeNode.get:(Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
            astore 3 /* parent */
         6: .line 121
            aload 3 /* parent */
            ifnonnull 8
         7: .line 122
            new javax.persistence.PersistenceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to find parent path "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* split */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in merge paths?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 119
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 2 /* split */
            arraylength
            iconst_1
            isub
            if_icmplt 5
        end local 4 // int i
        10: .line 125
            aload 3 /* parent */
            aload 1 /* fullPath */
            aload 2 /* split */
            aload 2 /* split */
            arraylength
            iconst_1
            isub
            aaload
            invokevirtual io.ebeaninternal.server.persist.MergeNode.addChild:(Ljava/lang/String;Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
            areturn
        end local 3 // io.ebeaninternal.server.persist.MergeNode parent
        end local 2 // java.lang.String[] split
        end local 1 // java.lang.String fullPath
        end local 0 // io.ebeaninternal.server.persist.MergeHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/ebeaninternal/server/persist/MergeHandler;
            0   11     1  fullPath  Ljava/lang/String;
            0   11     2     split  [Ljava/lang/String;
            1   11     3    parent  Lio/ebeaninternal/server/persist/MergeNode;
            4   10     4         i  I
    MethodParameters:
          Name  Flags
      fullPath  
      split     

  private io.ebeaninternal.server.persist.MergeNode addRootLevelNode(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.persist.MergeHandler this
        start local 1 // java.lang.String rootPath
         0: .line 130
            aload 1 /* rootPath */
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 1 /* rootPath */
            invokestatic io.ebeaninternal.server.persist.MergeHandler.createMergeNode:(Ljava/lang/String;Lio/ebeaninternal/server/deploy/BeanDescriptor;Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
            astore 2 /* node */
        start local 2 // io.ebeaninternal.server.persist.MergeNode node
         1: .line 131
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.MergeHandler.nodes:Ljava/util/Map;
            aload 1 /* rootPath */
            aload 2 /* node */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 132
            aload 2 /* node */
            areturn
        end local 2 // io.ebeaninternal.server.persist.MergeNode node
        end local 1 // java.lang.String rootPath
        end local 0 // io.ebeaninternal.server.persist.MergeHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lio/ebeaninternal/server/persist/MergeHandler;
            0    3     1  rootPath  Ljava/lang/String;
            1    3     2      node  Lio/ebeaninternal/server/persist/MergeNode;
    MethodParameters:
          Name  Flags
      rootPath  

  static io.ebeaninternal.server.persist.MergeNode createMergeNode(java.lang.String, io.ebeaninternal.server.deploy.BeanDescriptor<?>, java.lang.String);
    descriptor: (Ljava/lang/String;Lio/ebeaninternal/server/deploy/BeanDescriptor;Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.String fullPath
        start local 1 // io.ebeaninternal.server.deploy.BeanDescriptor targetDesc
        start local 2 // java.lang.String path
         0: .line 137
            aload 1 /* targetDesc */
            aload 2 /* path */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getBeanProperty:(Ljava/lang/String;)Lio/ebeaninternal/server/deploy/BeanProperty;
            astore 3 /* prop */
        start local 3 // io.ebeaninternal.server.deploy.BeanProperty prop
         1: .line 138
            aload 3 /* prop */
            instanceof io.ebeaninternal.server.deploy.BeanPropertyAssoc
            ifne 3
         2: .line 139
            new javax.persistence.PersistenceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "merge path ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] is not a ToMany or ToOne property of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* targetDesc */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getFullName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 141
      StackMap locals: io.ebeaninternal.server.deploy.BeanProperty
      StackMap stack:
            aload 3 /* prop */
            instanceof io.ebeaninternal.server.deploy.BeanPropertyAssocMany
            ifeq 8
         4: .line 142
            aload 3 /* prop */
            checkcast io.ebeaninternal.server.deploy.BeanPropertyAssocMany
            astore 4 /* assocMany */
        start local 4 // io.ebeaninternal.server.deploy.BeanPropertyAssocMany assocMany
         5: .line 143
            aload 4 /* assocMany */
            invokevirtual io.ebeaninternal.server.deploy.BeanPropertyAssocMany.isManyToMany:()Z
            ifeq 7
         6: .line 144
            new io.ebeaninternal.server.persist.MergeNodeAssocManyToMany
            dup
            aload 0 /* fullPath */
            aload 4 /* assocMany */
            invokespecial io.ebeaninternal.server.persist.MergeNodeAssocManyToMany.<init>:(Ljava/lang/String;Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;)V
            areturn
         7: .line 146
      StackMap locals: io.ebeaninternal.server.deploy.BeanPropertyAssocMany
      StackMap stack:
            new io.ebeaninternal.server.persist.MergeNodeAssocOneToMany
            dup
            aload 0 /* fullPath */
            aload 4 /* assocMany */
            invokespecial io.ebeaninternal.server.persist.MergeNodeAssocOneToMany.<init>:(Ljava/lang/String;Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany;)V
            areturn
        end local 4 // io.ebeaninternal.server.deploy.BeanPropertyAssocMany assocMany
         8: .line 149
      StackMap locals:
      StackMap stack:
            new io.ebeaninternal.server.persist.MergeNodeAssocOne
            dup
            aload 0 /* fullPath */
            aload 3 /* prop */
            checkcast io.ebeaninternal.server.deploy.BeanPropertyAssocOne
            invokespecial io.ebeaninternal.server.persist.MergeNodeAssocOne.<init>:(Ljava/lang/String;Lio/ebeaninternal/server/deploy/BeanPropertyAssocOne;)V
            areturn
        end local 3 // io.ebeaninternal.server.deploy.BeanProperty prop
        end local 2 // java.lang.String path
        end local 1 // io.ebeaninternal.server.deploy.BeanDescriptor targetDesc
        end local 0 // java.lang.String fullPath
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0    fullPath  Ljava/lang/String;
            0    9     1  targetDesc  Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;
            0    9     2        path  Ljava/lang/String;
            1    9     3        prop  Lio/ebeaninternal/server/deploy/BeanProperty;
            5    8     4   assocMany  Lio/ebeaninternal/server/deploy/BeanPropertyAssocMany<*>;
    Signature: (Ljava/lang/String;Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;Ljava/lang/String;)Lio/ebeaninternal/server/persist/MergeNode;
    MethodParameters:
            Name  Flags
      fullPath    
      targetDesc  
      path        
}
SourceFile: "MergeHandler.java"