package Ġno . nav . hel se . g ren sek omp . web . api . dto . validation Ċ Ċ import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġcom . fasterxml . jackson . databind . node . Null Node Ċ import Ġio . ktor . util .* Ċ import Ġno . nav . hel se . ar be id sg iver . integr as jon er . p dl . P dl H ent Full Person Ċ import Ġno . nav . hel se . g ren sek omp . dom ene . Per i ode Ċ import Ġno . nav . hel se . g ren sek omp . metrics . P DL _ VALID ER ING ER Ċ import Ġno . nav . hel se . g ren sek omp . web . api . dto . Ref us jon sk rav Dto Ċ import Ġorg . val ik tor . Constraint Violation Exception Ċ import Ġorg . val ik tor . Default Constraint Violation ĊĊ Ċ class ĠB os att IN orge Constraint Ġ: ĠCustom Constraint Ċ class ĠN ors k Stats bor ger Constraint Ġ: ĠCustom Constraint Ċ Ċ @ K tor Experimental API Ċ fun Ġval ider P dl B aser te Reg ler ( person Data : ĠP dl H ent Full Person ?, Ġref us jon sk rav : ĠRef us jon sk rav Dto ) Ġ{ ĊĊĠĠĠ Ġfun Ġis Null OrNull Node ( node : ĠJsonNode ?) Ġ= Ġnode Ġ== Ġnull Ġ|| Ġnode Ġis ĠNull Node ĊĊĠĠĠ Ġval Ġb os att IN orge Ġ= Ġperson Data ?. h ent Person ?. b ost ed sad resse ?. any Ġ{ Ġad r Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġhar Kj ent N ors k Address Ġ= Ġ! isNull OrNull Node ( adr . mat ri kk el ad resse ) Ġ|| Ġ! isNull OrNull Node ( adr . ve gad resse ) ĊĠĠĠĠĠĠĠ Ġval Ġer U tv and ret F ra Den ne Address en F Ã¸ r Cutoff Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( adr . gy ld ig Til Og Med Ġ!= Ġnull Ġ&& Ġad r . gy ld ig Til Og Med !!. to LocalDate (). is Before ( Per i ode . ref us jon F ra D ato )) ĊĊĠĠĠĠĠĠĠ Ġval Ġer In nv and ret Til Den ne Address en Et ter Period en Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad r . gy ld ig F ra Og Med Ġ!= Ġnull Ġ&& Ġad r . gy ld ig F ra Og Med !!. to LocalDate (). is After ( ref us jon sk rav . peri ode . tom ) ĊĊĠĠĠĠĠĠĠ Ġhar Kj ent N ors k Address Ġ&& Ġ! er U tv and ret F ra Den ne Address en F Ã¸ r Cutoff Ġ&& Ġ! er In nv and ret Til Den ne Address en Et ter Period en ĊĠĠĠ Ġ} Ġ?: Ġfalse ĊĊĊĠĠĠ Ġif Ġ( bos att IN orge ) Ġ{ ĊĠĠĠĠĠĠĠ ĠP DL _ VALID ER ING ER . labels (" bos att _ i _ nor ge "). inc () ĊĠĠĠĠĠĠĠ Ġthrow ĠConstraint Violation Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Constraint Violation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ident it ets nummer ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraint Ġ= ĠB os att IN orge Constraint (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġref us jon sk rav . ident it ets nummer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġn ors k Stats bor ger Ġ= Ġperson Data ?. h ent Person ?. stats b org ers kap ?. any Ġ{ Ġs Ġ-> Ġs . land Ġ== Ġ" NOR " Ġ} Ġ?: Ġfalse ĊĠĠĠ Ġif Ġ( n ors k Stats bor ger ) Ġ{ ĊĠĠĠĠĠĠĠ ĠP DL _ VALID ER ING ER . labels (" n ors k _ stats bor ger "). inc () ĊĠĠĠĠĠĠĠ Ġthrow ĠConstraint Violation Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Constraint Violation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ident it ets nummer ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraint Ġ= ĠN ors k Stats bor ger Constraint (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġref us jon sk rav . ident it ets nummer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ