final class io.ebeaninternal.server.persist.dml.UpdateMeta extends io.ebeaninternal.server.persist.dml.BaseMeta
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.ebeaninternal.server.persist.dml.UpdateMeta
  super_class: io.ebeaninternal.server.persist.dml.BaseMeta
{
  private final io.ebeaninternal.server.persist.dmlbind.BindableList set;
    descriptor: Lio/ebeaninternal/server/persist/dmlbind/BindableList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(io.ebeaninternal.server.persist.dmlbind.BindableList, io.ebeaninternal.server.persist.dmlbind.BindableId, io.ebeaninternal.server.persist.dmlbind.Bindable, io.ebeaninternal.server.persist.dmlbind.Bindable);
    descriptor: (Lio/ebeaninternal/server/persist/dmlbind/BindableList;Lio/ebeaninternal/server/persist/dmlbind/BindableId;Lio/ebeaninternal/server/persist/dmlbind/Bindable;Lio/ebeaninternal/server/persist/dmlbind/Bindable;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
        start local 1 // io.ebeaninternal.server.persist.dmlbind.BindableList set
        start local 2 // io.ebeaninternal.server.persist.dmlbind.BindableId id
        start local 3 // io.ebeaninternal.server.persist.dmlbind.Bindable version
        start local 4 // io.ebeaninternal.server.persist.dmlbind.Bindable tenantId
         0: .line 25
            aload 0 /* this */
            aload 2 /* id */
            aload 3 /* version */
            aload 4 /* tenantId */
            invokespecial io.ebeaninternal.server.persist.dml.BaseMeta.<init>:(Lio/ebeaninternal/server/persist/dmlbind/BindableId;Lio/ebeaninternal/server/persist/dmlbind/Bindable;Lio/ebeaninternal/server/persist/dmlbind/Bindable;)V
         1: .line 26
            aload 0 /* this */
            aload 1 /* set */
            putfield io.ebeaninternal.server.persist.dml.UpdateMeta.set:Lio/ebeaninternal/server/persist/dmlbind/BindableList;
         2: .line 27
            return
        end local 4 // io.ebeaninternal.server.persist.dmlbind.Bindable tenantId
        end local 3 // io.ebeaninternal.server.persist.dmlbind.Bindable version
        end local 2 // io.ebeaninternal.server.persist.dmlbind.BindableId id
        end local 1 // io.ebeaninternal.server.persist.dmlbind.BindableList set
        end local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lio/ebeaninternal/server/persist/dml/UpdateMeta;
            0    3     1       set  Lio/ebeaninternal/server/persist/dmlbind/BindableList;
            0    3     2        id  Lio/ebeaninternal/server/persist/dmlbind/BindableId;
            0    3     3   version  Lio/ebeaninternal/server/persist/dmlbind/Bindable;
            0    3     4  tenantId  Lio/ebeaninternal/server/persist/dmlbind/Bindable;
    MethodParameters:
          Name  Flags
      set       
      id        
      version   
      tenantId  

  public void bind(io.ebeaninternal.server.core.PersistRequestBean<?>, io.ebeaninternal.server.persist.dml.DmlHandler, io.ebeaninternal.api.SpiUpdatePlan);
    descriptor: (Lio/ebeaninternal/server/core/PersistRequestBean;Lio/ebeaninternal/server/persist/dml/DmlHandler;Lio/ebeaninternal/api/SpiUpdatePlan;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
        start local 1 // io.ebeaninternal.server.core.PersistRequestBean persist
        start local 2 // io.ebeaninternal.server.persist.dml.DmlHandler bind
        start local 3 // io.ebeaninternal.api.SpiUpdatePlan updatePlan
         0: .line 34
            aload 1 /* persist */
            invokevirtual io.ebeaninternal.server.core.PersistRequestBean.getEntityBean:()Lio/ebean/bean/EntityBean;
            astore 4 /* bean */
        start local 4 // io.ebean.bean.EntityBean bean
         1: .line 36
            aload 3 /* updatePlan */
            aload 2 /* bind */
            aload 4 /* bean */
            invokeinterface io.ebeaninternal.api.SpiUpdatePlan.bindSet:(Lio/ebeaninternal/server/persist/dml/DmlHandler;Lio/ebean/bean/EntityBean;)V
         2: .line 38
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.dml.UpdateMeta.id:Lio/ebeaninternal/server/persist/dmlbind/BindableId;
            aload 2 /* bind */
            aload 4 /* bean */
            invokeinterface io.ebeaninternal.server.persist.dmlbind.BindableId.dmlBind:(Lio/ebeaninternal/server/persist/dmlbind/BindableRequest;Lio/ebean/bean/EntityBean;)V
         3: .line 39
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.dml.UpdateMeta.tenantId:Lio/ebeaninternal/server/persist/dmlbind/Bindable;
            ifnull 5
         4: .line 40
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.dml.UpdateMeta.tenantId:Lio/ebeaninternal/server/persist/dmlbind/Bindable;
            aload 2 /* bind */
            aload 4 /* bean */
            invokeinterface io.ebeaninternal.server.persist.dmlbind.Bindable.dmlBind:(Lio/ebeaninternal/server/persist/dmlbind/BindableRequest;Lio/ebean/bean/EntityBean;)V
         5: .line 43
      StackMap locals: io.ebean.bean.EntityBean
      StackMap stack:
            aload 1 /* persist */
            invokevirtual io.ebeaninternal.server.core.PersistRequestBean.getConcurrencyMode:()Lio/ebeaninternal/api/ConcurrencyMode;
            getstatic io.ebeaninternal.api.ConcurrencyMode.VERSION:Lio/ebeaninternal/api/ConcurrencyMode;
            if_acmpne 7
         6: .line 44
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.dml.UpdateMeta.version:Lio/ebeaninternal/server/persist/dmlbind/Bindable;
            aload 2 /* bind */
            aload 4 /* bean */
            invokeinterface io.ebeaninternal.server.persist.dmlbind.Bindable.dmlBind:(Lio/ebeaninternal/server/persist/dmlbind/BindableRequest;Lio/ebean/bean/EntityBean;)V
         7: .line 46
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.ebean.bean.EntityBean bean
        end local 3 // io.ebeaninternal.api.SpiUpdatePlan updatePlan
        end local 2 // io.ebeaninternal.server.persist.dml.DmlHandler bind
        end local 1 // io.ebeaninternal.server.core.PersistRequestBean persist
        end local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lio/ebeaninternal/server/persist/dml/UpdateMeta;
            0    8     1     persist  Lio/ebeaninternal/server/core/PersistRequestBean<*>;
            0    8     2        bind  Lio/ebeaninternal/server/persist/dml/DmlHandler;
            0    8     3  updatePlan  Lio/ebeaninternal/api/SpiUpdatePlan;
            1    8     4        bean  Lio/ebean/bean/EntityBean;
    Exceptions:
      throws java.sql.SQLException
    Signature: (Lio/ebeaninternal/server/core/PersistRequestBean<*>;Lio/ebeaninternal/server/persist/dml/DmlHandler;Lio/ebeaninternal/api/SpiUpdatePlan;)V
    MethodParameters:
            Name  Flags
      persist     
      bind        
      updatePlan  

  io.ebeaninternal.api.SpiUpdatePlan getUpdatePlan(io.ebeaninternal.server.core.PersistRequestBean<?>);
    descriptor: (Lio/ebeaninternal/server/core/PersistRequestBean;)Lio/ebeaninternal/api/SpiUpdatePlan;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
        start local 1 // io.ebeaninternal.server.core.PersistRequestBean request
         0: .line 52
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.persist.dml.UpdateMeta.getDynamicUpdatePlan:(Lio/ebeaninternal/server/core/PersistRequestBean;)Lio/ebeaninternal/api/SpiUpdatePlan;
            areturn
        end local 1 // io.ebeaninternal.server.core.PersistRequestBean request
        end local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/ebeaninternal/server/persist/dml/UpdateMeta;
            0    1     1  request  Lio/ebeaninternal/server/core/PersistRequestBean<*>;
    Signature: (Lio/ebeaninternal/server/core/PersistRequestBean<*>;)Lio/ebeaninternal/api/SpiUpdatePlan;
    MethodParameters:
         Name  Flags
      request  

  private io.ebeaninternal.api.SpiUpdatePlan getDynamicUpdatePlan(io.ebeaninternal.server.core.PersistRequestBean<?>);
    descriptor: (Lio/ebeaninternal/server/core/PersistRequestBean;)Lio/ebeaninternal/api/SpiUpdatePlan;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
        start local 1 // io.ebeaninternal.server.core.PersistRequestBean persistRequest
         0: .line 57
            aload 1 /* persistRequest */
            invokevirtual io.ebeaninternal.server.core.PersistRequestBean.getUpdatePlanHash:()Ljava/lang/String;
            astore 2 /* key */
        start local 2 // java.lang.String key
         1: .line 60
            aload 1 /* persistRequest */
            invokevirtual io.ebeaninternal.server.core.PersistRequestBean.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            astore 3 /* beanDescriptor */
        start local 3 // io.ebeaninternal.server.deploy.BeanDescriptor beanDescriptor
         2: .line 61
            aload 3 /* beanDescriptor */
            aload 2 /* key */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getUpdatePlan:(Ljava/lang/String;)Lio/ebeaninternal/api/SpiUpdatePlan;
            astore 4 /* updatePlan */
        start local 4 // io.ebeaninternal.api.SpiUpdatePlan updatePlan
         3: .line 62
            aload 4 /* updatePlan */
            ifnull 5
         4: .line 63
            aload 4 /* updatePlan */
            areturn
         5: .line 69
      StackMap locals: java.lang.String io.ebeaninternal.server.deploy.BeanDescriptor io.ebeaninternal.api.SpiUpdatePlan
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* list */
        start local 5 // java.util.List list
         6: .line 70
            aload 0 /* this */
            getfield io.ebeaninternal.server.persist.dml.UpdateMeta.set:Lio/ebeaninternal/server/persist/dmlbind/BindableList;
            aload 1 /* persistRequest */
            aload 5 /* list */
            invokevirtual io.ebeaninternal.server.persist.dmlbind.BindableList.addToUpdate:(Lio/ebeaninternal/server/core/PersistRequestBean;Ljava/util/List;)V
         7: .line 71
            new io.ebeaninternal.server.persist.dmlbind.BindableList
            dup
            aload 5 /* list */
            invokespecial io.ebeaninternal.server.persist.dmlbind.BindableList.<init>:(Ljava/util/List;)V
            astore 6 /* bindableList */
        start local 6 // io.ebeaninternal.server.persist.dmlbind.BindableList bindableList
         8: .line 73
            aload 1 /* persistRequest */
            invokevirtual io.ebeaninternal.server.core.PersistRequestBean.getConcurrencyMode:()Lio/ebeaninternal/api/ConcurrencyMode;
            astore 7 /* mode */
        start local 7 // io.ebeaninternal.api.ConcurrencyMode mode
         9: .line 76
            aload 0 /* this */
            aload 7 /* mode */
            aload 6 /* bindableList */
            aload 1 /* persistRequest */
            invokevirtual io.ebeaninternal.server.core.PersistRequestBean.getUpdateTable:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.persist.dml.UpdateMeta.genSql:(Lio/ebeaninternal/api/ConcurrencyMode;Lio/ebeaninternal/server/persist/dmlbind/BindableList;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* sql */
        start local 8 // java.lang.String sql
        10: .line 78
            new io.ebeaninternal.server.persist.dml.UpdatePlan
            dup
            aload 2 /* key */
            aload 7 /* mode */
            aload 8 /* sql */
            aload 6 /* bindableList */
            invokespecial io.ebeaninternal.server.persist.dml.UpdatePlan.<init>:(Ljava/lang/String;Lio/ebeaninternal/api/ConcurrencyMode;Ljava/lang/String;Lio/ebeaninternal/server/persist/dmlbind/Bindable;)V
            astore 4 /* updatePlan */
        11: .line 81
            aload 3 /* beanDescriptor */
            aload 2 /* key */
            aload 4 /* updatePlan */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.putUpdatePlan:(Ljava/lang/String;Lio/ebeaninternal/api/SpiUpdatePlan;)V
        12: .line 83
            aload 4 /* updatePlan */
            areturn
        end local 8 // java.lang.String sql
        end local 7 // io.ebeaninternal.api.ConcurrencyMode mode
        end local 6 // io.ebeaninternal.server.persist.dmlbind.BindableList bindableList
        end local 5 // java.util.List list
        end local 4 // io.ebeaninternal.api.SpiUpdatePlan updatePlan
        end local 3 // io.ebeaninternal.server.deploy.BeanDescriptor beanDescriptor
        end local 2 // java.lang.String key
        end local 1 // io.ebeaninternal.server.core.PersistRequestBean persistRequest
        end local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lio/ebeaninternal/server/persist/dml/UpdateMeta;
            0   13     1  persistRequest  Lio/ebeaninternal/server/core/PersistRequestBean<*>;
            1   13     2             key  Ljava/lang/String;
            2   13     3  beanDescriptor  Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;
            3   13     4      updatePlan  Lio/ebeaninternal/api/SpiUpdatePlan;
            6   13     5            list  Ljava/util/List<Lio/ebeaninternal/server/persist/dmlbind/Bindable;>;
            8   13     6    bindableList  Lio/ebeaninternal/server/persist/dmlbind/BindableList;
            9   13     7            mode  Lio/ebeaninternal/api/ConcurrencyMode;
           10   13     8             sql  Ljava/lang/String;
    Signature: (Lio/ebeaninternal/server/core/PersistRequestBean<*>;)Lio/ebeaninternal/api/SpiUpdatePlan;
    MethodParameters:
                Name  Flags
      persistRequest  

  private java.lang.String genSql(io.ebeaninternal.api.ConcurrencyMode, io.ebeaninternal.server.persist.dmlbind.BindableList, java.lang.String);
    descriptor: (Lio/ebeaninternal/api/ConcurrencyMode;Lio/ebeaninternal/server/persist/dmlbind/BindableList;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
        start local 1 // io.ebeaninternal.api.ConcurrencyMode conMode
        start local 2 // io.ebeaninternal.server.persist.dmlbind.BindableList bindableList
        start local 3 // java.lang.String tableName
         0: .line 88
            new io.ebeaninternal.server.persist.dml.GenerateDmlRequest
            dup
            invokespecial io.ebeaninternal.server.persist.dml.GenerateDmlRequest.<init>:()V
            astore 4 /* request */
        start local 4 // io.ebeaninternal.server.persist.dml.GenerateDmlRequest request
         1: .line 89
            aload 4 /* request */
            ldc "update "
            invokevirtual io.ebeaninternal.server.persist.dml.GenerateDmlRequest.append:(Ljava/lang/String;)Lio/ebeaninternal/server/persist/dml/GenerateDmlRequest;
            aload 3 /* tableName */
            invokevirtual io.ebeaninternal.server.persist.dml.GenerateDmlRequest.append:(Ljava/lang/String;)Lio/ebeaninternal/server/persist/dml/GenerateDmlRequest;
            ldc " set "
            invokevirtual io.ebeaninternal.server.persist.dml.GenerateDmlRequest.append:(Ljava/lang/String;)Lio/ebeaninternal/server/persist/dml/GenerateDmlRequest;
            pop
         2: .line 90
            aload 4 /* request */
            invokevirtual io.ebeaninternal.server.persist.dml.GenerateDmlRequest.setUpdateSetMode:()V
         3: .line 91
            aload 2 /* bindableList */
            aload 4 /* request */
            invokevirtual io.ebeaninternal.server.persist.dmlbind.BindableList.dmlAppend:(Lio/ebeaninternal/server/persist/dml/GenerateDmlRequest;)V
         4: .line 93
            aload 4 /* request */
            invokevirtual io.ebeaninternal.server.persist.dml.GenerateDmlRequest.getBindColumnCount:()I
            ifne 6
         5: .line 96
            aconst_null
            areturn
         6: .line 99
      StackMap locals: io.ebeaninternal.server.persist.dml.GenerateDmlRequest
      StackMap stack:
            aload 4 /* request */
            ldc " where "
            invokevirtual io.ebeaninternal.server.persist.dml.GenerateDmlRequest.append:(Ljava/lang/String;)Lio/ebeaninternal/server/persist/dml/GenerateDmlRequest;
            pop
         7: .line 100
            aload 0 /* this */
            aload 4 /* request */
            aload 1 /* conMode */
            invokevirtual io.ebeaninternal.server.persist.dml.UpdateMeta.appendWhere:(Lio/ebeaninternal/server/persist/dml/GenerateDmlRequest;Lio/ebeaninternal/api/ConcurrencyMode;)Ljava/lang/String;
            areturn
        end local 4 // io.ebeaninternal.server.persist.dml.GenerateDmlRequest request
        end local 3 // java.lang.String tableName
        end local 2 // io.ebeaninternal.server.persist.dmlbind.BindableList bindableList
        end local 1 // io.ebeaninternal.api.ConcurrencyMode conMode
        end local 0 // io.ebeaninternal.server.persist.dml.UpdateMeta this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lio/ebeaninternal/server/persist/dml/UpdateMeta;
            0    8     1       conMode  Lio/ebeaninternal/api/ConcurrencyMode;
            0    8     2  bindableList  Lio/ebeaninternal/server/persist/dmlbind/BindableList;
            0    8     3     tableName  Ljava/lang/String;
            1    8     4       request  Lio/ebeaninternal/server/persist/dml/GenerateDmlRequest;
    MethodParameters:
              Name  Flags
      conMode       
      bindableList  
      tableName     
}
SourceFile: "UpdateMeta.java"