/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 . ĠZ ie del th Ċ Ġ*/ Ċ Ċ package Ġfr . zie del th . ja is . utils . anime s . sql Ċ Ċ import Ġfr . zie del th . ja is . utils . ISO 8 6 0 1 Ċ import Ġfr . zie del th . ja is . utils . anime s . Episode Ċ import Ġfr . zie del th . ja is . utils . anime s . Genre Ċ import Ġfr . zie del th . ja is . utils . anime s . Scan Ċ import Ġfr . zie del th . ja is . utils . anime s . countries . Country Handler Ċ import Ġfr . zie del th . ja is . utils . anime s . platforms . Platform Handler Ċ import Ġfr . zie del th . ja is . utils . anime s . sql . data . An ime Data Ċ import Ġfr . zie del th . ja is . utils . anime s . sql . data . Episode Data Ċ import Ġfr . zie del th . ja is . utils . anime s . sql . data . Platform Data Ċ import Ġfr . zie del th . ja is . utils . anime s . sql . data . Scan Data Ċ import Ġfr . zie del th . ja is . utils . anime s . sql . map pers .* Ċ import Ġjava . sql . Connection Ċ import Ġjava . sql . Driver Manager Ċ import Ġjava . util .* Ċ Ċ object ĠJ Mapper Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcountry Mapper Ġ= ĠCountry Mapper () ĊĠĠĠ Ġprivate Ġval Ġplatform Mapper Ġ= ĠPlatform Mapper () ĊĠĠĠ Ġprivate Ġval Ġgenre Mapper Ġ= ĠGen re Mapper () ĊĠĠĠ Ġprivate Ġval Ġepisode Type Mapper Ġ= ĠEp isode Type Mapper () ĊĠĠĠ Ġprivate Ġval Ġlang Type Mapper Ġ= ĠLang Type Mapper () ĊĠĠĠ Ġprivate Ġval Ġan ime Genre Mapper Ġ= ĠAn ime Genre Mapper () ĊĠĠĠ Ġprivate Ġval Ġan ime Code Mapper Ġ= ĠAn ime Code Mapper () ĊĊĠĠĠ Ġprivate Ġval Ġan ime Mapper Ġ= ĠAn ime Mapper () ĊĠĠĠ Ġval Ġepisode Mapper Ġ= ĠEp isode Mapper () ĊĠĠĠ Ġval Ġscan Mapper Ġ= ĠScan Mapper () ĊĊĠĠĠ Ġfun Ġget Connection (): ĠConnection ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= ĠConfiguration . load () Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠDriver Manager . getConnection ( configuration . url , Ġconfiguration . user , Ġconfiguration . password ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Insert ( ĊĠĠĠĠĠĠĠ Ġconnection : ĠConnection ?, ĊĠĠĠĠĠĠĠ Ġplatform : ĠPlatform Handler , ĊĠĠĠĠĠĠĠ Ġcountry : ĠCountry Handler , ĊĠĠĠĠĠĠĠ Ġrelease Date : ĠCalendar , ĊĠĠĠĠĠĠĠ Ġan ime : ĠString , ĊĠĠĠĠĠĠĠ Ġan ime Image : ĠString ?, ĊĠĠĠĠĠĠĠ Ġan ime Description : ĠString ?, ĊĠĠĠĠĠĠĠ Ġgen res : ĠArray < Genre > ĊĠĠĠ Ġ): ĠPair < Platform Data ?, ĠAn ime Data ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplatform Data Ġ= Ġthis . platform Mapper . insert ( connection , Ġplatform ) ĊĠĠĠĠĠĠĠ Ġval Ġcountry Data Ġ= Ġthis . country Mapper . insert ( connection , Ġcountry ) ĊĊĠĠĠĠĠĠĠ Ġval Ġan ime Data Ġ= Ġthis . anime Mapper . insert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . anime Code Mapper , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Data ?. id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠISO 8 6 0 1 . to UTC Date ( ISO 8 6 0 1 . from Calendar ( release Date )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Image , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Description ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( anime Data ?. genres ?. isEmpty () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen res . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgenre Ġ= Ġthis . genre Mapper . insert ( connection , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( genre Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . anime Genre Mapper . insert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Data . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenre . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( platform Data , Ġan ime Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Episode ( connection : ĠConnection ?, Ġepisode : ĠEp isode ): ĠEp isode Data ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( platform Data , Ġan ime Data ) Ġ= Ġthis . init Insert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . platform . first , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . country . first , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . release Date , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . anime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . anime Image , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . anime Description , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . anime Gen res ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . episode Mapper . insert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Mapper , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplatform Data ?. id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Data ?. id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . episode Type Mapper . insert ( connection , Ġepisode . episode Type )?. id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . lang Type Mapper . insert ( connection , Ġepisode . lang Type )?. id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠISO 8 6 0 1 . to UTC Date ( ISO 8 6 0 1 . from Calendar ( episode . release Date )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . season . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . number . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . episode Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . url , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . image , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode . duration ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Scan ( connection : ĠConnection ?, Ġscan : ĠScan ): ĠScan Data ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( platform Data , Ġan ime Data ) Ġ= Ġthis . init Insert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan . platform . first , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan . country . first , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan . release Date , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan . anime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan . anime Image , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan . anime Description , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan . anime Gen res ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . scan Mapper . insert ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplatform Data ?. id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan ime Data ?. id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . episode Type Mapper . insert ( connection , Ġscan . episode Type )?. id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . lang Type Mapper . insert ( connection , Ġscan . lang Type )?. id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠISO 8 6 0 1 . to UTC Date ( ISO 8 6 0 1 . from Calendar ( scan . release Date )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan . number , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan . url ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }