/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 Ġe Al va . com Ċ Ġ* Ċ Ġ* ĠLicensed Ġ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 . e al va . to que . db Ċ Ċ import Ġcom . e al va . e al val og . i Ċ import Ġcom . e al va . e al val og . invoke Ċ import Ġcom . e al va . e al val og . lazy Logger Ċ import Ġcom . e al va . to que . common . Millis Ċ import Ġcom . e al va . to que . persist . Album Id Ċ import Ġcom . e al va . to que . persist . Artist Id Ċ import Ġcom . e al va . w elite . db . Transaction InProgress Ċ import Ġcom . e al va . w elite . db . statements . insert Values Ċ import Ġcom . e al va . w elite . db . table . On Conflict Ċ Ċ private Ġval ĠLOG Ġby Ġlazy Logger ( Artist Album Dao :: class ) Ċ Ċ interface ĠArtist Album Dao Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠInsert Ġthe Ġartist / album Ġrelationship Ġreplacing Ġon Ġconflict Ġif Ġthe Ġpair Ġalready Ġexists ĊĠĠ Ġ*/ ĊĠ Ġfun Ġinsert Artist Album ( ĊĠĠĠ Ġtxn : ĠTransaction InProgress , ĊĠĠĠ Ġnew Artist Id : ĠArtist Id , ĊĠĠĠ Ġnew Album Id : ĠAlbum Id , ĊĠĠĠ ĠcreateTime : ĠM illis ĊĠ Ġ) ĊĊĠ Ġfun Ġdelete All ( txn : ĠTransaction InProgress ) ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġinvoke (): ĠArtist Album Dao Ġ= ĠArtist Album Dao Impl () ĊĠ Ġ} Ċ } Ċ Ċ private Ġval ĠINSERT _ AR TI ST _ AL BU M Ġ= ĠArtist Album Table . insert Values ( On Conflict . Replace ) Ġ{ ĊĠ Ġit [ artist Id ]. bind Arg () ĊĠ Ġit [ album Id ]. bind Arg () ĊĠ Ġit [ created Time ]. bind Arg () Ċ } Ċ Ċ private Ġclass ĠArtist Album Dao Impl Ġ: ĠArtist Album Dao Ġ{ ĊĠ Ġoverride Ġfun Ġinsert Artist Album ( ĊĠĠĠ Ġtxn : ĠTransaction InProgress , ĊĠĠĠ Ġnew Artist Id : ĠArtist Id , ĊĠĠĠ Ġnew Album Id : ĠAlbum Id , ĊĠĠĠ ĠcreateTime : ĠM illis ĊĠ Ġ) Ġ= Ġtxn . run Ġ{ ĊĠĠĠ ĠINSERT _ AR TI ST _ AL BU M . insert Ġ{ ĊĠĠĠĠĠ Ġit [ artist Id ] Ġ= Ġnew Artist Id . value ĊĠĠĠĠĠ Ġit [ album Id ] Ġ= Ġnew Album Id . value ĊĠĠĠĠĠ Ġit [ created Time ] Ġ= ĠcreateTime () ĊĠĠĠ Ġ} ĊĠĠĠ ĠUnit ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġdelete All ( txn : ĠTransaction InProgress ) Ġ= Ġtxn . run Ġ{ ĊĠĠĠ Ġval Ġcount Ġ= ĠArtist Album Table . delete All () ĊĠĠĠ ĠLOG . i Ġ{ Ġit (" Deleted Ġ% d Ġartist / album Ġassociations ", Ġcount ) Ġ} ĊĠ Ġ} Ċ } Ċ