package Ġxyz . stere obot . kt . utils Ċ Ċ class ĠPro log Builder Ġ{ ĊĠ Ġprivate Ġvar Ġlines : ĠArray < Pro log > Ġ= ĠarrayOf () ĊĠ Ġprivate Ġvar Ġheader : ĠString ? Ġ= Ġnull ĊĠĠĊĠ Ġfun Ġadd Line ( name : ĠString , Ġvalue : ĠString ): ĠPro log Builder Ġ{ ĊĠĠĠ Ġlines Ġ= Ġlines . plus ( ĊĠĠĠĠĠ Ġobject Ġ: ĠPro log Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġvalue Ġ= Ġvalue ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĠĠĠĠĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĠĠĊĠ Ġfun Ġadd Header ( header : ĠString ): ĠPro log Builder Ġ{ ĊĠĠĠ Ġthis . header Ġ= Ġheader ĊĠĠĠ Ġreturn Ġthis ĊĠ Ġ} ĊĠĠĊĠ Ġfun Ġbuild (): ĠString Ġ{ ĊĠĠĠ Ġval Ġpadding Ġ= Ġfun (): ĠInt Ġ{ ĊĠĠĠĠĠ Ġvar Ġpadding Ġ= Ġ 0 ĊĠĠĠĠĊĠĠĠĠĠ Ġfor Ġ( line Ġin Ġthis . lines ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( line . name . length Ġ> Ġpadding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġpadding Ġ= Ġline . name . length ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠĠĠ Ġreturn Ġpadding ĊĠĠĠ Ġ} ĊĠĠĊĠĠĠ Ġvar Ġstr Ġ= Ġ" ``` pro log \ n " ĊĠĠĊĠĠĠ Ġif Ġ(! this . header . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠ Ġstr Ġ+= Ġthis . header ĊĠĠĠ Ġ} ĊĠĠĊĠĠĠ Ġfor Ġ( line Ġin Ġlines ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( line . name . isNotEmpty () Ġ&& Ġline . value . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġstr Ġ+= Ġ"${ line . name . pad Start ( padding (), Ġ' Ġ' )} Ġ: Ġ${ line . value }\ n " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĊĠĠĠ Ġstr Ġ+= Ġ" ``` " ĊĠĠĊĠĠĠ Ġreturn Ġstr ĊĠ Ġ} Ċ } Ċ Ċ interface ĠPro log Ġ{ ĊĠ Ġval Ġname : ĠString ĊĠ Ġval Ġvalue : ĠString Ċ }