package Ġbr . com . camunda . example . web . service Ċ Ċ import Ġbr . com . camunda . example . domain . enums . Payment Status Ċ import Ġbr . com . camunda . example . domain . model . Trans ference Ċ import Ġbr . com . camunda . example . domain . service . Trans ference Service Ċ import Ġbr . com . camunda . example . exception . handler . Business Exception Ċ import Ġbr . com . camunda . example . exception . handler . NotFoundException Ċ import Ġbr . com . camunda . example . exception . handler . error . Resource Value Ċ import Ġbr . com . camunda . example . infrastructure . exception . Cam unda Example ErrorCode Ċ import Ġbr . com . camunda . example . repository . Trans ference Repository Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . util .* Ċ Ċ @ Service Ċ class ĠTrans ference ServiceImpl Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġtrans ference Repository : ĠTrans ference Repository Ċ ) Ġ: ĠTrans ference Service Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLog Manager . getLogger ( this . java Class ) ĊĊĠĠĠ Ġoverride Ġfun Ġfind ById ( id : ĠString ): ĠTrans ference Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Trans ference ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave ( trans ference : ĠTrans ference ): ĠTrans ference Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtrans ference Repository . save ( trans ference ) ĊĊĠĠĠĠĠĠĠ Ġlog . debug (" Trans ference Ġsaved Ġin Ġdatabase Ġwith Ġvalues Ġ[ {} ]", Ġresult ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Status And Reason ( id : ĠString , Ġstatus : ĠPayment Status , Ġreason : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . debug ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Trans ference Ġwill Ġbe Ġupdated Ġin Ġdatabase Ġwith Ġid Ġ{} Ġwith Ġstatus Ġ{} Ġand Ġreason ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid , Ġstatus . name , Ġreason ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġupdated Ġ= Ġtrans ference Repository . update Status And Reason ( id Ġ= Ġid , Ġstatus Ġ= Ġstatus , Ġreason Ġ= Ġreason ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( updated Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠBusiness Exception ( Cam unda Example ErrorCode . UPDATE _ TRANSFER ENCE _ NOT _ EXECUT ED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlog . debug (" Trans ference Ġupdated Ġin Ġdatabase Ġwith Ġid Ġ{}", Ġid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Trans ference ( id : ĠString ): ĠTrans ference Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠOptional . of Nullable ( trans ference Repository . findOne ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotFound Exception ( Resource Value ( Trans ference :: class . java , Ġid )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }