package Ġde . rich arg h . sandbox . akka json Ċ Ċ import Ġakka . actor . Abstract Actor Ċ import Ġakka . actor . Props Ċ import Ġakka . j api . pf . FI Ċ Ċ internal Ġclass ĠUser Actor : ĠAbstract Actor () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠuserService Ġ= ĠUserService () ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Receive (): ĠAbstract Actor . Receive Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġreceive Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. match ( GetUser Message :: class . java , Ġhandle GetUser ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. match ( Create User Message :: class . java , Ġhandle Create User ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle GetUser () Ġ= ĠFI . Unit Apply < GetUser Message > Ġ{ ĠgetUser Message Ġ-> ĊĠĠĠĠĠĠĠ Ġsender (). tell ( userService . getUser ( getUser Message . userId ), Ġself ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Create User (): ĠFI . Unit Apply < Create User Message > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFI . Unit Apply Ġ{ Ġcreate User Message Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserService . createUser ( createUser Message . user ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender (). tell ( ActionPerformed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format (" User Ġ% s Ġcreated .", Ġcreate User Message . user . name )), Ġself ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġprops (): ĠProps Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProps . create ( User Actor :: class . java ) Ġ{ ĠUser Actor () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠAction Performed ( val Ġaction : ĠString ) Ċ Ċ class ĠGetUser Message ( val ĠuserId : ĠLong ) Ċ Ċ class ĠCreate User Message ( val Ġuser : ĠUser ) Ċ Ċ class ĠUser ( val Ġname : ĠString )