package Ġcom . s ug art own 0 2 . gold f inger console . client Ċ Ċ import Ġcom . s ug art own 0 2 . gold f inger console . declaration . logger Ċ import Ġcom . s ug art own 0 2 . gold f inger console . domain . Order Builder Ċ import Ġcom . s ug art own 0 2 . gold f inger console . domain . Order State Ċ import Ġcom . s ug art own 0 2 . gold f inger console . service .* Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . util .* Ċ import Ġjavax . annotation . Pre Destroy Ċ Ċ @ Service Ċ class ĠConsole Client ( ĊĠĠĠ Ġval Ġorder Type Choice Service : ĠOrder Type Choice Service , ĊĠĠĠ Ġval Ġorder Market Choice Service : ĠOrder Market Choice Service , ĊĠĠĠ Ġval Ġorder Cancel Market Choice Service : ĠOrder Cancel Market Choice Service , ĊĠĠĠ Ġval Ġorder Side Choice Service : ĠOrder Side Choice Service , ĊĠĠĠ Ġval Ġsplit Type Choice Service : ĠSplit Type Choice Service , ĊĠĠĠ Ġval Ġtotal Money Input Service : ĠTotal Money Input Service , ĊĠĠĠ Ġval Ġmin Price Input Service : ĠMin Price Input Service , ĊĠĠĠ Ġval Ġmax Price Input Service : ĠMax Price Input Service , ĊĠĠĠ Ġval Ġprice Unit Choice Service : ĠPrice Unit Choice Service , ĊĠĠĠ Ġval Ġorder Confirm Service : ĠOrder Confirm Service , ĊĠĠĠ Ġval Ġorder Cancel Confirm Service : ĠOrder Cancel Confirm Service , ĊĠĠĠ Ġval Ġinvalid Order State Service : ĠInvalid Order State Service Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlog Ġ= Ġlogger () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġscanner Ġ= ĠScanner ( System .` in `) ĊĠĠĠ Ġprivate Ġvar Ġorder Builder Ġ= ĠOrder Builder () ĊĊĠĠĠ Ġ@ Pre Destroy ĊĠĠĠ Ġfun Ġpre Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġscanner . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute () Ġ= Ġwhen Ġ( order Builder . state ) Ġ{ ĊĠĠĠĠĠĠĠ ĠOrder State . CH OOSE _ TYPE Ġ-> Ġorder Type Choice Service ĊĊĠĠĠĠĠĠĠ ĠOrder State . CH OOSE _ ORDER _ MARK ET Ġ-> Ġorder Market Choice Service ĊĠĠĠĠĠĠĠ ĠOrder State . CH OOSE _ ORDER _ CANCEL _ MARK ET Ġ-> Ġorder Cancel Market Choice Service ĊĊĠĠĠĠĠĠĠ ĠOrder State . BU Y _ OR _ SE LL Ġ-> Ġorder Side Choice Service ĊĊĠĠĠĠĠĠĠ Ġ// Ġorder Ġspecific ĊĠĠĠĠĠĠĠ ĠOrder State . CH OOSE _ SPLIT _ TYPE Ġ-> Ġsplit Type Choice Service ĊĠĠĠĠĠĠĠ ĠOrder State . INPUT _ TOTAL _ M ONE Y Ġ-> Ġtotal Money Input Service ĊĠĠĠĠĠĠĠ ĠOrder State . INPUT _ MIN _ PRICE Ġ-> Ġmin Price Input Service ĊĠĠĠĠĠĠĠ ĠOrder State . INPUT _ MAX _ PRICE Ġ-> Ġmax Price Input Service ĊĠĠĠĠĠĠĠ ĠOrder State . CH OOSE _ PRICE _ UNIT Ġ-> Ġprice Unit Choice Service ĊĊĠĠĠĠĠĠĠ Ġ// Ġconfirm ĊĠĠĠĠĠĠĠ ĠOrder State . CONFIRM _ ORDER Ġ-> Ġorder Confirm Service ĊĠĠĠĠĠĠĠ ĠOrder State . CONFIRM _ ORDER _ CANCEL Ġ-> Ġorder Cancel Confirm Service ĊĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġinvalid Order State Service ĊĠĠĠ Ġ}. execute ( order Builder , Ġscanner ) ĊĊĠĠĠ Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguide (" ìĹĲ ëŁ¬ ëĤ « ëĶ ° : Ġ$ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguide (" ë¬¸ ìłľ ë°ľ ìĥĿ íķľ ê±° Ġê°Ļ ëĶ ° . Ġëĭ¤ ìĭľ Ġì ¸ Ħ ëĿ¼ ìĿ´ ĠìĽĲ íķ´ ìļĶ Ġretry ? Ġ( Y / n )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( scanner . next (). trim () Ġ== Ġ" n ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder Builder . state Ġ= ĠOrder State . BY E ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ