Skip to content

Commit ed58955

Browse files
Bump familie-felles (#5111)
### 💰 Hva skal gjøres, og hvorfor? Favro: NAV-23270 Bumper tidslinje fra familie-felles og erstatter metoder i ba-sak med metoder fra familie-felles
1 parent 35ed714 commit ed58955

24 files changed

+77
-185
lines changed

pom.xml

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<sha1/>
2525
<changelist>-SNAPSHOT</changelist>
2626
<prosessering.version>2.20250219093533_62416e5</prosessering.version>
27-
<felles.version>3.20250220215513_776c72f</felles.version>
27+
<felles.version>3.20250225161902_197977b</felles.version>
2828
<eksterne-kontrakter-bisys.version>2.0_20230214104704_706e9c0</eksterne-kontrakter-bisys.version>
2929
<felles-kontrakter.version>3.0_20250224083824_7fcdc47</felles-kontrakter.version>
3030
<familie.kontrakter.saksstatistikk>2.0_20230214104704_706e9c0</familie.kontrakter.saksstatistikk>
@@ -313,7 +313,6 @@
313313
<dependency>
314314
<groupId>no.nav.familie.felles</groupId>
315315
<artifactId>valutakurs-klient</artifactId>
316-
<version>3.20250225154542_d0cf76b</version> <!-- Slett linje så straks tidslinjer er fikset -->
317316
</dependency>
318317
<dependency>
319318
<groupId>no.nav.familie.felles</groupId>

src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/behandlingstema/BehandlingstemaService.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelTilkjentYtelseReposito
1212
import no.nav.familie.ba.sak.kjerne.eøs.felles.BehandlingId
1313
import no.nav.familie.ba.sak.kjerne.eøs.vilkårsvurdering.VilkårsvurderingTidslinjeService
1414
import no.nav.familie.ba.sak.kjerne.logg.LoggService
15-
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.verdiPåTidspunkt
1615
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Regelverk
1716
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår
1817
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.VilkårsvurderingRepository
18+
import no.nav.familie.tidslinje.utvidelser.verdiPåTidspunkt
1919
import org.springframework.stereotype.Service
2020
import java.time.LocalDate
2121

src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandlingsresultat/BehandlingsresultatValideringUtils.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import no.nav.familie.ba.sak.kjerne.personident.Aktør
1818
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.beskjærTilOgMed
1919
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.PersonResultat
2020
import no.nav.familie.tidslinje.Tidslinje
21-
import no.nav.familie.tidslinje.outerJoin
21+
import no.nav.familie.tidslinje.utvidelser.outerJoin
2222
import no.nav.familie.tidslinje.utvidelser.tilPerioderIkkeNull
2323
import java.time.YearMonth
2424

src/main/kotlin/no/nav/familie/ba/sak/kjerne/beregning/AndelTilkjentYtelseMedEndretUtbetalingGenerator.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import no.nav.familie.ba.sak.kjerne.beregning.domene.TilkjentYtelse
1010
import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType
1111
import no.nav.familie.ba.sak.kjerne.beregning.domene.medEndring
1212
import no.nav.familie.ba.sak.kjerne.personident.Aktør
13-
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.mapVerdiNullable
1413
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.ZipPadding
1514
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.zipMedNeste
1615
import no.nav.familie.tidslinje.Periode
1716
import no.nav.familie.tidslinje.Tidslinje
17+
import no.nav.familie.tidslinje.mapVerdi
1818
import no.nav.familie.tidslinje.tilTidslinje
1919
import no.nav.familie.tidslinje.utvidelser.filtrerIkkeNull
2020
import no.nav.familie.tidslinje.utvidelser.kombinerMed
@@ -152,7 +152,7 @@ object AndelTilkjentYtelseMedEndretUtbetalingGenerator {
152152
internal fun Tidslinje<AndelMedEndretUtbetalingForTidslinje>.slåSammenEtterfølgende0krAndelerPgaSammeEndretAndel() =
153153
this
154154
.zipMedNeste(ZipPadding.FØR)
155-
.mapVerdiNullable {
155+
.mapVerdi {
156156
val forrigeAndelMedEndring = it?.first
157157
val nåværendeAndelMedEndring = it?.second
158158

src/main/kotlin/no/nav/familie/ba/sak/kjerne/beregning/TilkjentYtelseValidering.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.Måned
3434
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.tilYearMonth
3535
import no.nav.familie.ba.sak.kjerne.tidslinje.tilTidslinje
3636
import no.nav.familie.ba.sak.kjerne.tidslinje.transformasjon.map
37-
import no.nav.familie.tidslinje.outerJoin
37+
import no.nav.familie.tidslinje.utvidelser.outerJoin
3838
import no.nav.familie.tidslinje.utvidelser.tilPerioder
3939
import no.nav.familie.tidslinje.utvidelser.tilPerioderIkkeNull
4040
import java.math.BigDecimal

src/main/kotlin/no/nav/familie/ba/sak/kjerne/beregning/UtvidetBarnetrygdUtil.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelTilkjentYtelseMedEndre
1111
import no.nav.familie.ba.sak.kjerne.beregning.domene.EndretUtbetalingAndelMedAndelerTilkjentYtelse
1212
import no.nav.familie.ba.sak.kjerne.beregning.domene.TilkjentYtelse
1313
import no.nav.familie.ba.sak.kjerne.personident.Aktør
14-
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.mapVerdiNullable
1514
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.VilkårsvurderingForskyvningUtils.lagForskjøvetFamilieFellesTidslinjeForOppfylteVilkår
1615
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.PersonResultat
1716
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.UtdypendeVilkårsvurdering
1817
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår
1918
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.VilkårResultat
2019
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkårsvurdering
21-
import no.nav.familie.tidslinje.leftJoin
20+
import no.nav.familie.tidslinje.mapVerdi
21+
import no.nav.familie.tidslinje.utvidelser.leftJoin
2222
import no.nav.familie.tidslinje.Tidslinje as FamilieFellesTidslinje
2323

2424
object UtvidetBarnetrygdUtil {
@@ -59,7 +59,7 @@ object UtvidetBarnetrygdUtil {
5959
personResultat.aktør to
6060
personResultat.vilkårResultater
6161
.lagForskjøvetFamilieFellesTidslinjeForOppfylteVilkår(Vilkår.BOR_MED_SØKER)
62-
.mapVerdiNullable { vilkårResultat ->
62+
.mapVerdi { vilkårResultat ->
6363
vilkårResultat?.utdypendeVilkårsvurderinger?.none {
6464
it in
6565
listOf(

src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtil.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.beskj
4747
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.mapIkkeNull
4848
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.utils.splitPerMåned
4949
import no.nav.familie.ba.sak.kjerne.vedtak.domene.VedtaksperiodeMedBegrunnelser
50-
import no.nav.familie.tidslinje.outerJoin
50+
import no.nav.familie.tidslinje.utvidelser.outerJoin
5151
import no.nav.familie.tidslinje.utvidelser.tilPerioder
5252
import tilLandNavn
5353
import java.time.LocalDate

src/main/kotlin/no/nav/familie/ba/sak/kjerne/eøs/differanseberegning/Differanseberegning.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.matematikk.sum
2929
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.filtrerHverKunVerdi
3030
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.PersonResultat
3131
import no.nav.familie.tidslinje.Tidslinje
32-
import no.nav.familie.tidslinje.leftJoin
33-
import no.nav.familie.tidslinje.outerJoin
32+
import no.nav.familie.tidslinje.utvidelser.leftJoin
33+
import no.nav.familie.tidslinje.utvidelser.outerJoin
3434
import java.math.BigDecimal
3535
import java.math.MathContext
3636

src/main/kotlin/no/nav/familie/ba/sak/kjerne/eøs/endringsabonnement/TilpassKompetanserService.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ import no.nav.familie.ba.sak.kjerne.eøs.utbetaling.UtbetalingTidslinjeService
1717
import no.nav.familie.ba.sak.kjerne.eøs.vilkårsvurdering.RegelverkResultat
1818
import no.nav.familie.ba.sak.kjerne.eøs.vilkårsvurdering.VilkårsvurderingTidslinjeService
1919
import no.nav.familie.ba.sak.kjerne.personident.Aktør
20-
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.mapVerdiNullable
2120
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.forlengFremtidTilUendelig
2221
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Regelverk
2322
import no.nav.familie.tidslinje.Tidslinje
24-
import no.nav.familie.tidslinje.leftJoin
25-
import no.nav.familie.tidslinje.outerJoin
23+
import no.nav.familie.tidslinje.mapVerdi
2624
import no.nav.familie.tidslinje.tomTidslinje
2725
import no.nav.familie.tidslinje.utvidelser.filtrer
2826
import no.nav.familie.tidslinje.utvidelser.filtrerIkkeNull
2927
import no.nav.familie.tidslinje.utvidelser.kombinerMed
28+
import no.nav.familie.tidslinje.utvidelser.leftJoin
29+
import no.nav.familie.tidslinje.utvidelser.outerJoin
3030
import org.springframework.stereotype.Service
3131
import org.springframework.transaction.annotation.Transactional
3232
import java.time.YearMonth
@@ -157,7 +157,7 @@ fun VilkårsvurderingTidslinjeService.hentBarnasRegelverkResultatTidslinjer(beha
157157
private fun Map<Aktør, Tidslinje<RegelverkResultat>>.tilBarnasEøsRegelverkTidslinjer(): Map<Aktør, Tidslinje<Regelverk>> =
158158
this.mapValues { (_, regelverkResultatTidslinje) ->
159159
regelverkResultatTidslinje
160-
.mapVerdiNullable { it?.regelverk }
160+
.mapVerdi { it?.regelverk }
161161
.filtrer { it == Regelverk.EØS_FORORDNINGEN }
162162
.filtrerIkkeNull()
163163
}

src/main/kotlin/no/nav/familie/ba/sak/kjerne/eøs/endringsabonnement/TilpassUtenlandskePeriodebeløpTilKompetanserService.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ import no.nav.familie.ba.sak.kjerne.eøs.utenlandskperiodebeløp.UtenlandskPerio
1717
import no.nav.familie.ba.sak.kjerne.personident.Aktør
1818
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.forlengFremtidTilUendelig
1919
import no.nav.familie.tidslinje.Tidslinje
20-
import no.nav.familie.tidslinje.outerJoin
2120
import no.nav.familie.tidslinje.utvidelser.filtrer
21+
import no.nav.familie.tidslinje.utvidelser.outerJoin
2222
import org.springframework.stereotype.Service
2323
import org.springframework.transaction.annotation.Transactional
2424
import java.time.YearMonth

src/main/kotlin/no/nav/familie/ba/sak/kjerne/eøs/endringsabonnement/TilpassValutakurserTilUtenlandskePeriodebeløpService.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import no.nav.familie.ba.sak.kjerne.eøs.felles.medBehandlingId
1313
import no.nav.familie.ba.sak.kjerne.eøs.utenlandskperiodebeløp.UtenlandskPeriodebeløp
1414
import no.nav.familie.ba.sak.kjerne.eøs.valutakurs.Valutakurs
1515
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.forlengFremtidTilUendelig
16-
import no.nav.familie.tidslinje.outerJoin
16+
import no.nav.familie.tidslinje.utvidelser.outerJoin
1717
import org.springframework.stereotype.Service
1818
import org.springframework.transaction.annotation.Transactional
1919
import java.time.YearMonth

src/main/kotlin/no/nav/familie/ba/sak/kjerne/eøs/vilkårsvurdering/VilkårsvurderingTidslinjeService.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ package no.nav.familie.ba.sak.kjerne.eøs.vilkårsvurdering
22

33
import no.nav.familie.ba.sak.kjerne.eøs.felles.BehandlingId
44
import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersongrunnlagService
5-
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.mapVerdiNullable
65
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.VilkårsvurderingService
76
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.UtdypendeVilkårsvurdering
87
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Vilkår
98
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.VilkårsvurderingRepository
109
import no.nav.familie.tidslinje.Tidslinje
10+
import no.nav.familie.tidslinje.mapVerdi
1111
import org.springframework.stereotype.Service
1212
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.VilkårsvurderingForskyvningUtils.lagForskjøvetFamilieFellesTidslinjeForOppfylteVilkår as lagForskjøvetTidslinjeForOppfylteVilkår
1313

@@ -46,7 +46,7 @@ class VilkårsvurderingTidslinjeService(
4646
val erAnnenForelderOmfattetAvNorskLovgivingTidslinje =
4747
søkerPersonresultater.vilkårResultater
4848
.lagForskjøvetTidslinjeForOppfylteVilkår(Vilkår.BOSATT_I_RIKET)
49-
.mapVerdiNullable { it?.utdypendeVilkårsvurderinger?.contains(UtdypendeVilkårsvurdering.ANNEN_FORELDER_OMFATTET_AV_NORSK_LOVGIVNING) }
49+
.mapVerdi { it?.utdypendeVilkårsvurderinger?.contains(UtdypendeVilkårsvurdering.ANNEN_FORELDER_OMFATTET_AV_NORSK_LOVGIVNING) }
5050
return erAnnenForelderOmfattetAvNorskLovgivingTidslinje
5151
}
5252
}

src/main/kotlin/no/nav/familie/ba/sak/kjerne/eøs/vilkårsvurdering/rest/RestTidslinjer.kt

+6-7
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@ import no.nav.familie.ba.sak.kjerne.autovedtak.fødselshendelse.Resultat
66
import no.nav.familie.ba.sak.kjerne.eøs.vilkårsvurdering.VilkårRegelverkResultat
77
import no.nav.familie.ba.sak.kjerne.eøs.vilkårsvurdering.VilkårsvurderingTidslinjer
88
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.kombinerUtenNull
9-
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.mapVerdiNullable
109
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.beskjærTilOgMedEtter
11-
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.tilDag
1210
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.Regelverk
1311
import no.nav.familie.tidslinje.PRAKTISK_TIDLIGSTE_DAG
1412
import no.nav.familie.tidslinje.Tidslinje
1513
import no.nav.familie.tidslinje.beskjærEtter
1614
import no.nav.familie.tidslinje.filtrerIkkeNull
15+
import no.nav.familie.tidslinje.mapVerdi
1716
import no.nav.familie.tidslinje.utvidelser.tilPerioder
1817
import java.time.LocalDate
1918

@@ -35,18 +34,18 @@ fun VilkårsvurderingTidslinjer.tilRestTidslinjer(): RestTidslinjer {
3534
vilkårTidslinjer =
3635
it.value.vilkårsresultatTidslinjer.map {
3736
it
38-
.beskjærEtter(erUnder18årTidslinje.tilDag())
37+
.beskjærEtter(erUnder18årTidslinje)
3938
.tilRestTidslinje()
4039
},
4140
oppfyllerEgneVilkårIKombinasjonMedSøkerTidslinje =
4241
it.value
4342
.regelverkResultatTidslinje
44-
.mapVerdiNullable { it?.resultat }
43+
.mapVerdi { it?.resultat }
4544
.beskjærEtter(erUnder18årTidslinje)
4645
.tilRestTidslinje(),
4746
regelverkTidslinje =
4847
it.value.regelverkResultatTidslinje
49-
.mapVerdiNullable { it?.regelverk }
48+
.mapVerdi { it?.regelverk }
5049
.beskjærEtter(erUnder18årTidslinje)
5150
.tilRestTidslinje(),
5251
)
@@ -56,13 +55,13 @@ fun VilkårsvurderingTidslinjer.tilRestTidslinjer(): RestTidslinjer {
5655
vilkårTidslinjer =
5756
søkersTidslinje.vilkårsresultatTidslinjer.map {
5857
it
59-
.beskjærTilOgMedEtter(erNoenAvBarnaMellom0Og18ÅrTidslinje.tilDag())
58+
.beskjærTilOgMedEtter(erNoenAvBarnaMellom0Og18ÅrTidslinje)
6059
.tilRestTidslinje()
6160
},
6261
oppfyllerEgneVilkårTidslinje =
6362
søkersTidslinje
6463
.regelverkResultatTidslinje
65-
.mapVerdiNullable { it?.resultat }
64+
.mapVerdi { it?.resultat }
6665
.beskjærTilOgMedEtter(erNoenAvBarnaMellom0Og18ÅrTidslinje)
6766
.tilRestTidslinje(),
6867
),

src/main/kotlin/no/nav/familie/ba/sak/kjerne/tidslinjefamiliefelles/komposisjon/TidslinjeJoin.kt

-26
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,6 @@ package no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon
22

33
import no.nav.familie.tidslinje.Tidslinje
44
import no.nav.familie.tidslinje.tomTidslinje
5-
import no.nav.familie.tidslinje.utvidelser.kombinerMed
6-
7-
/**
8-
* Extension-metode for å kombinere to nøkkel-verdi-map'er der verdiene er tidslinjer
9-
* Nøkkelen må være av samme type K
10-
* Verdiene i tidslinjene i map'en på venstre side må alle være av typen V
11-
* Verdiene i tidslinjene i map'en på høyre side må alle være av typen H
12-
* Kombinator-funksjonen kalles med verdiene av fra venstre og høyre tidslinje for samme nøkkel og tidspunkt.
13-
* <null> blir sendt som verdier hvis venstre, høyre eller begge tidslinjer mangler verdi for et tidspunkt
14-
* Resultatet er en ny map der nøklene er av type K, og tidslinjene har innhold av typen (nullable) R.
15-
* Bare nøkler som finnes i begge map'ene vil finnes i den resulterende map'en
16-
*/
17-
fun <K, V, H, R> Map<K, Tidslinje<V>>.join(
18-
yreTidslinjer: Map<K, Tidslinje<H>>,
19-
kombinator: (V?, H?) -> R?,
20-
): Map<K, Tidslinje<R>> {
21-
val venstreTidslinjer = this
22-
val alleNøkler = venstreTidslinjer.keys.intersect(høyreTidslinjer.keys)
23-
24-
return alleNøkler.associateWith { nøkkel ->
25-
val venstreTidslinje = venstreTidslinjer.getOrDefault(nøkkel, tomTidslinje())
26-
val høyreTidslinje = høyreTidslinjer.getOrDefault(nøkkel, tomTidslinje())
27-
28-
venstreTidslinje.kombinerMed(høyreTidslinje, kombinator)
29-
}
30-
}
315

326
/**
337
* Extension-metode for å kombinere to nøkkel-verdi-map'er der verdiene er tidslinjer

src/main/kotlin/no/nav/familie/ba/sak/kjerne/tidslinjefamiliefelles/komposisjon/TidslinjeKombinator.kt

+4-37
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ package no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon
22

33
import no.nav.familie.tidslinje.Null
44
import no.nav.familie.tidslinje.Tidslinje
5-
import no.nav.familie.tidslinje.Udefinert
65
import no.nav.familie.tidslinje.Verdi
76
import no.nav.familie.tidslinje.tilPeriodeVerdi
87
import no.nav.familie.tidslinje.utvidelser.biFunksjon
8+
import no.nav.familie.tidslinje.utvidelser.kombiner
99
import no.nav.familie.tidslinje.utvidelser.kombinerMed
10-
import no.nav.familie.tidslinje.utvidelser.map
11-
import no.nav.familie.tidslinje.utvidelser.slåSammen
1210
import no.nav.familie.tidslinje.utvidelser.trim
1311

1412
/**
@@ -44,7 +42,7 @@ fun <V, H, R> Tidslinje<V>.kombinerUtenNullMed(
4442
*/
4543
fun <V, R> Collection<Tidslinje<V>>.kombinerUtenNull(
4644
listeKombinator: (Iterable<V>) -> R?,
47-
): Tidslinje<R> = kombinerNullableKombinator { it.filterNotNull().let(listeKombinator) }
45+
): Tidslinje<R> = kombiner { it.filterNotNull().let(listeKombinator) }
4846

4947
/**
5048
* Extension-metode for å kombinere liste av tidslinjer
@@ -57,15 +55,15 @@ fun <V, R> Collection<Tidslinje<V>>.kombinerUtenNull(
5755
*/
5856
fun <V, R> Collection<Tidslinje<V>>.kombinerUtenNullOgIkkeTom(
5957
listeKombinator: (Iterable<V>) -> R?,
60-
): Tidslinje<R> = kombinerNullableKombinator { it.filterNotNull().takeIf { it.isNotEmpty() }?.let(listeKombinator) }
58+
): Tidslinje<R> = kombiner { it.filterNotNull().takeIf { it.isNotEmpty() }?.let(listeKombinator) }
6159

6260
/**
6361
* Extension-metode for å kombinere liste av tidslinjer
6462
* Kombinasjonen baserer seg på å iterere gjennom alle tidspunktene fra alle tidslinjene
6563
* Verdien V må være av samme type
6664
* Resultatet er en tidslinje med verdi Iterable<V>
6765
*/
68-
fun <V> Collection<Tidslinje<V>>.kombiner() = this.kombinerNullableKombinator { if (it.toList().isNotEmpty()) it else null }
66+
fun <V> Collection<Tidslinje<V>>.kombiner() = this.kombiner { if (it.toList().isNotEmpty()) it else null }
6967

7068
/**
7169
* Extension-metode for å kombinere en nøkkel-verdi-map'er der verdiene er tidslinjer, med en enkelt tidslinje
@@ -121,34 +119,3 @@ fun <V, H> Tidslinje<V>.kombinerMedNullable(
121119
} else {
122120
this
123121
}
124-
125-
/**
126-
* Extension-metode for å kombinere liste av tidslinjer
127-
* Kombinasjonen baserer seg på å iterere gjennom alle tidspunktene fra alle tidslinjene
128-
* Verdi (V) må være av samme type
129-
* Kombintor-funksjonen tar inn Iterable<V> og returner (nullable) R
130-
* Resultatet er en tidslinje med verdi R
131-
*/
132-
fun <V, R> Collection<Tidslinje<V>>.kombinerNullableKombinator(listeKombinator: (Iterable<V>) -> R?): Tidslinje<R> =
133-
this.slåSammen().map {
134-
when (it) {
135-
is Verdi -> {
136-
val resultat = listeKombinator(it.verdi)
137-
if (resultat != null) Verdi(resultat) else Null()
138-
}
139-
140-
is Null -> Null()
141-
is Udefinert -> Udefinert()
142-
}
143-
}
144-
145-
fun <V, R> Tidslinje<V>.mapVerdiNullable(mapper: (V?) -> R?): Tidslinje<R> =
146-
this.map { periodeVerdi ->
147-
when (periodeVerdi) {
148-
is Verdi,
149-
is Null,
150-
-> mapper(periodeVerdi.verdi)?.let { Verdi(it) } ?: Null()
151-
152-
is Udefinert -> Udefinert()
153-
}
154-
}

0 commit comments

Comments
 (0)