package Ġcom . life cl ue . blog . f amp h let Ċ Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . util . concurrent . atomic . Atomic Long Ċ Ċ @ Component Ċ class ĠIn Memory Site Item Store Ġ: ĠSite Item Store Ġ{ ĊĠĠĠ Ġval Ġid : ĠAtomic Long Ġ= ĠAtomic Long ( 1 ) ĊĠĠĠ Ġval Ġstorage : ĠMutable Map < Long , ĠSite Item > Ġ= Ġmutable Map Of () ĊĠĠĠ Ġoverride Ġfun Ġsave ( item : ĠSite Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item . id Ġ< Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . id Ġ= Ġid . get And Increment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstorage [ item . id ] Ġ= Ġitem ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind ById ( id : ĠLong ): ĠSite Item ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstorage [ id ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll (): ĠList < Site Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstorage . values . toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete ById ( id : ĠLong ): ĠSite Item ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstorage . remove ( id ) ĊĠĠĠ Ġ} Ċ }