package Ġio . kom mon s Ċ Ċ import Ġjava . io . Serializable Ċ Ċ /** Ċ Ġ* ĠBusiness ĠEntity ìĿĺ ĠtoString () ìĿĦ ĠìĨ Ĳ ì ī ½ ê²Į ĠìĦ¤ìłķ íķł ĠìĪĺ ĠìŀĪ ê²Į Ġíķ´ ì£¼ ëĬĶ ĠBuilder Ġìŀħ ëĭĪëĭ¤ . Ċ Ġ* Ċ Ġ* Ġ@ see ĠAbstract ValueObject Ċ Ġ* Ċ Ġ* Ġ@ author Ġdeb op Ċ Ġ*/ Ċ class ĠTo StringBuilder ( val ĠclassName : ĠString ): ĠSerializable Ġ{ ĊĊĠĠĠ Ġconstructor ( obj : ĠAny ): Ġthis ( obj . java Class . simple Name ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġof ( className : ĠString ): ĠTo StringBuilder Ġ= ĠTo StringBuilder ( className ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġof ( obj : ĠAny ): ĠTo StringBuilder Ġ= ĠTo StringBuilder ( obj ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠclassName . assertNot Blank (" className ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmap Ġ= ĠLinkedHashMap < String , ĠAny ?> () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcached ToString : ĠString ĊĊĠĠĠ Ġprivate Ġfun ĠtoString Value ( limit : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! :: cached ToString . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprops Ġ= Ġmap . entries . join ToString ( separator Ġ= Ġ",", Ġlimit Ġ= Ġlimit ) Ġ{ Ġ"${ it . key } =${ it . value . asString () }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcached ToString Ġ= Ġ"$ className ($ props )" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcached ToString ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠAny ?. asString (): ĠString Ġ= Ġthis ?. toString () Ġ?: Ġ"< null >" ĊĊĠĠĠ Ġfun Ġadd ( name : ĠString , Ġvalue : ĠAny ?): ĠTo StringBuilder Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġmap [ name ] Ġ= Ġvalue ?. asString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= ĠtoString Value (- 1 ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġë¬¸ ìŀĲ ìĹ´ Ġë³Ģ íĻĺ Ġìĭľ Ġ[ limit ] Ġíģ¬ ê¸° ë§Į íģ ¼ ë§Į Ġë°ĺíĻĺ íķľëĭ¤ ĊĠĠĠĠ Ġ* Ġ@ param Ġlimit Ġìłľ íķľ ëĲľ Ġë¬¸ ìŀĲ ìĹ´ Ġíģ¬ ê¸° ĊĠĠĠĠ Ġ* Ġ@ return ĠtoString Ġë¬¸ ìŀĲ ìĹ´ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠtoString ( limit : ĠInt ): ĠString Ġ= ĠtoString Value ( limit ) Ċ }