package Ġio . sph ia . es . coroutines . orm Ċ Ċ import Ġcom . google . gson . Gson ĊĊ Ċ class ĠDocument Mapper Impl Ġ: ĠDocument Mapper Ġ{ ĊĊĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĊĠĠĠ Ġoverride Ġfun Ġto Source Map ( doc : ĠAny ): ĠMap < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto Map Without ID ( doc , ĠDocument Analysis . analyze Cached ( doc . java Class )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġto Map Without ID ( doc : ĠAny , Ġanalysis : ĠDocument Analysis ): ĠMap < String , ĠAny > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġanalysis . document Fields . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġit . get ( doc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name Ġto Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. toMap () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġfrom Source Json ( json : ĠString , Ġid : ĠString ?, Ġdoc Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobj Ġ= Ġgson . fromJson ( json , Ġdoc Class ) ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDocument Analysis . analyze Cached ( doc Class ). id Field ?. set ( obj , Ġid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġobj ĊĠĠĠ Ġ} ĊĊ Ċ }