package Ġde . k ne ke . common . repo . quote Ċ Ċ import Ġde . k ne ke . common . data . quote . Quote Ċ import Ġde . k ne ke . common . db . Quote Db Record Ċ import Ġde . k ne ke . common . db . Quote Queries Ċ import Ġde . k ne ke . common . repo . cache . Database Cache Ċ Ċ class ĠQuote Database Sql Del ight ( private Ġval Ġquote Queries : ĠQuote Queries ) Ġ: ĠDatabase Cache < Quote >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġsave In Db ( data : ĠQuote ) Ġ{ ĊĠĠĠĠĠĠĠ Ġquote Queries . insert ( data . id . to Long (), Ġdata . quote , Ġdata . author , Ġdata . permalink ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave All In Db ( list : ĠList < Quote >) Ġ{ ĊĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ Ġsave ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload From Db ( filter : Ġ(( List < Quote >) Ġ-> ĠQuote ? )? ): ĠQuote ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( filter Ġ!= Ġnull ) Ġfilter ( quote Queries . selectAll (). execute As List (). map Ġ{ Ġit . cast () Ġ}) ĊĠĠĠĠĠĠĠ Ġelse Ġquote Queries . select Random (). execute As One (). cast () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload All From Db ( filter : Ġ(( List < Quote >) Ġ-> ĠList < Quote >? )? ): ĠList < Quote >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( filter Ġ!= Ġnull ) Ġfilter ( quote Queries . selectAll (). execute As List (). map Ġ{ Ġit . cast () Ġ}) ĊĠĠĠĠĠĠĠ Ġelse Ġquote Queries . selectAll (). execute As List (). map Ġ{ Ġit . cast () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsize In Db (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġquote Queries . selectAll (). execute As List (). size ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear Db () Ġ{ ĊĠĠĠĠĠĠĠ Ġquote Queries . delete All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠQuote Db Record . cast (): ĠQuote Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠQuote ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcheckNotNull ( this . id . toInt ()), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcheckNotNull ( this . quote ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcheckNotNull ( this . author ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . permalink ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }