package Ġbr . com . xy inc . device platform . services . impl Ċ Ċ import Ġbr . com . xy inc . device platform . documents . Point Of Interest Ċ import Ġbr . com . xy inc . device platform . repositories . Points Repositories Ċ import Ġbr . com . xy inc . device platform . services . PO Is Service Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ @ Service Ċ class ĠPO Is ServiceImpl Ġ( val Ġpoint Repository : ĠPoints Repositories ) Ġ: ĠPO Is Service { ĊĊĠĠĠ Ġoverride Ġfun Ġpersist Point ( PO Is : ĠPoint Of Interest ): ĠPoint Of Interest Ġ= Ġpoint Repository . save ( PO Is ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Point By Coordinate ( poi X : ĠInt , Ġpo i Y : ĠInt ): ĠPoint Of Interest ? Ġ= Ġpoint Repository . findBy Coordinate ( poi X , Ġpo i Y ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Point ByName ( name : ĠString ): ĠPoint Of Interest ? Ġ= Ġpoint Repository . find ByName ( name ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Points (): ĠList < Point Of Interest > Ġ= Ġpoint Repository . findAll () ĊĊĠĠĠ Ġoverride Ġfun Ġget Adjacent Points ( coord X : ĠInt , Ġcoord Y : ĠInt , Ġd : ĠInt ): ĠList < Point Of Interest >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġall Points Ġ= Ġthis . getAll Points (). to Mutable List () ĊĠĠĠĠĠĠĠ Ġval Ġpoints : ĠMutable List < Point Of Interest > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar Ġdist : ĠDouble ĊĊĠĠĠĠĠĠĠ Ġfor ( p Ġin Ġall Points ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdist Ġ= ĠMath . sqrt ( Math . pow (( p . poi _ x Ġ- Ġcoord X ). toDouble (), Ġ 2 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ ĠMath . pow (( p . poi _ y Ġ- Ġcoord Y ). toDouble (), Ġ 2 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( dist Ġ<= Ġd ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoints . add ( p ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġpoints . toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Point ( poi X : ĠInt , Ġpo i Y : ĠInt ) Ġ= Ġpoint Repository . delete ( point Repository . findBy Coordinate ( poi X , Ġpo i Y )) Ċ Ċ } Ċ