/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . gradle . instant execution . serialization . code cs Ċ Ċ import Ġorg . gradle . api . internal . Generated Sub classes Ċ import Ġorg . gradle . instant execution . serialization . Codec Ċ import Ġorg . gradle . instant execution . serialization . Is olate Context Ċ import Ġorg . gradle . instant execution . serialization . Property Trace Ċ import Ġorg . gradle . instant execution . serialization . Read Context Ċ import Ġorg . gradle . instant execution . serialization . Write Context Ċ import Ġorg . gradle . instant execution . serialization . read Class Ċ import Ġorg . gradle . instant execution . serialization . with Property Trace Ċ import Ġorg . gradle . instant execution . serialization . write Class ĊĊ Ċ internal Ċ class ĠBean Codec Ġ: ĠCodec < Any > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠWrite Context . encode ( value : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġisolate . ident ities . getId ( value ) ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Small Int ( id ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Small Int ( isolate . ident ities . put Instance ( value )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbean Type Ġ= ĠGenerated Sub classes . unpack Type ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Class ( bean Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Bean Trace ( bean Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbean Property Writer For ( bean Type ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Fields Of ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠRead Context . decode (): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġread Small Int () ĊĠĠĠĠĠĠĠ Ġval Ġprevious Value Ġ= Ġisolate . ident ities . getInstance ( id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( previous Value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġprevious Value ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbean Type Ġ= Ġread Class () ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Bean Trace ( bean Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean Property Reader For ( bean Type ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbean Ġ= Ġnew Bean () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġisolate . ident ities . put Instance ( id , Ġbean ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Fields Of ( bean ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġinline Ġfun Ġ< T Ġ: ĠI sol ate Context , ĠR > ĠT . with Bean Trace ( bean Type : ĠClass <* >, Ġaction : Ġ() Ġ-> ĠR ): ĠR Ġ= ĊĠĠĠĠĠĠĠ Ġwith Property Trace ( Property Trace . Bean ( bean Type , Ġtrace )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction () ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ