/* Ċ Ġ* Ġ ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ġor Ġmore Ċ Ġ* Ġ Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ġdistributed Ġwith Ċ Ġ* Ġ Ġthis Ġwork Ġfor Ġadditional Ġinformation Ġregarding Ġcopyright Ġownership . Ċ Ġ* Ġ ĠThe ĠASF Ġlicenses Ġthis Ġfile Ġto ĠYou Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ċ Ġ* Ġ Ġ( the Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ċ Ġ* Ġ Ġthe ĠLicense . Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . sd ibt . k orm . core . callbacks Ċ Ċ import Ġcom . sd ibt . k orm . core . db . DataSource Type Ċ import Ġcom . sd ibt . k orm . core . db . K orm Sql Session Ċ import Ġcom . sd ibt . k orm . core . entity . Entity Fields Cache Ċ import Ġjava . time . LocalDateTime Ċ Ċ class ĠCall Back Batch Insert ( db : ĠK orm Sql Session ) Ġ{ ĊĊĠĠĠ Ġval Ġdefault CallBack Ġ= ĠDefault CallBack . instance . get CallBack ( db ) ĊĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault CallBack . batch Insert (). reg (" batch Set Sql Param ") Ġ{ Ġbatch Set Sql Param Callback ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġdefault CallBack . batch Insert (). reg (" before Batch Insert ") Ġ{ Ġbefore Batch Insert Callback ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġdefault CallBack . batch Insert (). reg (" batch Insert DateTime ") Ġ{ Ġbatch Insert DateTime Callback ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġdefault CallBack . batch Insert (). reg (" batch Insert Operator ") Ġ{ Ġbatch Insert Operator Callback ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġdefault CallBack . batch Insert (). reg (" batch Insert ") Ġ{ Ġbatch Insert Callback ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġdefault CallBack . batch Insert (). reg (" sql Process ") Ġ{ ĠCall Back Common (). sql Process ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġdefault CallBack . batch Insert (). reg (" set DataSource ") Ġ{ ĠCall Back Common (). setData So ure ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġdefault CallBack . batch Insert (). reg (" exec ") Ġ{ Ġexec Callback ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġdefault CallBack . batch Insert (). reg (" after Batch Insert ") Ġ{ Ġafter Batch Insert Callback ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġbefore Batch Insert Callback ( scope : ĠScope ): ĠScope Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġexec Scope Ġ= Ġscope ĊĠĠĠĠĠĠĠ Ġif Ġ(! exec Scope . has Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexec Scope Ġ= Ġscope . call Method (" before Save ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! exec Scope . has Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexec Scope Ġ= Ġscope . call Method (" before Insert ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġexec Scope ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġafter Batch Insert Callback ( scope : ĠScope ): ĠScope Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġexec Scope Ġ= Ġscope ĊĠĠĠĠĠĠĠ Ġif Ġ(! exec Scope . has Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexec Scope Ġ= Ġscope . call Method (" after Insert ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! exec Scope . has Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexec Scope Ġ= Ġscope . call Method (" after Save ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġexec Scope ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbatch Set Sql Param Callback ( scope : ĠScope ): ĠScope Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( scope . has Error ) Ġreturn Ġscope ĊĠĠĠĠĠĠĠ Ġif Ġ( scope . batch Entity s Ġ== Ġnull Ġ|| Ġscope . batch Entity s !!. isEmpty ()) Ġreturn Ġscope ĊĠĠĠĠĠĠĠ Ġ// åįķ çĭ¬ æĭ¿ åĩºæĿ¥ ä½ľä¸º ä¸Ģä¸ª æĵįä½ľ ĊĠĠĠĠĠĠĠ Ġscope . batch Entity s ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . batch Sql Param . put ( entity , Ġentity . sql Params (). to Mutable Map ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġscope ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbatch Insert Operator Callback ( scope : ĠScope ): ĠScope Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( scope . has Error ) Ġreturn Ġscope ĊĠĠĠĠĠĠĠ Ġif Ġ( scope . batch Entity s Ġ== Ġnull Ġ|| Ġscope . batch Entity s !!. isEmpty ()) Ġreturn Ġscope ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠEntity Fields Cache . item ( scope . entity !! ) ĊĠĠĠĠĠĠĠ Ġitem . created By ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . batch Sql Param . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity , Ġsql Param Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsql Param . put ("${ item . created By }", Ġscope . call Method Get Operator (" get Operator ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġitem . created By ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . batch Sql Param . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity , Ġsql Param Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsql Param . put ("${ item . updated By }", Ġscope . call Method Get Operator (" get Operator ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġscope ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbatch Insert DateTime Callback ( scope : ĠScope ): ĠScope Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( scope . has Error ) Ġreturn Ġscope ĊĠĠĠĠĠĠĠ Ġif Ġ( scope . batch Entity s Ġ== Ġnull Ġ|| Ġscope . batch Entity s !!. isEmpty ()) Ġreturn Ġscope ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠEntity Fields Cache . item ( scope . entity !! ) ĊĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠLocalDateTime . now () ĊĊĠĠĠĠĠĠĠ Ġitem . created By ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . batch Sql Param . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity , Ġsql Param Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsql Param . put ("${ item . createdAt }", Ġtime ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġitem . created By ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . batch Sql Param . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity , Ġsql Param Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsql Param . put ("${ item . updatedAt }", Ġtime ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġscope ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbatch Insert Callback ( scope : ĠScope ): ĠScope Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( scope . has Error ) Ġreturn Ġscope ĊĠĠĠĠĠĠĠ Ġif Ġ( scope . batch Entity s Ġ== Ġnull Ġ|| Ġscope . batch Entity s !!. isEmpty ()) Ġreturn Ġscope ĊĠĠĠĠĠĠĠ Ġwhen Ġ( scope . action Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAction Type . Entity Ġ-> Ġreturn Ġscope . batch Insert Entity () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġscope ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexec Callback ( scope : ĠScope ): ĠScope Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( scope . has Error ) Ġreturn Ġscope ĊĠĠĠĠĠĠĠ Ġif Ġ( scope . batch Entity s Ġ== Ġnull Ġ|| Ġscope . batch Entity s !!. isEmpty ()) Ġreturn Ġscope ĊĊĠĠĠĠĠĠĠ Ġif Ġ( scope . db . Error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( rows Affected , Ġgenerated Keys ) Ġ= Ġscope . db . execute Batch Update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope . sql String , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope . batch Sql Param , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġds Name Ġ= Ġscope . ds Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġds Type Ġ= ĠDataSource Type . WRITE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . rows Affected Ġ= Ġrows Affected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . generated Keys Ġ= Ġgenerated Keys ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . result Ġ= Ġrows Affected ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġscope ĊĠĠĠ Ġ} Ċ } Ċ