package Ġcom . s yle im an . ging erm oney . core . storage s . key _ value . storage s . combined Ċ Ċ import Ġcom . s yle im an . ging erm oney . core . storage s . key _ value . storage s . Storage Commit Operations Ċ import Ġjava . util . concurrent . locks . Re entrant ReadWrite Lock Ċ import Ġkotlin . concurrent . write Ċ Ċ class ĠCom bined Storage Update Operations ( ĊĠĠĠ Ġprivate Ġval Ġlock : ĠRe entrant ReadWrite Lock , ĊĠĠĠ Ġprivate Ġval Ġpersistent Storage : ĠStorage Commit Operations , ĊĠĠĠ Ġprivate Ġval Ġcache Storage : ĠStorage Commit Operations Ċ ): ĠStorage Commit Operations Ġ{ ĊĊĠĠĠ Ġ/** ĠPut Ġboolean Ġvalue Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġput Boolean ( key : ĠString , Ġvalue : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Storage . put Boolean ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Storage . put Boolean ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠPut Ġstring Ġvalue Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġput String ( key : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Storage . putString ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Storage . putString ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠPut Ġfloat Ġvalue Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġput Float ( key : ĠString , Ġvalue : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Storage . put Float ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Storage . put Float ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠPut Ġint Ġvalue Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġput Int ( key : ĠString , Ġvalue : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Storage . put Int ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Storage . put Int ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠPut Ġlong Ġvalue Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġput Long ( key : ĠString , Ġvalue : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Storage . put Long ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Storage . put Long ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠPut Ġbyte [] Ġvalue Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġput Bytes ( key : ĠString , Ġvalue : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Storage . put Bytes ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Storage . put Bytes ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠRemove Ġvalue Ġby Ġkey Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġremove ( key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Storage . remove ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Storage . remove ( key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠRemove Ġall Ġvalues Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġremove All () Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Storage . removeAll () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Storage . removeAll () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠComplete Ġediting Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcommit () Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Storage . commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Storage . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }