package Ġcom . lv once . ath ena čĊč Ċ import Ġorg . slf 4 j . Logger č Ċ import Ġorg . slf 4 j . LoggerFactory č Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper čĊč Ċ interface ĠAvatar Ġ{ čĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġlogger : ĠLogger Ġ= ĠLoggerFactory . getLogger ( Avatar :: class . java ) čĊĠĠĠĠĠĠĠ Ġval ĠobjectMapper = ĠObjectMapper () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġentity Id : ĠLong ? čĊĠĠĠ Ġvar Ġattrs : ĠMutable Map < String , ĠAny > čĊčĊĠĠĠ Ġfun Ġexecute ( plan Name : ĠString , Ġplan Id : ĠLong , ĠeventName : ĠString , Ġevent Args : ĠString , Ġsnapshots : ĠList < String >): ĠMap < String , ĠAny ?> čĊčĊĠĠĠ Ġfun Ġset Attr ( name : ĠString , Ġattr : ĠAny ) Ġ{ čĊĠĠĠĠĠĠĠ Ġattrs [ name ] Ġ= Ġattr čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġget Attr ( name : ĠString ): ĠAny ? Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġattrs [ name ] čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġsnapshot ( attr Names : ĠList < String >): ĠMutable Map < String , ĠAny ?> Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠMutable Map < String , ĠAny ?> Ġ= ĠLinkedHashMap () čĊĠĠĠĠĠĠĠ Ġattr Names . forEach { čĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ it ] Ġ= Ġthis . get Attr ( it ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġresult čĊĠĠĠ Ġ} č Ċ }