/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 0 - 2 0 2 1 , ĠSimp lex ion , ĠH ung ary Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ package Ġz ak ad ab ar . lib . blobs . persistence . sqlite Ċ Ċ import Ġorg . jetbrains . ex posed . sql . Database Ċ import Ġorg . jetbrains . ex posed . sql . Schema Utils Ċ import Ġorg . jetbrains . ex posed . sql . Table Ċ import Ġorg . jetbrains . ex posed . sql . transactions . Transaction Manager Ċ import Ġorg . jetbrains . ex posed . sql . transactions . transaction Ċ import Ġz ak ad ab ar . core . util . Public Api Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Paths Ċ import Ġkotlin . io . path . absolute Ċ Ċ /** Ċ Ġ* ĠConvenience Ġfunction Ġfor Ġbundle Ġbuild Ċ Ġ* Ċ Ġ* Ġ 1 . Ġcreates Ġor Ġopens Ġan ĠSQLite Ġdatabase Ċ Ġ* Ġ 1 . Ġcalls Ġ[ builder ] Ċ Ġ* Ġ 1 . Ġcloses Ġand Ġun registers Ġthe Ġdatabase Ċ Ġ* Ġ 1 . Ġreads Ġthe Ġdatabase Ġfile Ġinto Ġa Ġbyte Ġarray Ċ Ġ* Ġ 1 . Ġreturns Ġwith Ġthat Ġbyte Ġarray Ċ Ġ* Ċ Ġ* Ġ@ param Ġ Ġpath ĠĠĠĠĠĠĠĠ ĠThe Ġfile Ġpath Ġto Ġthe Ġbundle Ġfile . Ċ Ġ* Ġ@ param Ġ Ġappend ĠĠĠĠĠĠ ĠWhen Ġtrue , Ġan Ġexisting Ġfile Ġmay Ġbe Ġopened Ġand Ġupdated . Ċ Ġ* Ġ@ param Ġ Ġdelete After Ġ ĠWhen Ġtrue , Ġthe ĠSQLite ĠDB Ġfile Ġis Ġdeleted . Ċ Ġ* Ċ Ġ* Ġ@ returns Ġ ĠThe Ġcontent Ġof Ġthe ĠSQLite Ġdatabase Ġfile . Ċ Ġ*/ Ċ @ Public Api Ċ fun Ġbuild Bundle ( ĊĠĠĠ Ġpath : ĠString , ĊĠĠĠ Ġtables Ġ: ĠList < Table > Ġ= Ġempty List (), ĊĠĠĠ Ġappend : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġdelete After : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġbuilder : Ġ( Database ) Ġ-> ĠUnit Ċ ): ĠByteArray Ġ{ ĊĊĠĠĠ Ġval Ġa Path Ġ= ĠPaths . get ( path ). absolute () ĊĊĠĠĠ Ġif Ġ(! Ġappend Ġ&& ĠFiles . exists ( a Path )) Ġthrow ĠIllegalArgumentException (" file Ġat Ġ$ a Path Ġalready Ġexists ") ĊĊĠĠĠ Ġval Ġbundle Db Ġ= ĠDatabase . connect (" jdbc : sqlite :$ a Path ") ĊĊĠĠĠ Ġif Ġ( tables . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġtransaction ( bundle Db ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchema Utils . create Missing Tables And Columns (* tables . to Typed Array ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuilder ( bundle Db ) ĊĊĠĠĠ ĠTransaction Manager . close And Unregister ( bundle Db ) ĊĊĠĠĠ Ġval Ġbytes Ġ= ĠFiles . read All Bytes ( a Path ) ĊĊĠĠĠ Ġif Ġ( delete After ) ĠFiles . delete ( a Path ) ĊĊĠĠĠ Ġreturn Ġbytes Ċ } Ċ