package Ġno . nav . f amil ie . ba . so kn ad . api . services . p dl . mapper Ċ Ċ import Ġno . nav . f amil ie . ba . so kn ad . api . clients . p dl . P dl H ent Person Response Ċ import Ġno . nav . f amil ie . ba . so kn ad . api . dom ene . B arn Ċ import Ġno . nav . f amil ie . ba . so kn ad . api . services . p dl . mapper . P dl Mapper . har Person Ad resse B es ky tt else Ċ import Ġno . nav . f amil ie . kon tr ak ter . fel les . person op pl ys ning . B ost ed sad resse Ċ Ċ object ĠP dl B arn Mapper Ġ{ ĊĊĠĠĠ Ġfun Ġbor B arn Med So ek er ( so ek er Ad resse : ĠB ost ed sad resse ?, Ġbar ne Ad ress er : ĠList < B ost ed sad resse >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġad resse List e ( b ost ed sad resse : ĠB ost ed sad resse ): ĠList < Any ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf NotNull ( b ost ed sad resse . mat ri kk el ad resse , Ġb ost ed sad resse . ve gad resse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( so ek er Ad resse Ġ== Ġnull Ġ|| Ġbar ne Ad ress er . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalle Bar nets Ad ress er Ġ= Ġbar ne Ad ress er . flatMap Ġ{ Ġad resse List e ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad resse List e ( so ek er Ad resse ). any Ġ{ Ġalle Bar nets Ad ress er . contains ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmap B arn ( ĊĠĠĠĠĠĠĠ Ġb arn Respons : ĠP dl H ent Person Response , ĊĠĠĠĠĠĠĠ Ġso ek er Ad resse : ĠB ost ed sad resse ?, ĊĠĠĠ Ġ): ĠB arn Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠResult . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb arn Har Ad resse B es ky tt else Ġ= Ġhar Person Ad resse B es ky tt else ( bar n Respons . data . person ?. ad resse bes ky tt else ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB arn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġident Ġ= Ġb arn Respons . data . person ?. fol k ere gister ident ifik ator ?. first ()?. ident ifik as j ons nummer !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav n Ġ= Ġif Ġ( bar n Har Ad resse B es ky tt else ) Ġ{ Ġnull Ġ} Ġelse Ġ{ Ġb arn Respons . data . person . nav n . first OrNull () !!. full t Nav n () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ d sel sd ato Ġ= Ġb arn Respons . data . person . fo ed sel . first OrNull ()?. fo ed sel sd ato , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbor Med S Ã¸ ker Ġ= Ġwhen Ġ( bar n Har Ad resse B es ky tt else ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġbor B arn Med So ek er ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġso ek er Ad resse Ġ= Ġso ek er Ad resse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbar ne Ad ress er Ġ= Ġb arn Respons . data . person . b ost ed sad resse . filter NotNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad resse bes ky tt else Ġ= Ġb arn Har Ad resse B es ky tt else ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. fold ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ Ġit Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Failure Ġ= Ġ{ Ġthrow Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ