package Ġcom . da im ler . mb realm kit . sample Ċ Ċ import Ġcom . da im ler . mb logger kit . MB Logger Kit Ċ import Ġio . realm . Realm Ċ import Ġio . realm . kotlin . createObject Ċ import Ġio . realm . kotlin . where Ċ Ċ class ĠRealm User Cache ( private Ġval Ġrealm : ĠRealm ) Ġ: ĠUser Cache Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġsave User ( user : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrealm . execute Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrealm User Ġ= Ġquery User ById ( user . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( realm User Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMB Logger Kit . d (" Create Ġuser Ġ$ user .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm User Ġ= Ġrealm . createObject ( user . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMB Logger Kit . d (" Update Ġuser Ġ$ user .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrealm User . name Ġ= Ġuser . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrealm . copy To Realm OrUpdate ( realm User ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload All (): ĠList < User > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrealm Users Ġ= Ġrealm . where < Realm User >(). findAll () ĊĠĠĠĠĠĠĠ Ġreturn Ġrealm Users . map Ġ{ Ġmap Realm User To User ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload User ById ( id : ĠString ): ĠUser ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrealm User Ġ= Ġquery User ById ( id ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrealm User ?. let Ġ{ Ġmap Realm User To User ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġquery User ById ( id : ĠString ): ĠRealm User ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrealm . where < Realm User >(). equalTo ( Realm User . FIELD _ ID , Ġid ). findFirst () ĊĊĠĠĠ Ġprivate Ġfun Ġmap Realm User To User ( realm User : ĠRealm User )= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser ( realm User . id , Ġrealm User . name Ġ?: Ġ"") Ċ }