package Ġio . gitlab . art urb os ch . tin bo . api Ċ Ċ import Ġio . gitlab . art urb os ch . tin bo . api . config . Editable Prompt Provider Ċ import Ġorg . j line . reader . Line Reader Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . context . annotation . Lazy Ċ import Ġorg . springframework . stereotype . Component Ċ Ċ /** Ċ Ġ* Ġ@ author ĠArt ur ĠB os ch Ċ Ġ*/ Ċ @ Component Ċ class ĠT in bo Terminal Ġ@ Autowired Ġ@ Lazy Ġconstructor ( Ċĉ ĉ private Ġval Ġreader : ĠLine Reader , Ċĉ ĉ private Ġval Ġprompt Provider : ĠEdit able Prompt Provider ) Ġ{ ĊĊ ĉ @ Jvm Over loads Ċ ĉ fun Ġread Line ( prompt : ĠString ? Ġ= Ġnull , Ċĉĉĉĉ Ġright Prompt : ĠString ? Ġ= Ġnull , Ċĉĉĉĉ Ġmask : ĠChar ? Ġ= Ġnull , Ċĉĉĉĉ Ġbuffer : ĠString ? Ġ= Ġnull ): ĠString Ġ{ Ċĉ ĉ return Ġreader . readLine ( prompt , Ġright Prompt , Ġmask , Ġbuffer ) Ġ?: Ġ"" Ċ ĉ } ĊĊ ĉ fun Ġwrite ( content : ĠString ) Ġ{ Ċĉ ĉ reader . terminal . writer (). println ( content ) Ċĉ ĉ reader . terminal . writer (). flush () Ċ ĉ } ĊĊ ĉ fun Ġchange Prompt ( prompt : ĠString ) Ġ{ Ċĉ ĉ prompt Provider . prompt Text Ġ= Ġprompt Ċ ĉ } Ċ } Ċ