package Ġde . by j oker . jf ql . repository Ċ Ċ import Ġde . by j oker . jf ql . connection . Connection Ċ import Ġde . by j oker . jf ql . statement .* Ċ import Ġde . by j oker . jf ql . util . Document Collection Entry Ċ import Ġde . by j oker . jf ql . util . Response Ċ import Ġde . by j oker . jf ql . util . Result Ċ import Ġde . by j oker . jf ql . util . TableEntry Ċ import Ġorg . json . JSONObject Ċ Ċ class ĠDocument Repository ( private Ġval Ġconnection : ĠConnection , Ġprivate Ġval Ġname : ĠString ) Ġ: ĠRepository < JSONObject > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġprimary Ġ= Ġ"_ id " ĊĊĠĠĠ Ġoverride Ġfun Ġformat Entity ( entry : ĠTable Entry ): ĠJSONObject Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( entry Ġas ĠDocument Collection Entry ). parse JsonObject () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġformat Entities ( entries : ĠMutable List < TableEntry >): ĠMutable List < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġentries . map Ġ{ Ġtable Entry Ġ-> Ġformat Entity ( table Entry ) Ġ}. to Mutable List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġquery ( statement : ĠStatement ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconnection . query ( statement ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave ( entity : ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . query ( Insert Builder ( name ). content ( entity ). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave All ( entities : ĠMutable List < JSONObject >) Ġ{ ĊĠĠĠĠĠĠĠ Ġentities . forEach Ġ{ Ġentity Ġ-> Ġsave ( entity ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( entity : ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . query ( Insert Builder ( name ). content ( entity ). primary ( entity . getString ( primary )). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate By ( entity : ĠJSONObject , Ġfield : ĠString , Ġvalue : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Where ( entity , ĠCondition Set Builder ( Condition Builder ( field ). ` is ` (). equals ( value ). build ()). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Where ( entity : ĠJSONObject , Ġconditions : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Where ( entity , ĠLegacy Condition Set Builder ( conditions ). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Where ( entity : ĠJSONObject , Ġcondition Set : ĠCondition Set ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . query ( Insert Builder ( name ). content ( entity ). where ( condition Set ). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete ( entity : ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . query ( Remove Builder ( entity . getString ("_ id ")). from ( name ). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete All () Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . query ( Remove Builder ("* "). from ( name ). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete All By ( field : ĠString , Ġvalue : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete All Where ( Condition Set Builder ( Condition Builder ( field ). ` is ` (). equals ( value ). build ()). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete All Where ( conditions : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete All Where ( Legacy Condition Set Builder ( conditions ). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete All Where ( condition Set : ĠCondition Set ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . query ( Remove Builder ("* "). from ( name ). where ( condition Set ). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll (): ĠMutable List < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( connection . query ( Select Builder ("* "). from ( name ). build ()) Ġas ĠResult ). entries . map Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. to Mutable List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll ( statement : ĠSelect Builder ): ĠMutable List < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( connection . query ( statement . build ()) Ġas ĠResult ). entries . map Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. to Mutable List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll By ( field : ĠString , Ġvalue : ĠAny ): ĠMutable List < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠfindAll Where ( Condition Set Builder ( Condition Builder ( field ). ` is ` (). equals ( value ). build ()). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll Where ( conditions : ĠString ): ĠMutable List < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠfindAll Where ( Legacy Condition Set Builder ( conditions ). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll Where ( condition Set : ĠCondition Set ): ĠMutable List < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( connection . query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSelect Builder ("* "). from ( name ). where ( condition Set ). build () ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠResult ). entries . map Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. to Mutable List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind One By Primary ( primary : ĠAny ): ĠJSONObject ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( connection . query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSelect Builder ("* "). from ( name ). primary ( primary . toString ()). build () ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠResult ). entries . map Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind One By ( field : ĠString , Ġvalue : ĠAny ): ĠJSONObject ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfind One Where ( Condition Set Builder ( Condition Builder ( field ). ` is ` (). equals ( value ). build ()). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind One Where ( conditions : ĠString ): ĠJSONObject ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfind One Where ( Legacy Condition Set Builder ( conditions ). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind One Where ( condition Set : ĠCondition Set ): ĠJSONObject ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( connection . query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSelect Builder ("* "). from ( name ). where ( condition Set ). build () ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠResult ). entries . map Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠ Ġ} Ċ Ċ } Ċ