@@ -2,13 +2,11 @@ package no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon
2
2
3
3
import no.nav.familie.tidslinje.Null
4
4
import no.nav.familie.tidslinje.Tidslinje
5
- import no.nav.familie.tidslinje.Udefinert
6
5
import no.nav.familie.tidslinje.Verdi
7
6
import no.nav.familie.tidslinje.tilPeriodeVerdi
8
7
import no.nav.familie.tidslinje.utvidelser.biFunksjon
8
+ import no.nav.familie.tidslinje.utvidelser.kombiner
9
9
import no.nav.familie.tidslinje.utvidelser.kombinerMed
10
- import no.nav.familie.tidslinje.utvidelser.map
11
- import no.nav.familie.tidslinje.utvidelser.slåSammen
12
10
import no.nav.familie.tidslinje.utvidelser.trim
13
11
14
12
/* *
@@ -44,7 +42,7 @@ fun <V, H, R> Tidslinje<V>.kombinerUtenNullMed(
44
42
*/
45
43
fun <V , R > Collection<Tidslinje<V>>.kombinerUtenNull (
46
44
listeKombinator : (Iterable <V >) -> R ? ,
47
- ): Tidslinje <R > = kombinerNullableKombinator { it.filterNotNull().let (listeKombinator) }
45
+ ): Tidslinje <R > = kombiner { it.filterNotNull().let (listeKombinator) }
48
46
49
47
/* *
50
48
* Extension-metode for å kombinere liste av tidslinjer
@@ -57,15 +55,15 @@ fun <V, R> Collection<Tidslinje<V>>.kombinerUtenNull(
57
55
*/
58
56
fun <V , R > Collection<Tidslinje<V>>.kombinerUtenNullOgIkkeTom (
59
57
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) }
61
59
62
60
/* *
63
61
* Extension-metode for å kombinere liste av tidslinjer
64
62
* Kombinasjonen baserer seg på å iterere gjennom alle tidspunktene fra alle tidslinjene
65
63
* Verdien V må være av samme type
66
64
* Resultatet er en tidslinje med verdi Iterable<V>
67
65
*/
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 }
69
67
70
68
/* *
71
69
* 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(
121
119
} else {
122
120
this
123
121
}
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