Skip to content

Commit b2abefe

Browse files
authored
Bumper tidsserie-versjon, og noen små forenklinger (#274)
* Bumper tidsserie-versjon, og noen små forenklinger * final på klasser
1 parent 9629bc6 commit b2abefe

File tree

6 files changed

+52
-61
lines changed

6 files changed

+52
-61
lines changed

innsyn/src/main/java/no/nav/k9/innsyn/Søknadsammenslåer.java

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,58 +20,61 @@
2020
import no.nav.k9.søknad.ytelse.psb.v1.tilsyn.TilsynPeriodeInfo;
2121
import no.nav.k9.søknad.ytelse.psb.v1.tilsyn.Tilsynsordning;
2222

23-
public class Søknadsammenslåer {
24-
23+
public final class Søknadsammenslåer {
24+
25+
private Søknadsammenslåer() {
26+
}
27+
2528
public static Søknad kunPleietrengendedata(Søknad søknad) {
2629
if (!(søknad.getYtelse() instanceof PleiepengerSyktBarn)) {
2730
throw new IllegalArgumentException("Kun PSB-søknader er støttet.");
2831
}
2932
final PleiepengerSyktBarn ytelse = (PleiepengerSyktBarn) søknad.getYtelse();
30-
33+
3134
final Map<Periode, TilsynPeriodeInfo> periodeMap = hentUtTilsynsperioder(ytelse);
3235
final PleiepengerSyktBarn resultatYtelse = new PleiepengerSyktBarn();
3336
resultatYtelse.medTilsynsordning(new Tilsynsordning().medPerioder(periodeMap));
34-
37+
3538
return new Søknad().medYtelse(resultatYtelse);
3639
}
3740

3841
private static Map<Periode, TilsynPeriodeInfo> hentUtTilsynsperioder(final PleiepengerSyktBarn ytelse) {
39-
/*
42+
/*
4043
* Advarsel: Data som returneres her deles på tvers av søkere. Ikke legg inn
4144
* flere felter i mappingen hvis de ikke skal deles.
42-
*
45+
*
4346
* Av denne grunn brukes ikke standard copy-contructor for Map/Tilsynordning
4447
*/
4548
return ytelse.getTilsynsordning()
4649
.getPerioder()
4750
.entrySet()
4851
.stream()
4952
.map(e -> Map.entry(
50-
new Periode(e.getKey()),
51-
new TilsynPeriodeInfo().medEtablertTilsynTimerPerDag(e.getValue().getEtablertTilsynTimerPerDag())
53+
new Periode(e.getKey()),
54+
new TilsynPeriodeInfo().medEtablertTilsynTimerPerDag(e.getValue().getEtablertTilsynTimerPerDag())
5255
))
5356
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
5457
}
55-
58+
5659
public static Søknad slåSammen(Søknad tidligereSøknad, Søknad nySøknad) {
5760
if (!(tidligereSøknad.getYtelse() instanceof PleiepengerSyktBarn) || !(nySøknad.getYtelse() instanceof PleiepengerSyktBarn)) {
5861
throw new IllegalArgumentException("Kun PSB-søknader er støttet.");
5962
}
6063

61-
final PleiepengerSyktBarn s1Ytelse = (PleiepengerSyktBarn) tidligereSøknad.getYtelse();
62-
final PleiepengerSyktBarn s2Ytelse = (PleiepengerSyktBarn) nySøknad.getYtelse();
63-
64+
final PleiepengerSyktBarn s1Ytelse = tidligereSøknad.getYtelse();
65+
final PleiepengerSyktBarn s2Ytelse = nySøknad.getYtelse();
66+
6467
final PleiepengerSyktBarn ytelse = new PleiepengerSyktBarn();
6568
ytelse.medSøknadsperiode(slåSammenSøknadsperioder(s1Ytelse, s2Ytelse));
66-
69+
6770
/* Bruk pleietrengendeAktørId fra PsbSøknadsinnhold fremfor: */
6871
ytelse.medBarn(new Barn()
69-
.medNorskIdentitetsnummer(NorskIdentitetsnummer.of("00000000000"))
72+
.medNorskIdentitetsnummer(NorskIdentitetsnummer.of("00000000000"))
7073
);
7174

7275
ytelse.medArbeidstid(Arbeidstidsammenslåer.slåSammenArbeidstid(s1Ytelse, s2Ytelse));
7376
ytelse.medTilsynsordning(Tilsynsammenslåer.slåsammen(s1Ytelse, s2Ytelse));
74-
77+
7578
final Søknad s = new Søknad()
7679
.medSøknadId(SøknadId.of("generert"))
7780
.medVersjon("1.0.0.")
@@ -86,10 +89,10 @@ private static Map<Periode, TilsynPeriodeInfo> hentUtTilsynsperioder(final Pleie
8689
private static List<Periode> slåSammenSøknadsperioder(final PleiepengerSyktBarn s1Ytelse, final PleiepengerSyktBarn s2Ytelse) {
8790
final LocalDateTimeline<Boolean> t1 = TidsserieUtils.toLocalDateTimeline(s1Ytelse.getSøknadsperiodeList());
8891
final LocalDateTimeline<Boolean> t2 = TidsserieUtils.toLocalDateTimeline(s2Ytelse.getSøknadsperiodeList());
89-
final List<Periode> søknadsperioder = TidsserieUtils.tilPeriodeList(t1
92+
LocalDateTimeline<Boolean> harSøknadTidslinje = t1
9093
.union(t2, StandardCombinators::coalesceRightHandSide)
9194
.disjoint(TidsserieUtils.toLocalDateTimeline(s2Ytelse.getTrekkKravPerioder()))
92-
.compress());
93-
return søknadsperioder;
95+
.compress();
96+
return TidsserieUtils.tilPeriodeList(harSøknadTidslinje);
9497
}
9598
}

innsyn/src/main/java/no/nav/k9/innsyn/søknadsammeslåer/Arbeidstidsammenslåer.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ public class Arbeidstidsammenslåer {
2626

2727
final List<Arbeidstaker> arbeidstakerliste = slåSammenArbeidstakerArbeidstid(s2Ytelse, a1, a2);
2828
sammenslåttArbeidstid.medArbeidstaker(arbeidstakerliste);
29-
29+
3030
final ArbeidstidInfo frilanserArbeidstidInfo = slåSammenFrilanserArbeidstid(s2Ytelse, a1, a2);
3131
sammenslåttArbeidstid.medFrilanserArbeidstid(frilanserArbeidstidInfo);
32-
32+
3333
final ArbeidstidInfo selvstendigNæringsdrivendeArbeidstidInfo = slåSammenSelvstendigNæringsdrivendeArbeidstidInfo(s2Ytelse, a1, a2);
3434
sammenslåttArbeidstid.medSelvstendigNæringsdrivendeArbeidstidInfo(selvstendigNæringsdrivendeArbeidstidInfo);
3535

@@ -42,7 +42,7 @@ public class Arbeidstidsammenslåer {
4242
final ArbeidstidInfo selvstendigNæringsdrivendeArbeidstidInfo = slåSammenArbeidstidInfo(s2Ytelse, t1, t2);
4343
return selvstendigNæringsdrivendeArbeidstidInfo;
4444
}
45-
45+
4646
private static ArbeidstidInfo slåSammenFrilanserArbeidstid(PleiepengerSyktBarn s2Ytelse, final Arbeidstid a1, final Arbeidstid a2) {
4747
final LocalDateTimeline<ArbeidstidPeriodeInfo> t1 = lagArbeidstidTidslinje(a1.getFrilanserArbeidstidInfo().orElse(null));
4848
final LocalDateTimeline<ArbeidstidPeriodeInfo> t2 = lagArbeidstidTidslinje(a2.getFrilanserArbeidstidInfo().orElse(null));
@@ -78,28 +78,26 @@ public class Arbeidstidsammenslåer {
7878
return new ArbeidstidInfo(new ArbeidstidInfo().medPerioder(periodeMap));
7979
}
8080

81-
@SuppressWarnings("unchecked")
8281
private static LocalDateTimeline<ArbeidstidPeriodeInfo> hentTidslinje(final Map<Object, LocalDateTimeline<ArbeidstidPeriodeInfo>> arbeidstakertid1, Object arbeidstakerIdent) {
8382
final LocalDateTimeline<ArbeidstidPeriodeInfo> tidslinje = arbeidstakertid1.get(arbeidstakerIdent);
8483
if (tidslinje == null) {
85-
return LocalDateTimeline.EMPTY_TIMELINE;
84+
return LocalDateTimeline.empty();
8685
}
8786
return tidslinje;
8887
}
8988

9089
private static Map<Object, LocalDateTimeline<ArbeidstidPeriodeInfo>> byggTidslinjeMap(Arbeidstid arbeidstid) {
9190
return arbeidstid.getArbeidstakerList().stream()
92-
.map(a -> {
93-
final LocalDateTimeline<ArbeidstidPeriodeInfo> tidslinje = lagArbeidstidTidslinje(a.getArbeidstidInfo());
94-
return Map.entry(hentArbeidsgiverIdent(a),tidslinje);
95-
})
96-
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
91+
.map(a -> {
92+
final LocalDateTimeline<ArbeidstidPeriodeInfo> tidslinje = lagArbeidstidTidslinje(a.getArbeidstidInfo());
93+
return Map.entry(hentArbeidsgiverIdent(a), tidslinje);
94+
})
95+
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
9796
}
9897

99-
@SuppressWarnings("unchecked")
10098
private static LocalDateTimeline<ArbeidstidPeriodeInfo> lagArbeidstidTidslinje(ArbeidstidInfo arbeidstidInfo) {
10199
if (arbeidstidInfo == null) {
102-
return LocalDateTimeline.EMPTY_TIMELINE;
100+
return LocalDateTimeline.empty();
103101
}
104102
return SøknadsammenslåerUtils.lagTidslinje(arbeidstidInfo.getPerioder());
105103
}

innsyn/src/main/java/no/nav/k9/innsyn/søknadsammeslåer/SøknadsammenslåerUtils.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,37 @@
77
import no.nav.fpsak.tidsserie.LocalDateSegment;
88
import no.nav.fpsak.tidsserie.LocalDateTimeline;
99
import no.nav.fpsak.tidsserie.StandardCombinators;
10+
import no.nav.k9.søknad.TidsserieUtils;
1011
import no.nav.k9.søknad.felles.type.Periode;
1112
import no.nav.k9.søknad.ytelse.psb.v1.PleiepengerSyktBarn;
1213

1314
public final class SøknadsammenslåerUtils {
1415

1516
private SøknadsammenslåerUtils() {
16-
1717
}
18-
19-
18+
2019
static <T> Map<Periode, T> slåSammenOgHåndterTrukkedeKrav(PleiepengerSyktBarn s2Ytelse, final LocalDateTimeline<T> t1, final LocalDateTimeline<T> t2) {
2120
final LocalDateTimeline<T> kombinertInformasjon = t1.union(t2, StandardCombinators::coalesceRightHandSide);
2221
final LocalDateTimeline<T> resultat = kombinertInformasjon.disjoint(trukkedeKravTidslinje(s2Ytelse)).compress();
23-
final Map<Periode, T> periodeMap = resultat.stream().map(p -> {
24-
return Map.entry(new Periode(p.getFom(), p.getTom()), p.getValue());
25-
})
26-
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
27-
return periodeMap;
22+
return resultat.stream()
23+
.map(p -> Map.entry(new Periode(p.getFom(), p.getTom()), p.getValue()))
24+
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
2825
}
29-
30-
@SuppressWarnings("unchecked")
26+
3127
static <T> LocalDateTimeline<T> lagTidslinje(Map<Periode, T> perioder) {
3228
if (perioder == null) {
33-
return LocalDateTimeline.EMPTY_TIMELINE;
29+
return LocalDateTimeline.empty();
3430
}
3531
final List<LocalDateSegment<T>> segments = perioder
3632
.entrySet()
3733
.stream()
38-
.map(e -> {
39-
return new LocalDateSegment<T>(e.getKey().getFraOgMed(), e.getKey().getTilOgMed(), e.getValue());
40-
})
34+
.map(e -> new LocalDateSegment<T>(e.getKey().getFraOgMed(), e.getKey().getTilOgMed(), e.getValue()))
4135
.collect(Collectors.toList());
4236
return new LocalDateTimeline<>(segments);
4337
}
44-
4538

4639
private static LocalDateTimeline<Boolean> trukkedeKravTidslinje(PleiepengerSyktBarn s1Ytelse) {
47-
return new LocalDateTimeline<Boolean>(s1Ytelse.getTrekkKravPerioder().stream().map(p -> new LocalDateSegment<>(p.getFraOgMed(), p.getTilOgMed(), Boolean.TRUE)).collect(Collectors.toList()));
40+
return TidsserieUtils.toLocalDateTimeline(s1Ytelse.getTrekkKravPerioder());
4841
}
4942

5043
}

innsyn/src/main/java/no/nav/k9/innsyn/søknadsammeslåer/Tilsynsammenslåer.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,14 @@ public class Tilsynsammenslåer {
1212
final LocalDateTimeline<TilsynPeriodeInfo> t1 = lagTidslinje(s1Ytelse.getTilsynsordning());
1313
final LocalDateTimeline<TilsynPeriodeInfo> t2 = lagTidslinje(s2Ytelse.getTilsynsordning());
1414
tilsyn.medPerioder(SøknadsammenslåerUtils.slåSammenOgHåndterTrukkedeKrav(s2Ytelse, t1, t2));
15-
15+
1616
// Defensiv kopiering av Tilsynsordning for å få nye Periode- og TilsynPeriodeInfo-objekter:
1717
return new Tilsynsordning(tilsyn);
1818
}
1919

20-
@SuppressWarnings("unchecked")
2120
private static LocalDateTimeline<TilsynPeriodeInfo> lagTidslinje(Tilsynsordning tilsynsordning) {
2221
if (tilsynsordning == null) {
23-
return LocalDateTimeline.EMPTY_TIMELINE;
22+
return LocalDateTimeline.empty();
2423
}
2524
return SøknadsammenslåerUtils.lagTidslinje(tilsynsordning.getPerioder());
2625
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
<dependency>
111111
<groupId>no.nav.fpsak.tidsserie</groupId>
112112
<artifactId>fpsak-tidsserie</artifactId>
113-
<version>2.5.5</version>
113+
<version>2.6.3</version>
114114
</dependency>
115115
</dependencies>
116116
</dependencyManagement>

soknad/src/main/java/no/nav/k9/søknad/TidsserieUtils.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,22 @@
77
import no.nav.fpsak.tidsserie.LocalDateTimeline;
88
import no.nav.k9.søknad.felles.type.Periode;
99

10-
public class TidsserieUtils {
10+
public final class TidsserieUtils {
11+
private TidsserieUtils() {
12+
}
13+
1114
public static List<Periode> tilPeriodeList(LocalDateTimeline<?> t) {
12-
return t.stream().map(l -> new Periode(l.getFom(), l.getTom())).collect(Collectors.toList());
15+
return t.stream()
16+
.map(l -> new Periode(l.getFom(), l.getTom()))
17+
.collect(Collectors.toList());
1318
}
1419

1520
public static LocalDateTimeline<Boolean> toLocalDateTimeline(List<Periode> perioder) {
16-
return new LocalDateTimeline<Boolean>(perioder
21+
return new LocalDateTimeline<>(perioder
1722
.stream()
18-
.map(no.nav.k9.søknad.TidsserieUtils::mapLocalDateSegment)
23+
.map(periode -> new LocalDateSegment<>(periode.getFraOgMed(), periode.getTilOgMed(), true))
1924
.collect(Collectors.toList()))
2025
.compress();
2126
}
2227

23-
private static LocalDateSegment<Boolean> mapLocalDateSegment(Periode periode) {
24-
return new LocalDateSegment<Boolean>(
25-
periode.getFraOgMed(),
26-
periode.getTilOgMed(),
27-
true);
28-
}
29-
3028
}

0 commit comments

Comments
 (0)