package Ġcom . example . recycler card . dao Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġcom . example . recycler card . model . Client Ċ Ċ class ĠClient DAO Ġ{ ĊĊĠĠĠ Ġvar Ġdatabase : ĠSQLite Database ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġdatabase Helper : ĠDatabase Helper ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . database Helper Ġ= ĠDatabase Helper ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġopen Database Writable () Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= Ġthis . database Helper ?. writable Database ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġopen Database Readable () Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= Ġthis . database Helper ?. readable Database ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġclose Database () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . database Helper ?. close () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġpublic Ġfun Ġstore ( client : ĠClient ): ĠLong Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CLIENT _ NAME , Ġclient . name ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CLIENT _ G ENDER , Ġclient . gender ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CLIENT _ IN CO ME , Ġclient . income ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . database !!. insert ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CLIENT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġpublic Ġfun Ġdelete ( id : ĠLong ): ĠBoolean Ġ{ Ġ// - 1 Ġ-> Ġsign ifica Ġque Ġde u Ġerro ... ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . database !!. delete ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CLIENT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CLIENT _ ID Ġ+ Ġ"= ?", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( id . toString ())) Ġ!= Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġupdate ( client : ĠClient ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CLIENT _ NAME , Ġclient . name ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CLIENT _ G ENDER , Ġclient . gender ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CLIENT _ IN CO ME , Ġclient . income ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . database !!. update ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CLIENT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CLIENT _ ID Ġ+ Ġ"= ?", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( client . id . toString ())) Ġ!= Ġ- 1 ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġfetch (): ĠMutable List < Client > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// select Ġ* Ġfrom Ġclient ĊĠĠĠĠĠĠĠ Ġval Ġlist Clients : ĠMutable List < Client > Ġ= Ġmutable ListOf < Client >() ĊĊĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor Ġ= Ġthis . database !!. query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CLIENT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CLIENT _ COLUMNS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull , Ġnull , Ġnull , Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile ( cursor . moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠClient ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getLong ( cursor . getColumnIndex ( Database Helper . TABLE _ CLIENT _ ID )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getString ( cursor . getColumnIndex ( Database Helper . TABLE _ CLIENT _ NAME )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getString ( cursor . getColumnIndex ( Database Helper . TABLE _ CLIENT _ G ENDER )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getDouble ( cursor . getColumnIndex ( Database Helper . TABLE _ CLIENT _ IN CO ME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Clients . add ( client ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist Clients ĊĠĠĠ Ġ} Ċ Ċ }