// ĠCopyright Ġ 2 0 2 0 ĠThe ĠCross - Media ĠMeasurement ĠAuthors Ċ // Ċ // Ġ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 Ġorg . wf an et . measurement . g cloud . spanner Ċ Ċ import Ġcom . google . cloud . spanner . Database Ċ import Ġcom . google . cloud . spanner . Instance Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġ[ Database ] Ġwith Ġname Ġ[ database Name ] Ġin Ġ[ spanner Instance ] Ġusing Ġthe Ċ Ġ* Ġ[ schema Definition Lines ]. Ċ Ġ* Ċ Ġ* ĠThis Ġsanit izes Ġ[ schema Definition Lines ] Ġfor Ġthe ĠSp anner Ġemulator Ġby Ġremoving Ġcomments Ġand Ċ Ġ* Ġconstraints . Ċ Ġ*/ Ċ fun Ġcreate Database ( ĊĠ Ġsp anner Instance : ĠInstance , ĊĠ Ġschema Definition Lines : ĠSequence < String >, ĊĠ Ġdatabase Name : ĠString Ċ ): ĠDatabase Ġ= Ġsp anner Instance . create Database ( database Name , Ġsanitize S dl ( schema Definition Lines )). get () Ċ Ċ private Ġfun Ġsanitize S dl ( sdl : ĠSequence < String >): ĠList < String > Ġ{ ĊĠ Ġreturn Ġs dl ĊĠĠĠ Ġ// ĠReplace Ġcomments Ġand Ġreferences Ġto Ġforeign Ġkeys Ġfrom Ġschema Ġfile . ĊĠĠĠ Ġ. map Ġ{ Ġit . replace (""" (-- | CONSTRAINT | FOREIGN | REFER ENCES ). *$ """. to Regex (), Ġ"") Ġ} ĊĠĠĠ Ġ// ĠDelete Ġblank Ġlines ĊĠĠĠ Ġ. filter Ġ{ Ġit . isNotBlank () Ġ} ĊĠĠĠ Ġ// ĠRe join Ġto Ġsingle Ġst ing ĊĠĠĠ Ġ. join ToString ("\ n ") ĊĠĠĠ Ġ// Ġand Ġsplit Ġinto Ġoperations ĊĠĠĠ Ġ. split (' ; ') ĊĠĠĠ Ġ// ĠRemoving Ġany Ġblank Ġoperations ĊĠĠĠ Ġ. filter Ġ{ Ġit . isNotBlank () Ġ} Ċ } Ċ