package Ġcom . example . ok ano . real mex ample Ċ Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġio . realm . Realm Ċ import Ġio . realm . Realm Results Ċ import Ġjava . util .* Ċ import Ġio . realm . Realm Object Schema Ċ import Ġio . realm . Dynamic Realm Ċ import Ġio . realm . Realm Migration Ċ import Ġio . realm . Realm Configuration ĊĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Realm Ġ: ĠRealm ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ ĠRealm . init ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġrealm Config Ġ= ĠRealm Configuration . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. delete Realm If Migration Needed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġm Realm Ġ= ĠRealm . getInstance ( realm Config ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġtest ĊĠĠĠĠĠĠĠ Ġcreate (" test 1 ", 1 ) ĊĠĠĠĠĠĠĠ Ġcreate (" test 2 ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġread Ġtest ĊĠĠĠĠĠĠĠ Ġval ĠgetData Ġ= Ġread () ĊĠĠĠĠĠĠĠ ĠgetData . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" debug "," name Ġ:" Ġ+ Ġit . name Ġ+ Ġ" price Ġ: Ġ" Ġ+ Ġit . price . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġupdate Ġtest ĊĠĠĠĠĠĠĠ Ġupdate ( getData . first () !!. id , Ġ" updated ") ĊĊĠĠĠĠĠĠĠ Ġval Ġget Updated Data Ġ= Ġread () ĊĠĠĠĠĠĠĠ Ġget Updated Data . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" debug "," name Ġ:" Ġ+ Ġit . name Ġ+ Ġ" price Ġ: Ġ" Ġ+ Ġit . price . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġdelete Ġtest ĊĠĠĠĠĠĠĠ Ġdelete ( getData . first () !!. id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġget Deleted Data Ġ= Ġread () ĊĠĠĠĠĠĠĠ Ġget Deleted Data . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" debug "," name Ġ:" Ġ+ Ġit . name Ġ+ Ġ" price Ġ: Ġ" Ġ+ Ġit . price . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġm Realm . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate ( name : String , Ġprice : Long Ġ= Ġ 0 ){ ĊĠĠĠĠĠĠĠ Ġm Realm . execute Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbook Ġ= Ġm Realm . createObject ( Book :: class . java Ġ, ĠUUID . randomUUID (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbook . name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbook . price Ġ= Ġprice ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Realm . copy To Realm ( book ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġread () Ġ: ĠRealm Results < Book > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Realm . where ( Book :: class . java ). findAll () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( id : String , Ġname : String , Ġprice : Long Ġ= Ġ 0 ){ ĊĠĠĠĠĠĠĠ Ġm Realm . execute Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbook Ġ= Ġm Realm . where ( Book :: class . java ). equalTo (" id ", id ). findFirst () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbook !!. name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( price Ġ!= Ġ 0 . to Long ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook . price Ġ= Ġprice ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( id : String ){ ĊĠĠĠĠĠĠĠ Ġm Realm . execute Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbook Ġ= Ġm Realm . where ( Book :: class . java ). equalTo (" id ", id ). findAll () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbook . delete From Realm ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ