/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . ĠUniversity Ġof ĠApp lied ĠSci ences Ġand ĠAr ts ĠNorth west ern ĠSw it zer land ĠF HN W . Ċ Ġ* ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ package Ġch . f hn w . dig ib p . external . client Ċ Ċ import Ġorg . camunda . bpm . client . External Task Client Ċ import Ġorg . camunda . bpm . client . task . External Task Ċ import Ġorg . camunda . bpm . client . task . External Task Service Ċ import Ġorg . camunda . bpm . engine . variable . value . Typed Value Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . util .* Ċ import Ġjavax . annotation . Post Construct Ċ Ċ @ Component Ċ class ĠSur prise Menu Client Ġ{ ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġvar Ġclient : ĠExternal Task Client ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Post Construct ĊĠĠĠ Ġprivate Ġfun Ġsubscribe Topics () Ġ{ ĊĠĠĠĠĠĠĠ Ġclient !!. subscribe (" Get Sur prise Menu ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tenantId In (" show case ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. handler Ġ{ Ġexternal Task : ĠExternal Task , Ġexternal Task Service : ĠExternal Task Service Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġve get arian Guest s Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġve get arian Guest s Value Ġ= Ġexternal Task . get Variable Typed < Typed Value >(" ve get arian ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ve get arian Guest s Value Ġ!= Ġnull ) Ġve get arian Guest s Ġ= Ġexternal Task . get Variable Typed < Typed Value >(" ve get arian "). value Ġas ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmenu : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Ġ= Ġif Ġ( ve get arian Guest s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . asList (" p izza ", Ġ" past a ", Ġ" ver d ura ")[ Random (). nextInt ( 3 )] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . asList (" p izza ", Ġ" past a ", Ġ" car ne ", Ġ" ver d ura ")[ Random (). nextInt ( 4 )] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvariables : ĠMutable Map < String , ĠAny > Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvariables [" menu "] Ġ= Ġmenu ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Task Service . complete ( external Task , Ġvariables ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Task Service . handle B pmn Error ( external Task , Ġ" failed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. open () ĊĠĠĠ Ġ} Ċ }