package Ġio . piv otal . cities . web . conversion Ċ Ċ import Ġcom . fasterxml . jackson . core . Json Generator Ċ import Ġcom . fasterxml . jackson . core . Json Parser Ċ import Ġcom . fasterxml . jackson . databind .* Ċ import Ġcom . fasterxml . jackson . databind . annotation . Json Deserialize Ċ import Ġcom . fasterxml . jackson . databind . annotation . Json Serialize Ċ import Ġio . piv otal . cities . domain . location . api . Coordinate Dto ĊĊ Ċ @ Json Serialize ( using Ġ= ĠCoordinate Serializer :: class ) Ċ @ Json Deserialize ( using Ġ= ĠCoordinate Deserializer :: class ) Ċ data Ġclass ĠCoordinate Type ( ĊĠĠĠĠĠĠĠ Ġval Ġlongitude : ĠDouble , ĊĠĠĠĠĠĠĠ Ġval Ġlatitude : ĠDouble ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Dto ( dto : ĠCoordinate Dto ): ĠCoordinate Type Ġ= ĠCoordinate Type ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude Ġ= Ġdto . longitude , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġdto . latitude ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠCoordinate Serializer Ġ: ĠJsonSerializer < Coordinate Type >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue : ĠCoordinate Type ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen : ĠJson Generator ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserializers : ĠSerializer Provider ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( gen Ġ!= Ġnull Ġ&& Ġvalue Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen . write Start Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen . write Number Field (" lat ", Ġvalue . latitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen . write Number Field (" long ", Ġvalue . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen . write End Object () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠCoordinate Deserializer Ġ: ĠJson Deserializer < Coordinate Type ?> () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp : ĠJson Parser ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctxt : ĠDeserial ization Context ?): ĠCoordinate Type ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( p Ġ!= Ġnull Ġ&& Ġctxt Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnode : ĠJsonNode Ġ= Ġp . codec . read Tree ( p ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCoordinate Type ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude Ġ= Ġnode . get (" long "). doubleValue (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġnode . get (" lat "). doubleValue ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ