package Ġorg . kom apper . jdbc . dsl . runner Ċ Ċ import Ġorg . kom apper . core . dsl . context . Entity Insert Context Ċ import Ġorg . kom apper . core . dsl . met amodel . Entity Met amodel Ċ import Ġorg . kom apper . core . dsl . met amodel . Id Generator Ċ import Ġorg . kom apper . jdbc . Jdbc Database Config Ċ import Ġorg . kom apper . jdbc . Jdbc Executor Ċ Ċ internal Ġclass ĠEntity Insert Jdbc Runner Support < ENTITY Ġ: ĠAny , ĠID Ġ: ĠAny , ĠMETA Ġ: ĠEntity Met amodel < ENTITY , ĠID , ĠMETA >>( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠEntity Insert Context < ENTITY , ĠID , ĠMETA >, Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġpre Insert ( config : ĠJdbc Database Config , Ġentity : ĠENT ITY ): ĠENT ITY Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Entity Ġ= Ġwhen Ġ( val Ġid Generator Ġ= Ġcontext . target . id Generator ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠId Generator . Sequence < ENTITY , ĠID > Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! context . target . disable Sequence Assignment () Ġ&& Ġ! context . options . disable Sequence Assignment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġid Generator . execute ( config , Ġcontext . options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Generator . property . setter ( entity , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġclock Ġ= Ġconfig . clock Provider . now () ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . target . pre Insert ( new Entity Ġ?: Ġentity , Ġclock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġinsert ( config : ĠJdbc Database Config , Ġexecute : Ġ( Jdbc Executor ) Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequires Generated Keys Ġ= Ġcontext . target . id Generator () Ġis ĠId Generator . Auto Increment < ENTITY , Ġ*> ĊĠĠĠĠĠĠĠ Ġval Ġexecutor Ġ= ĠJdbc Executor ( config , Ġcontext . options , Ġrequires Generated Keys ) ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute ( executor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpost Insert ( entity : ĠENT ITY , Ġgenerated Key : ĠLong ): ĠENT ITY Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Generator Ġ= Ġcontext . target . id Generator () ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( id Generator Ġis ĠId Generator . Auto Increment < ENTITY , ĠID >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġcontext . target . convertTo Id ( generated Key ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Generator . property . setter ( entity , Ġid ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ