package Ġcom . che ise _ proj . local . mapper . message Ċ Ċ import Ġcom . che ise _ proj . data . model . Message Data Ċ import Ġcom . che ise _ proj . local . mapper . IL ocal List Mapper Ċ import Ġcom . che ise _ proj . local . mapper . IL ocal Mapper Ċ import Ġcom . che ise _ proj . local . model . Message Local Ċ import Ġcom . che ise _ proj . local . model . User Local . Companion . user Mapper Ċ Ċ class ĠMessage Local Data Mapper Ġ: ĠI Local Mapper < Message Local , ĠMessage Data >, ĊĠĠĠ ĠI Local List Mapper < Message Local , ĠMessage Data > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġlocal To Data ( local : ĠMessage Local ): ĠMessage Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMessage Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġlocal . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender Ġ= Ġuser Mapper (). local To Data ( local . sender ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Ġ= Ġlocal . receiver , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġlocal . content , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġlocal . timestamp ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdata ToLocal ( data : ĠMessage Data ): ĠMessage Local Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMessage Local ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġdata . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender Ġ= Ġuser Mapper (). data ToLocal ( data . sender ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Ġ= Ġdata . receiver , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġdata . content , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġdata . timestamp ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlocal List To Data ( local List : ĠList < Message Local >): ĠList < Message Data > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġarray ListOf < Message Data >() ĊĠĠĠĠĠĠĠ Ġlocal List . forEach Ġ{ Ġlocal Ġ-> Ġdata . add ( local To Data ( local )) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdata List List ToLocal ( data ToLocal List : ĠList < Message Data >): ĠList < Message Local > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġremote Ġ= Ġarray ListOf < Message Local >() ĊĠĠĠĠĠĠĠ Ġdata ToLocal List . forEach Ġ{ Ġdata Ġ-> Ġremote . add ( data ToLocal ( data )) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġremote ĊĠĠĠ Ġ} Ċ Ċ } ĊĊĊĊ