package Ġio . hol unda . camunda . task pool . sender Ċ Ċ import Ġio . hol unda . camunda . task pool . Task Collector Properties Ċ import Ġio . hol unda . camunda . task pool . api . task .* Ċ import Ġmu . K Logging Ċ import Ġorg . ax on framework . command handling . Command Callback Ċ import Ġorg . ax on framework . command handling . Command Message Ċ import Ġorg . ax on framework . command handling . gateway . Command Gateway Ċ import Ġorg . springframework . context . event . EventListener Ċ import Ġorg . springframework . stereotype . Component ĊĊ Ċ @ Component Ċ class ĠTask Command Sender ( ĊĠ Ġprivate Ġval Ġgateway : ĠCommand Gateway , ĊĠ Ġprivate Ġval Ġproperties : ĠTask Collector Properties Ċ ) Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ: ĠK Logging () ĊĊĠ Ġ@ EventListener ( condition Ġ= Ġ"# command . en ric hed ") ĊĠ Ġfun Ġsend Task Command ( command : ĠAssign Task Command ) Ġ{ ĊĠĠĠ Ġsend ( Create Or Assign Task Command ( ĊĠĠĠĠĠ Ġid Ġ= Ġcommand . id , ĊĠĠĠĠĠ Ġtask Definition Key Ġ= Ġcommand . task Definition Key , ĊĠĠĠĠĠ Ġsource Reference Ġ= Ġcommand . source Reference , ĊĠĠĠĠĠ Ġname Ġ= Ġcommand . name , ĊĠĠĠĠĠ Ġdescription Ġ= Ġcommand . description , ĊĠĠĠĠĠ Ġpriority Ġ= Ġcommand . priority , ĊĠĠĠĠĠ Ġowner Ġ= Ġcommand . owner , ĊĠĠĠĠĠ ĠeventName Ġ= Ġ" assignment ", ĊĠĠĠĠĠ Ġdue Date Ġ= Ġcommand . due Date , ĊĠĠĠĠĠ ĠcreateTime Ġ= Ġcommand . create Time , ĊĠĠĠĠĠ Ġcandidate Users Ġ= Ġcommand . candidate Users , ĊĠĠĠĠĠ Ġcandidate Groups Ġ= Ġcommand . candidate Groups , ĊĠĠĠĠĠ Ġassign ee Ġ= Ġcommand . assign ee , ĊĠĠĠĠĠ Ġpayload Ġ= Ġcommand . payload , ĊĠĠĠĠĠ Ġbusiness Key Ġ= Ġcommand . business Key , ĊĠĠĠĠĠ Ġform Key Ġ= Ġcommand . form Key , ĊĠĠĠĠĠ Ġcorre lations Ġ= Ġcommand . corre lations ĊĠĠĠ Ġ)) ĊĠ Ġ} ĊĊĠ Ġ@ EventListener ( condition Ġ= Ġ"# command . en ric hed ") ĊĠ Ġfun Ġsend Task Command ( command : ĠCreate Task Command ) Ġ{ ĊĠĠĠ Ġsend ( Create Or Assign Task Command ( ĊĠĠĠĠĠ Ġid Ġ= Ġcommand . id , ĊĠĠĠĠĠ Ġtask Definition Key Ġ= Ġcommand . task Definition Key , ĊĠĠĠĠĠ Ġsource Reference Ġ= Ġcommand . source Reference , ĊĠĠĠĠĠ Ġname Ġ= Ġcommand . name , ĊĠĠĠĠĠ Ġdescription Ġ= Ġcommand . description , ĊĠĠĠĠĠ Ġpriority Ġ= Ġcommand . priority , ĊĠĠĠĠĠ Ġowner Ġ= Ġcommand . owner , ĊĠĠĠĠĠ ĠeventName Ġ= Ġ" create ", ĊĠĠĠĠĠ Ġdue Date Ġ= Ġcommand . due Date , ĊĠĠĠĠĠ ĠcreateTime Ġ= Ġcommand . create Time , ĊĠĠĠĠĠ Ġcandidate Users Ġ= Ġcommand . candidate Users , ĊĠĠĠĠĠ Ġcandidate Groups Ġ= Ġcommand . candidate Groups , ĊĠĠĠĠĠ Ġassign ee Ġ= Ġcommand . assign ee , ĊĠĠĠĠĠ Ġpayload Ġ= Ġcommand . payload , ĊĠĠĠĠĠ Ġbusiness Key Ġ= Ġcommand . business Key , ĊĠĠĠĠĠ Ġform Key Ġ= Ġcommand . form Key , ĊĠĠĠĠĠ Ġcorre lations Ġ= Ġcommand . corre lations ĊĠĠĠ Ġ)) ĊĠ Ġ} ĊĊĠ Ġ@ EventListener ( condition Ġ= Ġ"# command . en ric hed ") ĊĠ Ġfun Ġsend Task Command ( command : ĠComplete Task Command ) Ġ{ ĊĠĠĠ Ġsend ( command ) ĊĠ Ġ} ĊĊĠ Ġ@ EventListener ( condition Ġ= Ġ"# command . en ric hed ") ĊĠ Ġfun Ġsend Task Command ( command : ĠDelete Task Command ) Ġ{ ĊĠĠĠ Ġsend ( command ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġsend ( command : ĠAny ) Ġ{ ĊĠĠĠ Ġif Ġ( properties . sender . enabled ) Ġ{ ĊĠĠĠĠĠ Ġgateway . send < Any , ĠAny ? >( command , Ġobject Ġ: ĠCommand Callback < Any , ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( m : ĠCommand Message < out ĠAny >, Ġresult : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Successfully Ġsubmitted Ġcommand Ġ$ command ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( message : ĠCommand Message < out ĠAny > ?, Ġe : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Error Ġsending Ġcommand Ġ$ message ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġlogger . debug (" Would Ġhave Ġsent Ġcommand Ġ$ command ") ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ Ċ } Ċ