package Ġar cs . android . cr dt Ċ Ċ import Ġandroid . os . Parcel Ċ import Ġar cs . android . util . read Proto Ċ import Ġar cs . core . data . Raw Entity Ċ Ċ /** ĠConstructs Ġa Ġ[ Raw Entity ] Ġfrom Ġthe Ġgiven Ġ[ Raw Entity Proto ]. Ġ*/ Ċ fun ĠRaw Entity Proto . to Raw Entity (): ĠRaw Entity Ġ{ ĊĠ Ġval Ġsing letons Ġ= Ġsingleton Map . map Values Ġ{ Ġ(_, Ġrefer enc able ) Ġ-> ĊĠĠĠ Ġrefer enc able . to Refer enc able () ĊĠ Ġ} ĊĠ Ġval Ġcollections Ġ= Ġcollection Map . map Values Ġ{ Ġ(_, Ġrefer enc able ) Ġ-> ĊĠĠĠ Ġrefer enc able . refer enc able List . map To ( mutable Set Of ()) Ġ{ Ġit . to Refer enc able () !! Ġ} ĊĠ Ġ} ĊĠ Ġreturn ĠRaw Entity ( ĊĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠ Ġsing letons Ġ= Ġsing letons , ĊĠĠĠ Ġcollections Ġ= Ġcollections , ĊĠĠĠ Ġcreation Timestamp Ġ= Ġcreation Timestamp Ms , ĊĠĠĠ Ġexpiration Timestamp Ġ= Ġexpiration Timestamp Ms ĊĠ Ġ) Ċ } Ċ Ċ /** ĠSerial izes Ġa Ġ[ Raw Entity ] Ġto Ġits Ġproto Ġform . Ġ*/ Ċ fun ĠRaw Entity . to Proto (): ĠRaw Entity Proto Ġ= ĠRaw Entity Proto . newBuilder () ĊĠ Ġ. setId ( id ) ĊĠ Ġ. put All Singleton ( ĊĠĠĠ Ġsing letons . map Values Ġ{ Ġ(_, Ġrefer enc able ) Ġ-> ĊĠĠĠĠĠ Ġrefer enc able ?. to Proto () Ġ?: ĠRefer enc able Proto . getDefaultInstance () ĊĠĠĠ Ġ} ĊĠ Ġ) ĊĠ Ġ. put All Collection ( ĊĠĠĠ Ġcollections . map Values Ġ{ Ġ(_, Ġrefer enc ables ) Ġ-> ĊĠĠĠĠĠ ĠRefer enc able Set Proto . newBuilder () ĊĠĠĠĠĠĠĠ Ġ. addAll Refer enc able ( refer enc ables . map Ġ{ Ġit . to Proto () Ġ}) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĠ Ġ) ĊĠ Ġ. set Creation Timestamp Ms ( creation Timestamp ) ĊĠ Ġ. set Expiration Timestamp Ms ( expiration Timestamp ) ĊĠ Ġ. build () Ċ Ċ /** ĠReads Ġa Ġ[ Raw Entity ] Ġout Ġof Ġa Ġ[ Parcel ]. Ġ*/ Ċ fun ĠParcel . read Raw Entity (): ĠRaw Entity ? Ġ= ĊĠ Ġread Proto ( Raw Entity Proto . getDefaultInstance ()) ?. to Raw Entity () Ċ