package Ġno . nav . sf . p dl Ċ Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġmu . Kotlin Logging Ċ import Ġno . nav . pd ls f . proto . Person Proto Ċ import Ġno . nav . pd ls f . proto . Person Proto . Person Key Ċ Ċ private Ġval Ġlog Ġ= ĠKotlin Logging . logger Ġ{ Ġ} Ċ Ċ @ Serializable Ċ data Ġclass ĠNav n ( ĊĠĠĠ Ġval Ġfor nav n : ĠString ?, ĊĠĠĠ Ġval Ġmel lom nav n : ĠString ?, ĊĠĠĠ Ġval Ġet tern av n : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠAd ress er ( ĊĠĠĠ Ġval Ġv eg ad resse : ĠList < V eg ad resse >, ĊĠĠĠ Ġval Ġmat ri kk el ad resse : ĠList < Mat ri kk el ad resse >, ĊĠĠĠ Ġval Ġut en land sk Ad resse : ĠList < U ten land sk Ad resse >, ĊĠĠĠ Ġval Ġuk j ent B ost ed : ĠList < U kj ent B ost ed > Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠV eg ad resse ( ĊĠĠĠ Ġval Ġkom mun enum mer : ĠString ?, ĊĠĠĠ Ġval Ġad ress enav n : ĠString ?, ĊĠĠĠ Ġval Ġh us nummer : ĠString ?, ĊĠĠĠ Ġval Ġh us bok st av : ĠString ?, ĊĠĠĠ Ġval Ġpost nummer : ĠString ?, ĊĠĠĠ Ġval Ġby de ls nummer : ĠString ?, ĊĠĠĠ Ġval Ġko ord in ater : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠMat ri kk el ad resse ( ĊĠĠĠ Ġval Ġkom mun enum mer : ĠString ?, ĊĠĠĠ Ġval Ġpost nummer : ĠString ?, ĊĠĠĠ Ġval Ġby de ls nummer : ĠString ?, ĊĠĠĠ Ġval Ġko ord in ater : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠU kj ent B ost ed ( ĊĠĠĠ Ġval Ġb ost ed sk om mune : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠU ten land sk Ad resse ( ĊĠĠĠ Ġval Ġad ress enav n Num mer : ĠString ?, ĊĠĠĠ Ġval Ġby g ning Et as je Le ilig het : ĠString ?, ĊĠĠĠ Ġval Ġpost bo ks Num mer Nav n : ĠString ?, ĊĠĠĠ Ġval Ġpost kode : ĠString ?, ĊĠĠĠ Ġval Ġby St ed : ĠString ?, ĊĠĠĠ Ġval Ġregion Dist ri kt Om ra ade : ĠString ?, ĊĠĠĠ Ġval Ġland kode : ĠString ? Ċ ) Ċ Ċ enum Ġclass ĠAd resse Type Ġ{ ĊĠĠĠ ĠV EG AD RES SE , ĊĠĠĠ ĠU KJ ENT BO ST ED , ĊĠĠĠ ĠUT EN LAND S AD RES SE Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠFore l der B arn Rel as jon ( ĊĠĠĠ Ġval Ġrel at ert Pers ons Ident : ĠString ?, ĊĠĠĠ Ġval Ġrel at ert Pers ons Rol le : ĠString ?, ĊĠĠĠ Ġval Ġmin Rol le For Person : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠUtf ly t ting F ra N orge ( ĊĠĠĠ Ġval Ġtil fly t tings land : ĠString ?, ĊĠĠĠ Ġval Ġtil fly t tings st ed IU tl an det : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ sealed Ġclass ĠAd resse Ġ{ ĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġobject ĠMissing Ġ: ĠAd resse () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġobject ĠInvalid Ġ: ĠAd resse () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠEx ist ( ĊĠĠĠĠĠĠĠ Ġval Ġad resse Type : ĠAd resse Type , ĊĠĠĠĠĠĠĠ Ġval Ġad resse : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġpost nummer : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġkom mun enum mer : ĠString ? ĊĠĠĠ Ġ) Ġ: ĠAd resse () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠU kj ent ( ĊĠĠĠĠĠĠĠ Ġval Ġad resse Type : ĠAd resse Type , ĊĠĠĠĠĠĠĠ Ġval Ġb ost eds K om mune : ĠString ? ĊĠĠĠ Ġ) Ġ: ĠAd resse () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠU ten lands ( ĊĠĠĠĠĠĠĠ Ġval Ġad resse Type : ĠAd resse Type , ĊĠĠĠĠĠĠĠ Ġval Ġad resse : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġland kode : ĠString ĊĠĠĠ Ġ) Ġ: ĠAd resse () Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠS ik ker het st ilt ak ( ĊĠĠĠ Ġval Ġbes k riv else : ĠString ?, ĊĠĠĠ Ġval Ġt ilt aks Type : ĠString ?, ĊĠĠĠ Ġ@ Serializable ( with Ġ= ĠI so LocalDate Serializer :: class ) ĊĠĠĠ Ġval Ġgy ld ig F ra Og Med : ĠLocalDate ?, ĊĠĠĠ Ġ@ Serializable ( with Ġ= ĠI so LocalDate Serializer :: class ) ĊĠĠĠ Ġval Ġgy ld ig Til Og Med : ĠLocalDate ?, ĊĠĠĠ Ġval Ġkont akt person Id : ĠString ?, ĊĠĠĠ Ġval Ġkont akt person En het : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠTele fon nummer ( ĊĠĠĠ Ġval Ġland sk ode : ĠString ?, ĊĠĠĠ Ġval Ġnum mer : ĠString ?, ĊĠĠĠ Ġval Ġprior itet : ĠInt Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠIn nf ly t ting Til N orge ( ĊĠĠĠ Ġval Ġfr af ly t tings land : ĠString ?, ĊĠĠĠ Ġval Ġfr af ly t tings st ed IU tl an det : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠS ivil stand ( ĊĠĠĠ Ġval Ġtype : ĠString ?, ĊĠĠĠ Ġ@ Serializable ( with Ġ= ĠI so LocalDate Serializer :: class ) ĊĠĠĠ Ġval Ġgy ld ig F ra Og Med : ĠLocalDate ?, ĊĠĠĠ Ġval Ġrel at ert V ed S ivil stand : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠDo ed sf all ( ĊĠĠĠ Ġ@ Serializable ( with Ġ= ĠI so LocalDate Serializer :: class ) ĊĠĠĠ Ġval Ġdo ed sd ato : ĠLocalDate ?, ĊĠĠĠ Ġval Ġmaster : ĠString ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠFull m akt ( Ġ// ĠTODO ĠDo Ġnot Ġturn Ġany Ġenum Ġrepr . Ġas Ġstrings Ġto Ġanything Ġbut Ġstrings ĊĠĠĠ Ġval Ġmot parts Rol le : ĠString ?, Ġ// ĠRol le Dto ĊĠĠĠ Ġval Ġmot parts Person ident : ĠString ?, ĊĠĠĠ Ġval Ġom ra ader : ĠList < String > Ġ= ĠlistOf (), ĊĠĠĠ Ġ@ Serializable ( with Ġ= ĠI so LocalDate Serializer :: class ) ĊĠĠĠ Ġval Ġgy ld ig F ra Og Med : ĠLocalDate ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Serializable ( with Ġ= ĠI so LocalDate Serializer :: class ) ĊĠĠĠ Ġval Ġgy ld ig Til Og Med : ĠLocalDate ? Ġ= Ġnull Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠV erge ma al E ller Fre mt ids full m akt ( ĊĠĠĠ Ġval Ġtype : ĠString ?, ĊĠĠĠ Ġval Ġem bet e : ĠString ?, ĊĠĠĠ Ġval Ġnav n : ĠNav n ?, ĊĠĠĠ Ġval Ġmot parts Person ident : ĠString ?, ĊĠĠĠ Ġval Ġo mf ang : ĠString ?, ĊĠĠĠ Ġval Ġo mf an get Er In nen Person lig Om ra ade : ĠBoolean ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠIdent ( ĊĠĠĠ Ġval Ġident : ĠString , ĊĠĠĠ Ġval Ġh istor isk : ĠBoolean , ĊĠĠĠ Ġval Ġgrup pe : ĠString , ĊĠĠĠ Ġval Ġmetadata : ĠMetadata ?, ĊĠĠĠ Ġval Ġfol k ere gister metadata : ĠF olk ere gister metadata ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠF olk ere gister ident ifik ator ( ĊĠĠĠ Ġval Ġident ifik as j ons nummer : ĠString , ĊĠĠĠ Ġval Ġtype : ĠString , ĊĠĠĠ Ġval Ġstatus : ĠString , ĊĠĠĠ Ġval Ġmetadata : ĠMetadata ?, ĊĠĠĠ Ġval Ġfol k ere gister metadata : ĠF olk ere gister metadata ? Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠF olk ere gister metadata ( ĊĠĠĠ Ġval Ġaj our hold st id sp unkt : ĠString ?, ĊĠĠĠ Ġval Ġgy ld ig het st id sp unkt : ĠString ?, ĊĠĠĠ Ġval Ġopp ho er st id sp unkt : ĠString ?, ĊĠĠĠ Ġval Ġk ilde : ĠString ?, ĊĠĠĠ Ġval Ġa ars ak : ĠString ? Ċ ) Ċ Ċ val ĠF olk ere gister metadata Null Ġ= ĠF olk ere gister metadata (" NULL ", Ġnull , Ġnull , Ġnull , Ġnull ) Ċ Ċ @ Serializable Ċ data Ġclass ĠMetadata ( ĊĠĠĠ Ġval Ġop pl ys nings Id : ĠString , ĊĠĠĠ Ġval Ġmaster : ĠString , ĊĠĠĠ Ġval Ġh istor isk : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġval Ġend ring er : ĠList < End ring > Ġ= ĠlistOf () Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠEnd ring ( ĊĠĠĠ Ġval Ġtype : ĠString , ĊĠĠĠ Ġval Ġregist r ert : ĠString , ĊĠĠĠ Ġval Ġregist r ert Av : ĠString , ĊĠĠĠ Ġval Ġsystem k ilde : ĠString , ĊĠĠĠ Ġval Ġk ilde : ĠString Ċ ) Ċ Ċ val ĠMetadata Null Ġ= ĠMetadata (" NULL ", Ġ"", Ġtrue , ĠlistOf ()) Ċ Ċ @ Serializable Ċ data Ġclass ĠPerson Sf ( ĊĠĠĠ Ġval Ġid enter : ĠList < Ident >, ĊĠĠĠ Ġval Ġfol k ere gister ident ifik ator : ĠList < F olk ere gister ident ifik ator >, ĊĠĠĠ Ġval Ġak to er Id : ĠString , ĊĠĠĠ Ġval Ġfol k ere gister Id : ĠList < String >, ĊĠĠĠ Ġval Ġnav n : ĠList < Nav n >, ĊĠĠĠ Ġvar Ġfore l der B arn Rel as jon er : ĠList < Fore l der B arn Rel as jon >, ĊĠĠĠ Ġval Ġfol k ere gister person status : ĠList < String >, ĊĠĠĠ Ġval Ġin nf ly t ting Til N orge : ĠList < In nf ly t ting Til N orge >, ĊĠĠĠ Ġval Ġad resse bes ky tt else : ĠList < String >, ĊĠĠĠ Ġval Ġs ik ker het st ilt ak : ĠList < S ik ker het st ilt ak >, ĊĠĠĠ Ġval Ġb ost ed sad resse : ĠAd ress er , ĊĠĠĠ Ġval Ġopp holds ad resse : ĠAd ress er , ĊĠĠĠ Ġval Ġstats b org ers kap : ĠList < String >, ĊĠĠĠ Ġval Ġs ivil stand : ĠList < S ivil stand >, ĊĠĠĠ Ġvar Ġkom mun enum mer F ra Gt : ĠString , ĊĠĠĠ Ġval Ġkom mun enum mer F ra Ad resse : ĠString , ĊĠĠĠ Ġval Ġby de ls nummer F ra Gt : ĠString , ĊĠĠĠ Ġval Ġby de ls nummer F ra Ad resse : ĠString , ĊĠĠĠ Ġval Ġk jo enn : ĠList < String >, ĊĠĠĠ Ġval Ġdo ed sf all : ĠList < Do ed sf all >, ĊĠĠĠ Ġval Ġtele fon nummer : ĠList < Tele fon nummer >, ĊĠĠĠ Ġval Ġutf ly t ting F ra N orge : ĠList < Utf ly t ting F ra N orge >, ĊĠĠĠ Ġval Ġt ales sp ra akt olk : ĠList < String >, ĊĠĠĠ Ġval Ġfull m akt : ĠList < Full m akt >, ĊĠĠĠ Ġval Ġver ge ma al E ller Fre mt ids full m akt : ĠList < V erge ma al E ller Fre mt ids full m akt >, ĊĠĠĠ Ġval Ġfo ed sel sd ato : ĠList < String > Ċ ) Ġ: ĠPerson Base () Ġ{ ĊĊĠĠĠ Ġfun ĠtoJson (): ĠString Ġ= Ġno . nav . sf . library . json . stringify ( serializer (), Ġthis ) ĊĊĠĠĠ Ġfun Ġis Dead (): ĠBoolean Ġ= Ġdo ed sf all . isNotEmpty () Ċ } Ċ Ċ fun ĠPerson Sf . is H ollow State (): ĠBoolean Ġ= Ġ( nav n . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠ Ġfore l der B arn Rel as jon er . isEmpty () Ġ&& Ġfol k ere gister person status . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠ Ġin nf ly t ting Til N orge . isEmpty () Ġ&& Ġad resse bes ky tt else . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠ Ġs ik ker het st ilt ak . isEmpty () Ġ&& Ġb ost ed sad resse . uten land sk Ad resse . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠ Ġb ost ed sad resse . uk j ent B ost ed . isEmpty () Ġ&& Ġb ost ed sad resse . mat ri kk el ad resse . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠ Ġb ost ed sad resse . ve gad resse . isEmpty () Ġ&& Ġopp holds ad resse . uten land sk Ad resse . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠ Ġopp holds ad resse . uk j ent B ost ed . isEmpty () Ġ&& Ġopp holds ad resse . mat ri kk el ad resse . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠ Ġopp holds ad resse . ve gad resse . isEmpty () Ġ&& Ġstats b org ers kap . isEmpty () Ġ&& Ġs ivil stand . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠ Ġk jo enn . isEmpty () Ġ&& Ġdo ed sf all . isEmpty () Ġ&& Ġtele fon nummer . isEmpty () Ġ&& Ġutf ly t ting F ra N orge . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠ Ġt ales sp ra akt olk . isEmpty () Ġ&& Ġfull m akt . isEmpty () Ġ&& Ġver ge ma al E ller Fre mt ids full m akt . isEmpty () Ġ&& Ġfo ed sel sd ato . isEmpty ()) Ċ Ċ @ Serializable Ċ data Ġclass ĠG t Value ( ĊĠĠĠ Ġval Ġak to er Id : ĠString , ĊĠĠĠ Ġval Ġkom mun enum mer F ra Gt : ĠString , ĊĠĠĠ Ġval Ġby de ls nummer F ra Gt : ĠString Ċ ) Ġ: ĠG t Value Base () Ċ Ċ sealed Ġclass ĠPerson Base Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Person T omb stone ( key : ĠByteArray ): ĠPerson Base Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĠPerson Tom best one ( Person Proto . Person Key . parseFrom ( key ). ak to er Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get OrDefault ( Person Protobuf Issue ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠString ?. to LocalDate (): ĠLocalDate ? Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ== Ġnull Ġ|| Ġthis Ġ== Ġ"") Ġnull Ġelse ĠLocalDate . parse ( this , ĠDateTime Formatter . ISO _ DATE ) Ċ Ċ object ĠPerson Invalid Ġ: ĠPerson Base () Ċ object ĠPerson Protobuf Issue Ġ: ĠPerson Base () Ċ Ċ data Ġclass ĠPerson Tom best one ( ĊĠĠĠ Ġval Ġak to er Id : ĠString Ċ ) Ġ: ĠPerson Base () Ġ{ ĊĠĠĠ Ġfun Ġto Person T omb stone Proto Key (): ĠPerson Key Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPerson Key . newBuilder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġak to er Id Ġ= Ġthis @ Person Tom best one . ak to er Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () Ċ } Ċ Ċ sealed Ġclass ĠG t Value Base Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Gt T omb stone ( key : ĠByteArray ): ĠG t Value Base Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĠG t T omb stone ( Person Proto . Person Key . parseFrom ( key ). ak to er Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get OrDefault ( Gt Protobuf Issue ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠG t Protobuf Issue Ġ: ĠG t Value Base () Ċ object ĠG t Invalid Ġ: ĠG t Value Base () Ċ Ċ data Ġclass ĠG t T omb stone ( ĊĠĠĠ Ġval Ġak to er Id : ĠString Ċ ) Ġ: ĠG t Value Base () Ġ{ ĊĠĠĠ Ġfun Ġto Person T omb stone Proto Key (): ĠPerson Key Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPerson Key . newBuilder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġak to er Id Ġ= Ġthis @ Gt T omb stone . ak to er Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () Ċ } Ċ