Skip to content

Commit 7b2877d

Browse files
committed
Gjorde Periode immuterbar, fjernet Util-metoder
1 parent ab2d6a9 commit 7b2877d

File tree

5 files changed

+17
-297
lines changed

5 files changed

+17
-297
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ private static Map<Periode, TilsynPeriodeInfo> hentUtTilsynsperioder(final Pleie
5050
.entrySet()
5151
.stream()
5252
.map(e -> Map.entry(
53-
new Periode(e.getKey()),
53+
e.getKey(),
5454
new TilsynPeriodeInfo().medEtablertTilsynTimerPerDag(e.getValue().getEtablertTilsynTimerPerDag())
5555
))
5656
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
Lines changed: 14 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,27 @@
11
package no.nav.k9.søknad.felles.type;
22

33
import java.time.LocalDate;
4-
import java.util.Comparator;
5-
import java.util.Map;
64
import java.util.Objects;
7-
import java.util.SortedSet;
8-
import java.util.TreeSet;
9-
import java.util.stream.Collectors;
105

116
import javax.validation.constraints.AssertFalse;
127

138
import com.fasterxml.jackson.annotation.JsonCreator;
149
import com.fasterxml.jackson.annotation.JsonValue;
1510

1611
public class Periode implements Comparable<Periode> {
17-
static final String ÅPEN = "..";
18-
static final String SKILLE = "/";
12+
private static final String ÅPEN = "..";
13+
private static final String SKILLE = "/";
1914

20-
private LocalDate fraOgMed;
15+
private final LocalDate fraOgMed;
2116

22-
private LocalDate tilOgMed;
17+
private final LocalDate tilOgMed;
2318

2419
@JsonValue
25-
private String iso8601;
20+
private final String iso8601;
21+
22+
public static Periode parse(String iso8601) {
23+
return new Periode(iso8601);
24+
}
2625

2726
@JsonCreator
2827
public Periode(String iso8601) {
@@ -33,10 +32,6 @@ public Periode(String iso8601) {
3332
this.iso8601 = iso8601;
3433
}
3534

36-
public Periode(Periode p) {
37-
this(p.getFraOgMed(), p.getTilOgMed());
38-
}
39-
4035
public Periode(LocalDate fraOgMed, LocalDate tilOgMed) {
4136
this.fraOgMed = fraOgMed;
4237
this.tilOgMed = tilOgMed;
@@ -56,38 +51,10 @@ public LocalDate getTilOgMed() {
5651
return tilOgMed;
5752
}
5853

59-
public void setFraOgMed(LocalDate fraOgMed) {
60-
this.fraOgMed = fraOgMed;
61-
}
62-
63-
public void setTilOgMed(LocalDate tilOgMed) {
64-
this.tilOgMed = tilOgMed;
65-
}
66-
6754
public String getIso8601() {
6855
return iso8601;
6956
}
7057

71-
public void setIso8601(String iso8601) {
72-
this.iso8601 = iso8601;
73-
}
74-
75-
public static Periode parse(String iso8601) {
76-
return new Periode(iso8601);
77-
}
78-
79-
public static Periode forsikreLukketPeriode(Periode periode, LocalDate fallbackTilOgMed) {
80-
Objects.requireNonNull(periode);
81-
Objects.requireNonNull(periode.fraOgMed);
82-
Objects.requireNonNull(fallbackTilOgMed);
83-
return new Periode(periode.fraOgMed, periode.tilOgMed != null ? periode.tilOgMed : fallbackTilOgMed);
84-
}
85-
86-
@Override
87-
public int compareTo(Periode o) {
88-
return this.iso8601.compareTo(o.iso8601);
89-
}
90-
9158
@Override
9259
public boolean equals(Object o) {
9360
if (this == o)
@@ -109,6 +76,11 @@ public String toString() {
10976
return iso8601;
11077
}
11178

79+
@Override
80+
public int compareTo(Periode o) {
81+
return this.iso8601.compareTo(o.iso8601);
82+
}
83+
11284
/**
11385
* Sjekk om denne perioden inneholder (omslutter) angitt periode.
11486
*/
@@ -117,19 +89,6 @@ public boolean inneholder(Periode periode) {
11789
&& (this.tilOgMed == null || (periode.tilOgMed != null && !this.tilOgMed.isBefore(periode.tilOgMed)));
11890
}
11991

120-
/**
121-
* Sjekk om denne perioden og annenPeriode har overlappende tidsintervaller.
122-
*/
123-
public boolean overlapper(Periode annenPeriode) {
124-
boolean starterFørEllerSamtidigSomAnnenPeriodeSlutter = this.fraOgMed == null || this.fraOgMed != null && annenPeriode.getTilOgMed() == null || this.fraOgMed != null && annenPeriode.getTilOgMed() != null && (this.fraOgMed.isEqual(annenPeriode.getTilOgMed()) || this.fraOgMed.isBefore(annenPeriode.getTilOgMed()));
125-
if (!starterFørEllerSamtidigSomAnnenPeriodeSlutter) {
126-
return false;
127-
} else {
128-
boolean slutterEtterEllerSamtidigSomPeriodeStarter = this.tilOgMed == null || this.tilOgMed != null && annenPeriode.getFraOgMed() == null || this.tilOgMed != null && annenPeriode.getFraOgMed() != null && (this.tilOgMed.isEqual(annenPeriode.getFraOgMed()) || this.tilOgMed.isAfter(annenPeriode.getFraOgMed()));
129-
return slutterEtterEllerSamtidigSomPeriodeStarter;
130-
}
131-
}
132-
13392
private static void verifiserKanVæreGyldigPeriode(String iso8601) {
13493
if (iso8601 == null || iso8601.split(SKILLE).length != 2) {
13594
throw new IllegalArgumentException("Periode på ugylig format '" + iso8601 + "'.");
@@ -143,80 +102,10 @@ private static LocalDate parseLocalDate(String iso8601) {
143102
return LocalDate.parse(iso8601);
144103
}
145104

146-
public static final class Utils {
147-
private Utils() {
148-
}
149-
150-
private static final Comparator<Periode> tilOgMedComparator = Comparator.comparing(periode -> periode.tilOgMed);
151-
152-
public static <PERIODE_INFO> void leggTilPeriode(
153-
Map<Periode, PERIODE_INFO> perioder,
154-
Periode nyPeriode,
155-
PERIODE_INFO nyPeriodeInfo) {
156-
Objects.requireNonNull(perioder, "perioder");
157-
Objects.requireNonNull(nyPeriode, "nyPeriode");
158-
Objects.requireNonNull(nyPeriodeInfo, "nyPeriodeInfo");
159-
160-
if (perioder.containsKey(nyPeriode)) {
161-
throw new IllegalArgumentException("Inneholder allerede " + nyPeriode.iso8601);
162-
}
163-
164-
perioder.put(nyPeriode, nyPeriodeInfo);
165-
}
166-
167-
public static <PERIODE_INFO> void leggTilPerioder(
168-
Map<Periode, PERIODE_INFO> perioder,
169-
Map<Periode, PERIODE_INFO> nyePerioder) {
170-
Objects.requireNonNull(perioder);
171-
Objects.requireNonNull(nyePerioder);
172-
var nyeKeys = nyePerioder.keySet();
173-
174-
var duplikater = perioder
175-
.keySet()
176-
.stream()
177-
.filter(nyeKeys::contains)
178-
.collect(Collectors.toSet());
179-
180-
if (!duplikater.isEmpty()) {
181-
var duplikatePerioder = String.join(", ", duplikater
182-
.stream()
183-
.map(it -> it.iso8601)
184-
.collect(Collectors.toSet()));
185-
throw new IllegalArgumentException("Inneholder allerede " + duplikatePerioder);
186-
}
187-
188-
perioder.putAll(nyePerioder);
189-
}
190-
191-
public static LocalDate sisteTilOgMedTillatÅpnePerioder(Map<Periode, ?> periodeMap) {
192-
return sisteTilOgMed(periodeMap);
193-
}
194-
195-
public static LocalDate sisteTilOgMedBlantLukkedePerioder(Map<Periode, ?> periodeMap) {
196-
LocalDate sisteTilOgMed = sisteTilOgMed(periodeMap);
197-
if (sisteTilOgMed == null)
198-
throw new IllegalStateException("En eller fler av periodene er åpne (uten tilOgMed satt).");
199-
return sisteTilOgMed;
200-
}
201-
202-
private static LocalDate sisteTilOgMed(Map<Periode, ?> periodeMap) {
203-
if (periodeMap == null || periodeMap.isEmpty()) {
204-
throw new IllegalStateException("Må være minst en periode for å finne siste tilOgMed");
205-
}
206-
if (periodeMap.keySet().stream().anyMatch(periode -> periode.tilOgMed == null)) {
207-
return null;
208-
}
209-
SortedSet<Periode> perioder = new TreeSet<>(tilOgMedComparator);
210-
perioder.addAll(periodeMap.keySet());
211-
return perioder.last().tilOgMed;
212-
}
213-
}
214-
215105
private static String toIso8601(LocalDate dato) {
216106
if (dato == null)
217107
return Periode.ÅPEN;
218108
else
219109
return dato.toString();
220110
}
221-
222111
}

soknad/src/main/java/no/nav/k9/søknad/ytelse/psb/v1/arbeidstid/ArbeidstidInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public ArbeidstidInfo(ArbeidstidInfo arbeidstidInfo) {
4242
this.perioder = new TreeMap<>(arbeidstidInfo.getPerioder().entrySet()
4343
.stream()
4444
.map(e -> Map.entry(
45-
new Periode(e.getKey()),
45+
e.getKey(),
4646
new ArbeidstidPeriodeInfo(e.getValue())
4747
))
4848
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))

soknad/src/main/java/no/nav/k9/søknad/ytelse/psb/v1/tilsyn/Tilsynsordning.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public Tilsynsordning(Tilsynsordning t) {
3434
this.perioder = new TreeMap<>(t.getPerioder().entrySet()
3535
.stream()
3636
.map(e -> Map.entry(
37-
new Periode(e.getKey()),
37+
e.getKey(),
3838
new TilsynPeriodeInfo(e.getValue())
3939
))
4040
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))

soknad/src/test/java/no/nav/k9/søknad/PeriodeTest.java

Lines changed: 0 additions & 169 deletions
This file was deleted.

0 commit comments

Comments
 (0)