class ĠNa er ings ber eg ner 2 0 2 1 ( ĊĠĠĠ Ġval Ġna er ings register Mapping : ĠNa er ings register Mapping Ċ ) Ġ: ĠGener ell B ere g ner ( ĊĠĠĠ Ġk alk y let re Ġ= ĠDefault K alk y let re 2 0 2 1 , ĊĠĠĠ Ġxml Data Ġ= Ġna er ings register Mapping . mapping Data [ 2 0 2 1 ] !! , ĊĠĠĠ Ġav le de de F elt Ġ= Ġna er ings register Mapping . av le de de F elt [ 2 0 2 1 ] !! , ĊĠĠĠ Ġfil tr er Input Ġ= Ġfil tr er Input , ĊĠĠĠ Ġfil tr er Result at Ġ= Ġfil tr er Result at Ċ ) Ċ Ċ internal Ġval Ġfil tr er Input : Ġ( Gener isk Mode ll ) Ġ-> ĠGener isk Mode ll Ġ= Ġ{ Ġfil tr er B ort S pes ifik ke T yper F ra Input ( it ) Ġ} Ċ Ċ internal Ġval Ġfil tr er Result at : Ġ( Gener isk Mode ll ) Ġ-> ĠGener isk Mode ll Ġ= Ġ{ Ġfil tr er B ort For del B ere g net In n te kt ( it ) Ġ} Ċ Ċ private Ġfun Ġfil tr er B ort S pes ifik ke T yper F ra Input ( gener isk Mode ll : ĠGener isk Mode ll ): ĠGener isk Mode ll Ġ{ ĊĠĠĠ Ġval Ġre gn sk aps P lik type Ġ= Ġgener isk Mode ll . grup pe ( vir ks om het . grup pe ). f elt ( vir ks om het . reg n sk ap sp li kt stype . key ). ver di () ĊĠĠĠ Ġval Ġbal an se Ġ= Ġbal an se ver di For An leg g sm id del . bal an se ver di . fore kom st Type [ 1 ] ĊĠĠĠ Ġval Ġe gen kap ital Type Ġ= Ġe gen kap ital . kap ital . fore kom st Type [ 1 ] ĊĠĠĠ Ġval Ġan nen Dr ifts inn te kt Type Ġ= Ġan nen Dr ifts inn te kt . inn te kt . fore kom st Type [ 1 ] ĊĠĠĠ Ġval Ġan nen Dr ifts k ost nad Type Ġ= Ġan nen Dr ifts k ost nad . k ost nad . fore kom st Type [ 1 ] ĊĠĠĠ Ġval Ġan leg g sm id del type No ek kel Ġ= Ġbal an se ver di For An leg g sm id del . bal an se ver di . type . key ĊĠĠĠ Ġval Ġe gen kap ital No ek kel Ġ= Ġe gen kap ital . kap ital . type . key ĊĠĠĠ Ġval Ġand re Dr ifts inn tek ter No ek kel Ġ= Ġan nen Dr ifts inn te kt . inn te kt . type . key ĊĠĠĠ Ġval Ġan nen Dr ifts k ost nad No ek kel Ġ= Ġan nen Dr ifts k ost nad . k ost nad . type . key ĊĠĠĠ Ġif Ġ( reg n sk aps P lik type Ġ== Ġ" 2 ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult at reg n sk ape t T yper Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . ann en Dr ifts k ost nad . kode _ 7 0 9 9 . kode , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġfil tr er B ort An nen Dr ifts k ost nad Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGener isk Mode ll . merge ( gener isk Mode ll . gr upper ( ann en Dr ifts k ost nad . fore kom st Type [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġresult at reg n sk ape t T yper . contains ( it . ver di For ( ann en Dr ifts k ost nad No ek kel )) Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġgener isk Mode ll ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fj ern F el ter ( fil tr er B ort An nen Dr ifts k ost nad ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġan leg g sm id del T yper Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 0 8 0 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 1 0 5 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 1 1 5 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 1 1 7 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 1 2 0 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 2 0 5 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 2 2 1 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 2 2 5 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 2 3 8 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 2 3 9 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 2 8 0 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . bal an se ver di For An leg g sm id del . kode _ 1 2 9 6 . kode , ĊĠĠĠ Ġ) ĊĠĠĠ Ġval Ġe gen kap ital T yper Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . e gen kap ital . kode _ 2 0 9 5 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . e gen kap ital . kode _ 2 0 9 6 . kode , ĊĠĠĠ Ġ) ĊĠĠĠ Ġval Ġresult at reg n sk ape t T yper Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . ann en Dr ifts inn te kt . kode _ 3 8 9 0 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . ann en Dr ifts inn te kt . kode _ 3 8 9 5 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . ann en Dr ifts inn te kt . kode _ 3 9 1 0 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . ann en Dr ifts k ost nad . kode _ 6 0 0 0 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . ann en Dr ifts k ost nad . kode _ 7 0 9 9 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . ann en Dr ifts k ost nad . kode _ 7 8 9 0 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . ann en Dr ifts k ost nad . kode _ 7 9 1 1 . kode , ĊĠĠĠĠĠĠĠ Ġresult at reg n sk ap Og Bal an se _ 2 0 2 1 . ann en Dr ifts k ost nad . kode _ 7 9 1 0 . kode , ĊĠĠĠ Ġ) ĊĠĠĠ Ġval Ġfil tr er B ort An leg g sm id ler Ġ= ĠGener isk Mode ll . merge ( gener isk Mode ll . gr upper ( bal an se ) ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġan leg g sm id del T yper . contains ( it . ver di For ( an leg g sm id del type No ek kel )) Ġ}) ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . key Ġ!= Ġbal an se ver di For An leg g sm id del . bal an se ver di . ek sk lu der es F ra Sk at te meld ingen . key Ġ} ĊĠĠĠ Ġval Ġfil tr er B ort E gen kap ital Ġ= ĠGener isk Mode ll . merge ( gener isk Mode ll . gr upper ( e gen kap ital Type ) ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġe gen kap ital T yper . contains ( it . ver di For ( e gen kap ital No ek kel )) Ġ}) ĊĠĠĠ Ġval Ġfil tr er B ort An nen Dr ifts inn te kt Ġ= ĠGener isk Mode ll . merge ( gener isk Mode ll . gr upper ( ann en Dr ifts inn te kt Type ) ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġresult at reg n sk ape t T yper . contains ( it . ver di For ( andre Dr ifts inn tek ter No ek kel )) Ġ}) ĊĠĠĠ Ġval Ġfil tr er B ort An nen Dr ifts k ost nad Ġ= ĠGener isk Mode ll . merge ( gener isk Mode ll . gr upper ( ann en Dr ifts k ost nad Type ) ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġresult at reg n sk ape t T yper . contains ( it . ver di For ( ann en Dr ifts k ost nad No ek kel )) Ġ}) ĊĠĠĠ Ġreturn Ġgener isk Mode ll ĊĠĠĠĠĠĠĠ Ġ. fj ern F el ter ( fil tr er B ort An leg g sm id ler ) ĊĠĠĠĠĠĠĠ Ġ. fj ern F el ter ( fil tr er B ort E gen kap ital ) ĊĠĠĠĠĠĠĠ Ġ. fj ern F el ter ( fil tr er B ort An nen Dr ifts inn te kt ) ĊĠĠĠĠĠĠĠ Ġ. fj ern F el ter ( fil tr er B ort An nen Dr ifts k ost nad ) Ċ } Ċ Ċ private Ġfun Ġfil tr er B ort For del B ere g net In n te kt ( gm : ĠGener isk Mode ll ): ĠGener isk Mode ll Ġ{ ĊĠĠĠ Ġval Ġresult at Ġ= Ġgm . ver di For ( sk at te mess ig Result at . be lo ep . key ) Ġ?: Ġgm . ver di For ( a ars result at . be lo ep . key ) ĊĠĠĠ Ġreturn Ġif ( result at Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe ks ist eren de For delt B ere g net Na er ings inn te kt F el ter Ġ= Ġgm . gr upper ( for delt B ere g net Na er ings inn te kt . fore kom st Type [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. stream () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ( Gener isk Mode ll . collector F ra Gm ()) ĊĠĠĠĠĠĠĠ Ġval Ġe ks ist eren de For delt B ere g net Person inn te kt F el ter Ġ= Ġgm . gr upper ( for delt B ere g net Person inn te kt . fore kom st Type [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. stream () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ( Gener isk Mode ll . collector F ra Gm ()) ĊĠĠĠĠĠĠĠ Ġgm . fj ern F el ter ( eks ist eren de For delt B ere g net Na er ings inn te kt F el ter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fj ern F el ter ( eks ist eren de For delt B ere g net Person inn te kt F el ter ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġgm ĊĠĠĠ Ġ} Ċ Ċ } Ċ