/* Ċ Ġ* ĠThis ĠKotlin Ġsource Ġfile Ġwas Ġgenerated Ġby Ġthe ĠGradle Ġ' init ' Ġtask . Ċ Ġ*/ Ċ package Ġclient . registration Ċ Ċ import Ġclient . registration . cli . Client Registration Menu ; Ċ import Ġclient . registration . dto . Client ; Ċ import Ġclient . registration . repository . DataStore ; ĊĊ Ċ class ĠApp Ġ{ ĊĠĠĠ Ġval Ġg reeting : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" Hello ĠWorld !" ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠC LIC ommand Ġ( ĊĠĠĠ Ġval Ġcommand : ĠString , ĊĠĠĠ Ġval Ġfn : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġval Ġchildren : ĠList < CL IC ommand >? Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġprint ( pre amble : ĠString Ġ= Ġ" Ġ") Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("${ pre amble }- Ġ$ command ") ĊĠĠĠĠĠĠĠ Ġif Ġ( children Ġ!= Ġnull ) Ġfor Ġ( command Ġin Ġchildren ) Ġcommand . print ( pre amble Ġ+ Ġ" Ġ Ġ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġstart Client Registration Menu ( pre amble : ĠString ): ĠUnit Ġ{ ĊĠĠĠ Ġprintln (" ##### ĠClient ĠRegistration ĠMenu Ġ##### ") ĊĠĠĠ Ġprintln ("$ pre amble Ġ-> Ġ") Ċ } Ċ Ċ val Ġopen Client Registration Menu Ġ= Ġfun Ġ() Ġ{ ĊĠĠĠ Ġprintln (" THIS ĠIS ĠCLIENT ĠREG ISTR ATION ĠMENU . ĠW EL CO ME .") Ċ } Ċ Ċ fun Ġbuild Client Registration Menu () Ġ: ĠC LIC ommand Ġ{ ĊĠĠĠ Ġreturn ĠC LIC ommand (" client ", Ġopen Client Registration Menu , ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC LIC ommand (" add - client ", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Adding Ġclient ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC LIC ommand (" list - clients ", Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Retrie ving Ġall Ġclients ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ class ĠData Store Impl Ġ: ĠData Store Ġ{ ĊĠ Ġoverride Ġfun Ġsave ( client : ĠClient ) Ġ{ ĊĠĠĠ Ġprintln (" New Ġclient Ġregistered !") ĊĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġ// Ġstart Client Registration Menu (" R ental Shop ") ĊĠĠĠ Ġ// Ġ// var Ġadd ĊĠĠĠ Ġ// Ġval Ġclient Registration Menu Ġ= Ġbuild Client Registration Menu () ĊĠĠĠ Ġ// Ġclient Registration Menu . print () ĊĠĠĠ Ġval Ġmenu Ġ= ĠClient Registration Menu ( DataStore Impl ()); ĊĠĠĠ Ġval Ġcommand Ġ= Ġmenu . build Menu (); ĊĠĠĠ Ġcommand . execute (); Ċ } Ċ