package Ġch . r jen ni . exam scheduler . domain . collections Ċ Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ Ċ internal Ġclass ĠUsername To Dest inations Map Ġ{ ĊĠĠĠ Ġprivate Ġval Ġusername To Dest inations Map : ĠConcurrent HashMap < String , ĠMutable Set < String >> Ġ= ĠConcurrent HashMap () ĊĊĠĠĠ Ġfun ĠisEmpty () Ġ= Ġusername To Dest inations Map . isEmpty () ĊĊĠĠĠ Ġfun Ġclear User And Return Dest inations ( username : ĠString ) Ġ= Ġusername To Dest inations Map . remove ( username ) Ġ?: ĠHashSet () ĊĊĠĠĠ Ġfun Ġis New Destination ForUser ( destination : ĠString , Ġusername : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ! get Paths ForUser ( username ). contains ( destination ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmap Destination To User ( destination : ĠString , Ġusername : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġusername To Dest inations Map . compute If Absent ( username ) Ġ{ ĠHashSet () Ġ}. add ( destination ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Paths ForUser ( username : ĠString ) Ġ= Ġusername To Dest inations Map [ username ] Ġ?: ĠHashSet () ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġusername To Dest inations Map . toString () ĊĠĠĠ Ġ} Ċ } Ċ