@@ -62,39 +62,39 @@ List<Feil> validerMedGyldigEndringsperodeHvisDenFinnes(Ytelse ytelse,
62
62
return feilene ;
63
63
}
64
64
65
- private List <Feil > validerOgLeggTilFeilene (PleiepengerSyktBarn psb ,
66
- List <Periode > gyldigeEndringsperioder ,
67
- boolean brukValideringMedUtledetEndringsperiode ) {
65
+ List <Feil > validerOgLeggTilFeilene (PleiepengerSyktBarn psb ,
66
+ List <Periode > gyldigeEndringsperioder ,
67
+ boolean brukValideringMedUtledetEndringsperiode ) {
68
68
final List <Feil > feilene = new ArrayList <Feil >();
69
69
70
70
feilene .addAll (validerLovligEndring (psb , gyldigeEndringsperioder , brukValideringMedUtledetEndringsperiode ));
71
71
feilene .addAll (validerPerioderErLukketOgGyldig (psb .getBosteder ().getPerioder (), "bosteder.perioder" ));
72
72
feilene .addAll (validerPerioderErLukketOgGyldig (psb .getUtenlandsopphold ().getPerioder (), "utenlandsopphold.perioder" ));
73
73
74
- final LocalDateTimeline <Boolean > søknadsperiodeTidslinje = lagTidslinjeOgValider (psb .getSøknadsperiodeList (), "søknadsperiode.perioder" );
74
+ final LocalDateTimeline <Boolean > søknadsperiodeTidslinje = lagTidslinjeOgValider (psb .getSøknadsperiodeList (), "søknadsperiode.perioder" , feilene );
75
75
final LocalDateTimeline <Boolean > intervalForEndringTidslinje ;
76
76
77
77
if (brukValideringMedUtledetEndringsperiode ) {
78
- final LocalDateTimeline <Boolean > gyldigEndringsperiodeTidslinje = lagTidslinjeOgValider (gyldigeEndringsperioder , "gyldigeEndringsperioder.perioder" );
78
+ final LocalDateTimeline <Boolean > gyldigEndringsperiodeTidslinje = lagTidslinjeOgValider (gyldigeEndringsperioder , "gyldigeEndringsperioder.perioder" , feilene );
79
79
intervalForEndringTidslinje = søknadsperiodeTidslinje .union (gyldigEndringsperiodeTidslinje , StandardCombinators ::coalesceLeftHandSide );
80
80
} else {
81
- final LocalDateTimeline <Boolean > endringsperiodeTidslinje = lagTidslinjeOgValider (psb .getEndringsperiode (), "endringsperiode.perioder" );
81
+ final LocalDateTimeline <Boolean > endringsperiodeTidslinje = lagTidslinjeOgValider (psb .getEndringsperiode (), "endringsperiode.perioder" , feilene );
82
82
intervalForEndringTidslinje = søknadsperiodeTidslinje .union (endringsperiodeTidslinje , StandardCombinators ::coalesceLeftHandSide );
83
83
}
84
84
85
- final LocalDateTimeline <Boolean > trekkKravPerioderTidslinje = lagTidslinjeOgValider (psb .getTrekkKravPerioder (), "trekkKravPerioder.perioder" );
85
+ final LocalDateTimeline <Boolean > trekkKravPerioderTidslinje = lagTidslinjeOgValider (psb .getTrekkKravPerioder (), "trekkKravPerioder.perioder" , feilene );
86
86
87
87
if (brukValideringMedUtledetEndringsperiode ) {
88
88
feilene .addAll (validerAtIngenPerioderOverlapperMedTrekkKravPerioder (trekkKravPerioderTidslinje , søknadsperiodeTidslinje , "trekkKravPerioder" ));
89
89
}
90
90
91
91
for (var ytelsePeriode : PerioderMedEndringUtil .getAllePerioderSomMåVæreInnenforSøknadsperiode (psb )) {
92
- var ytelsePeriodeTidsserie = lagTidslinjeOgValider (ytelsePeriode .getPeriodeMap (), ytelsePeriode .getFelt () + ".perioder" );
92
+ var ytelsePeriodeTidsserie = lagTidslinjeOgValider (ytelsePeriode .getPeriodeMap (), ytelsePeriode .getFelt () + ".perioder" , feilene );
93
93
feilene .addAll (validerAtYtelsePerioderErInnenforIntervalForEndring (intervalForEndringTidslinje , ytelsePeriodeTidsserie , ytelsePeriode .getFelt () + ".perioder" ));
94
94
feilene .addAll (validerAtIngenPerioderOverlapperMedTrekkKravPerioder (trekkKravPerioderTidslinje , ytelsePeriodeTidsserie , ytelsePeriode .getFelt () + ".perioder" ));
95
95
}
96
96
97
- feilene . addAll ( validerAtYtelsePeriodenErKomplettMedSøknad (søknadsperiodeTidslinje , psb .getUttak ().getPerioder (), "uttak" ) );
97
+ validerAtYtelsePeriodenErKomplettMedSøknad (søknadsperiodeTidslinje , psb .getUttak ().getPerioder (), "uttak" , feilene );
98
98
99
99
return feilene ;
100
100
}
@@ -120,13 +120,14 @@ private List<Feil> validerAtYtelsePerioderErInnenforIntervalForEndring(LocalDate
120
120
.collect (Collectors .toCollection (ArrayList ::new ));
121
121
}
122
122
123
- private List < Feil > validerAtYtelsePeriodenErKomplettMedSøknad (LocalDateTimeline <Boolean > søknadsperiode ,
123
+ private void validerAtYtelsePeriodenErKomplettMedSøknad (LocalDateTimeline <Boolean > søknadsperiode ,
124
124
Map <Periode , ?> ytelsePeriode ,
125
- String felt ) {
126
- return tilPeriodeList (søknadsperiode .disjoint (lagTidslinjeOgValider (new ArrayList <>(ytelsePeriode .keySet ()), felt ))).stream ()
125
+ String felt ,
126
+ List <Feil > feil ) {
127
+ feil .addAll ( tilPeriodeList (søknadsperiode .disjoint (lagTidslinjeOgValider (new ArrayList <>(ytelsePeriode .keySet ()), felt , feil ))).stream ()
127
128
.filter (this ::periodeInneholderDagerSomIkkeErHelg )
128
129
.map (p -> toFeil (p , felt , "ikkeKomplettPeriode" , "Periodene er ikke komplett, periode som mangler er: " ))
129
- .collect (Collectors .toCollection (ArrayList ::new ));
130
+ .collect (Collectors .toCollection (ArrayList ::new ))) ;
130
131
}
131
132
132
133
private List <Feil > validerAtIngenPerioderOverlapperMedTrekkKravPerioder (LocalDateTimeline <Boolean > trekkKravPerioder ,
@@ -152,38 +153,35 @@ private Feil toFeil(Periode periode, String felt, String feilkode, String feilme
152
153
return lagFeil (felt , feilkode , feilmelding + periode .toString ());
153
154
}
154
155
155
- private Feil toFeil (ConstraintViolation <PleiepengerSyktBarn > constraintViolation ) {
156
- return lagFeil (
157
- constraintViolation .getPropertyPath ().toString (),
158
- PÅKREVD ,
159
- constraintViolation .getMessage ());
160
- }
161
-
162
156
private Feil lagFeil (String felt , String feilkode , String feilmelding ) {
163
157
return new Feil (YTELSE_FELT + felt , feilkode , feilmelding );
164
158
}
165
159
166
- private LocalDateTimeline <Boolean > lagTidslinjeOgValider (List <Periode > periodeList , String felt ) throws ValideringsAvbrytendeFeilException {
167
- var feil = validerPerioderErLukketOgGyldig (periodeList , felt );
168
- if (!feil .isEmpty ()) {
160
+ private LocalDateTimeline <Boolean > lagTidslinjeOgValider (List <Periode > periodeList , String felt , List <Feil > feil ) throws ValideringsAvbrytendeFeilException {
161
+ var nyFeil = validerPerioderErLukketOgGyldig (periodeList , felt );
162
+ if (!nyFeil .isEmpty ()) {
163
+ feil .addAll (nyFeil );
169
164
throw new ValideringsAvbrytendeFeilException (feil );
170
165
}
171
166
try {
172
167
return toLocalDateTimeline (periodeList );
173
168
} catch (IllegalArgumentException e ) {
174
- throw new ValideringsAvbrytendeFeilException (List .of (lagFeil (felt , "IllegalArgumentException" , e .getMessage ())));
169
+ feil .add (lagFeil (felt , "IllegalArgumentException" , e .getMessage ()));
170
+ throw new ValideringsAvbrytendeFeilException (feil );
175
171
}
176
172
}
177
173
178
- private LocalDateTimeline <Boolean > lagTidslinjeOgValider (Map <Periode , ? > periodeMap , String felt ) throws ValideringsAvbrytendeFeilException {
179
- var feil = validerPerioderErLukketOgGyldig (periodeMap , felt );
180
- if (!feil .isEmpty ()) {
174
+ private LocalDateTimeline <Boolean > lagTidslinjeOgValider (Map <Periode , ? > periodeMap , String felt , List <Feil > feil ) throws ValideringsAvbrytendeFeilException {
175
+ var nyFeil = validerPerioderErLukketOgGyldig (periodeMap , felt );
176
+ if (!nyFeil .isEmpty ()) {
177
+ feil .addAll (nyFeil );
181
178
throw new ValideringsAvbrytendeFeilException (feil );
182
179
}
183
180
try {
184
181
return toLocalDateTimeline (new ArrayList <>(periodeMap .keySet ()));
185
182
} catch (IllegalArgumentException e ) {
186
- throw new ValideringsAvbrytendeFeilException (List .of (lagFeil (felt , "IllegalArgumentException" , e .getMessage ())));
183
+ feil .add (lagFeil (felt , "IllegalArgumentException" , e .getMessage ()));
184
+ throw new ValideringsAvbrytendeFeilException (feil );
187
185
}
188
186
}
189
187
@@ -222,7 +220,7 @@ private void validerPerioderIkkeErInvertert(Periode periode, String felt, List<F
222
220
}
223
221
}
224
222
225
- private static class ValideringsAvbrytendeFeilException extends RuntimeException {
223
+ static class ValideringsAvbrytendeFeilException extends RuntimeException {
226
224
227
225
private final List <Feil > feilList ;
228
226
0 commit comments