package Ġno . nav . hel se . spark el . inst it us j ons op ph old Ċ Ċ import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġjava . time . LocalDate Ċ Ċ class ĠInst it us j ons op ph old peri ode ( json Node : ĠJsonNode ) Ġ{ ĊĠĠĠ Ġval Ġinst it us jon stype Ġ= Ġjson Node [" inst it us jon stype "]. as EnumValue < Inst it us jon stype >() ĊĠĠĠ Ġval Ġk ategori Ġ= Ġjson Node [" kategori "]. as EnumValue < Opp hold stype >() ĊĠĠĠ Ġval Ġstart dat o Ġ= Ġjson Node [" start dat o "]. text Value (). let Ġ{ ĠLocalDate . parse ( it ) Ġ} ĊĠĠĠ Ġval Ġf akt isk Sl ut td ato Ġ= Ġjson Node [" f akt isk Sl ut td ato "] ?. take Unless Ġ{ Ġit . isNull Ġ} ?. text Value ()?. let Ġ{ ĠLocalDate . parse ( it ) Ġ} ĊĊĠĠĠ Ġinternal Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġfun ĠList < Inst it us j ons op ph old peri ode >. fil tr er ( f om : ĠLocalDate , Ġtom : ĠLocalDate ) Ġ= Ġfilter Ġ{ Ġit . overlap per Med ( f om , Ġtom ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġoverlap per Med ( f om : ĠLocalDate , Ġtom : ĠLocalDate ) Ġ= ĊĠĠĠĠĠĠĠ Ġmax Of ( start dat o , Ġf om ) Ġ<= Ġf akt isk Sl ut td ato ?. let Ġ{ Ġmin Of ( it , Ġtom ) Ġ} Ġ?: Ġtom Ċ Ċ } Ċ Ċ enum Ġclass ĠInst it us jon stype ( val Ġbes k riv else : ĠString ) Ġ{ ĊĠĠĠ ĠAS (" A ld ers - Ġog Ġsy keh jem "), ĊĠĠĠ ĠFO (" F eng sel "), ĊĠĠĠ ĠH S (" H else inst it us jon ") Ċ } Ċ Ċ enum Ġclass ĠO pp hold stype ( val Ġbes k riv else : ĠString ) Ġ{ ĊĠĠĠ ĠA (" A ld ers - Ġog Ġsy keh jem "), ĊĠĠĠ ĠD (" Dag pas ient "), ĊĠĠĠ ĠF (" F er ie op ph old "), ĊĠĠĠ ĠH (" Hel d Ã¸ gn pas ient "), ĊĠĠĠ ĠP (" F Ã¸ d sel "), ĊĠĠĠ ĠR (" Op pt re nings inst it us jon "), ĊĠĠĠ ĠS (" Son ings f ange "), ĊĠĠĠ ĠV (" V are tek ts f ange ") Ċ } Ċ Ċ private Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠEnum < T >> ĠJsonNode ?. as EnumValue () Ġ= Ġthis ?. take Unless Ġ{ Ġit . isNull Ġ} ?. text Value ()?. take Unless Ġ{ Ġit Ġ== Ġ"" Ġ} ?. let Ġ{ Ġenum ValueOf < T >( it ) Ġ} Ċ