Skip to content

Commit 1b214eb

Browse files
fix: mindre forbedringer av interface for enklere oppslag av berørte … (#83)
* fix: mindre forbedringer av interface for enklere oppslag av berørte parter
1 parent 111dc81 commit 1b214eb

File tree

14 files changed

+236
-126
lines changed

14 files changed

+236
-126
lines changed

ettersendelse/src/main/java/no/nav/k9/ettersendelse/Ettersendelse.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@
1919
import no.nav.k9.søknad.felles.personopplysninger.Søker;
2020
import no.nav.k9.søknad.felles.type.SøknadId;
2121

22-
import javax.validation.Valid;
23-
import javax.validation.constraints.NotNull;
24-
import java.time.ZonedDateTime;
25-
2622
@JsonIgnoreProperties(ignoreUnknown = true)
2723
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
2824
public class Ettersendelse implements Innsending {

soknad-omsorgspenger/src/main/java/no/nav/k9/søknad/omsorgspenger/OmsorgspengerSøknad.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package no.nav.k9.søknad.omsorgspenger;
22

3-
import java.io.IOException;
43
import java.time.ZonedDateTime;
54

65
import javax.validation.Valid;
@@ -12,8 +11,6 @@
1211
import com.fasterxml.jackson.annotation.JsonFormat;
1312
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
1413
import com.fasterxml.jackson.annotation.JsonProperty;
15-
import com.fasterxml.jackson.databind.node.ObjectNode;
16-
1714
import no.nav.k9.søknad.Innsending;
1815
import no.nav.k9.søknad.JsonUtils;
1916
import no.nav.k9.søknad.felles.Versjon;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package no.nav.k9.søknad;
22

3+
import java.time.ZonedDateTime;
4+
35
import no.nav.k9.søknad.felles.Versjon;
46
import no.nav.k9.søknad.felles.personopplysninger.Søker;
57
import no.nav.k9.søknad.felles.type.SøknadId;
68

7-
import java.time.ZonedDateTime;
8-
99
public interface Innsending {
1010

1111
ZonedDateTime getMottattDato();

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

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,31 @@
11
package no.nav.k9.søknad;
22

3-
import com.fasterxml.jackson.annotation.*;
3+
import java.time.ZonedDateTime;
4+
import java.util.AbstractMap.SimpleEntry;
5+
import java.util.Collections;
6+
import java.util.List;
7+
import java.util.Map;
8+
import java.util.stream.Collectors;
9+
10+
import javax.validation.Valid;
11+
import javax.validation.constraints.NotNull;
12+
13+
import com.fasterxml.jackson.annotation.JsonAlias;
14+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
15+
import com.fasterxml.jackson.annotation.JsonCreator;
16+
import com.fasterxml.jackson.annotation.JsonFormat;
17+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
18+
import com.fasterxml.jackson.annotation.JsonInclude;
419
import com.fasterxml.jackson.annotation.JsonInclude.Include;
20+
import com.fasterxml.jackson.annotation.JsonProperty;
21+
522
import no.nav.k9.søknad.felles.Versjon;
623
import no.nav.k9.søknad.felles.personopplysninger.Barn;
724
import no.nav.k9.søknad.felles.personopplysninger.Søker;
825
import no.nav.k9.søknad.felles.type.Periode;
26+
import no.nav.k9.søknad.felles.type.Person;
927
import no.nav.k9.søknad.felles.type.SøknadId;
1028

11-
import javax.validation.Valid;
12-
import javax.validation.constraints.NotNull;
13-
import java.time.ZonedDateTime;
14-
import java.util.Collections;
15-
import java.util.List;
16-
import java.util.Map;
17-
1829
/**
1930
* Forenkler lesing av gamle søknadsformater (som omdistribueres til oppgave).
2031
*
@@ -58,6 +69,16 @@ public class LegacySøknad implements Innsending {
5869
@JsonProperty(value = "perioder", required = false)
5970
private Map<Periode, Dummy> perioder;
6071

72+
public LegacySøknad(@JsonProperty(value = "søknadId", required = true) @Valid @NotNull SøknadId søknadId,
73+
@JsonProperty(value = "versjon", required = true) @Valid @NotNull Versjon versjon,
74+
@JsonProperty(value = "mottattDato", required = true) @Valid @NotNull ZonedDateTime mottattDato,
75+
@JsonProperty(value = "søker", required = true) @Valid @NotNull Søker søker) {
76+
this.søknadId = søknadId;
77+
this.versjon = versjon;
78+
this.mottattDato = mottattDato;
79+
this.søker = søker;
80+
}
81+
6182
@JsonCreator
6283
public LegacySøknad(@JsonProperty(value = "søknadId", required = true) @Valid @NotNull SøknadId søknadId,
6384
@JsonProperty(value = "versjon", required = true) @Valid @NotNull Versjon versjon,
@@ -82,6 +103,18 @@ public List<Barn> getBarn() {
82103
return barn == null ? Collections.emptyList() : Collections.unmodifiableList(barn);
83104
}
84105

106+
public List<Person> getBerørtePersoner() {
107+
return List.copyOf(getBarn());
108+
}
109+
110+
public void setBarn(List<Barn> barn) {
111+
this.barn = barn == null ? null : List.copyOf(barn);
112+
}
113+
114+
public void setPerioder(List<Periode> perioder) {
115+
this.perioder = perioder.stream().map(p -> new SimpleEntry<>(p, new Dummy())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
116+
}
117+
85118
@Override
86119
public Versjon getVersjon() {
87120
return versjon;

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

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,26 @@
11
package no.nav.k9.søknad;
22

3-
import com.fasterxml.jackson.annotation.*;
3+
import java.io.IOException;
4+
import java.time.ZonedDateTime;
5+
import java.util.Collections;
6+
import java.util.List;
7+
8+
import javax.validation.Valid;
9+
import javax.validation.constraints.NotNull;
10+
11+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
12+
import com.fasterxml.jackson.annotation.JsonCreator;
13+
import com.fasterxml.jackson.annotation.JsonFormat;
14+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
15+
import com.fasterxml.jackson.annotation.JsonProperty;
416
import com.fasterxml.jackson.databind.node.ObjectNode;
17+
518
import no.nav.k9.søknad.felles.Versjon;
619
import no.nav.k9.søknad.felles.personopplysninger.Søker;
20+
import no.nav.k9.søknad.felles.type.Person;
721
import no.nav.k9.søknad.felles.type.SøknadId;
822
import no.nav.k9.søknad.ytelse.Ytelse;
923

10-
import javax.validation.Valid;
11-
import javax.validation.constraints.NotNull;
12-
import java.io.IOException;
13-
import java.time.ZonedDateTime;
14-
1524
@JsonIgnoreProperties(ignoreUnknown = true)
1625
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
1726
public class Søknad implements Innsending {
@@ -82,6 +91,10 @@ public void setMottattDato(ZonedDateTime mottattDato) {
8291
this.mottattDato = mottattDato;
8392
}
8493

94+
public List<Person> getBerørtePersoner() {
95+
return ytelse == null ? Collections.emptyList() : ytelse.getBerørtePersoner();
96+
}
97+
8598
@Override
8699
public Søker getSøker() {
87100
return søker;
@@ -91,8 +104,9 @@ public void setMottattDato(ZonedDateTime mottattDato) {
91104
this.søker = søker;
92105
}
93106

94-
public Ytelse getYtelse() {
95-
return ytelse;
107+
@SuppressWarnings("unchecked")
108+
public <Y extends Ytelse> Y getYtelse() {
109+
return (Y) ytelse;
96110
}
97111

98112
public void setYtelse(Ytelse ytelse) {

soknad/src/main/java/no/nav/k9/søknad/felles/personopplysninger/Barn.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
package no.nav.k9.søknad.felles.personopplysninger;
22

3-
import com.fasterxml.jackson.annotation.*;
4-
import no.nav.k9.søknad.felles.type.NorskIdentitetsnummer;
5-
import no.nav.k9.søknad.felles.type.PersonIdent;
3+
import java.time.LocalDate;
64

75
import javax.validation.Valid;
8-
import javax.validation.constraints.NotNull;
9-
import java.time.LocalDate;
6+
import javax.validation.constraints.AssertTrue;
7+
8+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
9+
import com.fasterxml.jackson.annotation.JsonCreator;
10+
import com.fasterxml.jackson.annotation.JsonFormat;
11+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
12+
import com.fasterxml.jackson.annotation.JsonProperty;
13+
14+
import no.nav.k9.søknad.felles.type.NorskIdentitetsnummer;
15+
import no.nav.k9.søknad.felles.type.Person;
16+
import no.nav.k9.søknad.felles.type.PersonIdent;
1017

1118
@JsonIgnoreProperties(ignoreUnknown = true)
1219
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
13-
public class Barn {
20+
public class Barn implements Person {
1421

1522
@JsonProperty(value = "norskIdentitetsnummer")
1623
@Valid
@@ -32,10 +39,16 @@ public Barn(
3239
this.fødselsdato = fødselsdato;
3340
}
3441

42+
@Override
3543
public PersonIdent getPersonIdent() {
3644
return norskIdentitetsnummer;
3745
}
3846

47+
@AssertTrue(message = "Enten fnr/dnr eller fødselsdato må oppgis")
48+
private boolean isFnrEllerFødselsdato() {
49+
return getPersonIdent() != null || fødselsdato != null;
50+
}
51+
3952
public static final class Builder {
4053
private NorskIdentitetsnummer norskIdentitetsnummer;
4154
private LocalDate fødselsdato;

soknad/src/main/java/no/nav/k9/søknad/felles/personopplysninger/Bosteder.java

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,44 @@
11
package no.nav.k9.søknad.felles.personopplysninger;
22

3-
import com.fasterxml.jackson.annotation.*;
4-
import com.fasterxml.jackson.annotation.JsonInclude.Include;
5-
import no.nav.k9.søknad.felles.type.Landkode;
6-
import no.nav.k9.søknad.felles.type.Periode;
7-
8-
import javax.validation.Valid;
9-
import java.util.HashMap;
10-
import java.util.Map;
11-
123
import static java.util.Collections.emptyMap;
134
import static java.util.Collections.unmodifiableMap;
145
import static no.nav.k9.søknad.felles.type.Periode.Utils.leggTilPeriode;
156
import static no.nav.k9.søknad.felles.type.Periode.Utils.leggTilPerioder;
167

8+
import java.util.HashMap;
9+
import java.util.Map;
10+
11+
import javax.validation.Valid;
12+
13+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
14+
import com.fasterxml.jackson.annotation.JsonCreator;
15+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
16+
import com.fasterxml.jackson.annotation.JsonInclude;
17+
import com.fasterxml.jackson.annotation.JsonInclude.Include;
18+
import com.fasterxml.jackson.annotation.JsonProperty;
19+
20+
import no.nav.k9.søknad.felles.type.Landkode;
21+
import no.nav.k9.søknad.felles.type.Periode;
22+
1723
@JsonIgnoreProperties(ignoreUnknown = true)
1824
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
1925
public class Bosteder {
2026

21-
@JsonProperty(value="perioder")
27+
@JsonProperty(value = "perioder")
2228
@Valid
2329
@JsonInclude(value = Include.ALWAYS)
2430
public final Map<Periode, BostedPeriodeInfo> perioder;
2531

2632
@JsonCreator
2733
public Bosteder(
28-
@JsonProperty("perioder")
29-
Map<Periode, BostedPeriodeInfo> perioder) {
34+
@JsonProperty("perioder") Map<Periode, BostedPeriodeInfo> perioder) {
3035
this.perioder = (perioder == null) ? emptyMap() : unmodifiableMap(perioder);
3136
}
3237

3338
public Map<Periode, BostedPeriodeInfo> getPerioder() {
3439
return perioder;
3540
}
36-
41+
3742
public static Builder builder() {
3843
return new Builder();
3944
}
@@ -57,28 +62,35 @@ public Builder periode(Periode periode, BostedPeriodeInfo bostedPeriodeInfo) {
5762

5863
public Bosteder build() {
5964
return new Bosteder(
60-
perioder
61-
);
65+
perioder);
6266
}
6367
}
6468

65-
69+
@JsonIgnoreProperties(ignoreUnknown = true)
70+
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
6671
public static class BostedPeriodeInfo {
72+
73+
@JsonProperty(value = "land")
6774
public final Landkode land;
6875

6976
@JsonCreator
70-
private BostedPeriodeInfo( @JsonProperty("land") Landkode land) {
77+
private BostedPeriodeInfo(@JsonProperty(value = "land") Landkode land) {
7178
this.land = land;
7279
}
7380

81+
public Landkode getLand() {
82+
return land;
83+
}
84+
7485
public static Builder builder() {
7586
return new Builder();
7687
}
7788

7889
public static final class Builder {
7990
private Landkode land;
8091

81-
private Builder() {}
92+
private Builder() {
93+
}
8294

8395
public Builder land(Landkode land) {
8496
this.land = land;
@@ -87,8 +99,7 @@ public Builder land(Landkode land) {
8799

88100
public BostedPeriodeInfo build() {
89101
return new BostedPeriodeInfo(
90-
land
91-
);
102+
land);
92103
}
93104
}
94105
}

soknad/src/main/java/no/nav/k9/søknad/felles/personopplysninger/Søker.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
66
import com.fasterxml.jackson.annotation.JsonProperty;
77
import no.nav.k9.søknad.felles.type.NorskIdentitetsnummer;
8+
import no.nav.k9.søknad.felles.type.Person;
89
import no.nav.k9.søknad.felles.type.PersonIdent;
910

1011
import javax.validation.Valid;
@@ -13,7 +14,7 @@
1314

1415
@JsonIgnoreProperties(ignoreUnknown = true)
1516
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
16-
public class Søker {
17+
public class Søker implements Person {
1718

1819
@JsonProperty(value = "norskIdentitetsnummer", required = true)
1920
@NotNull
@@ -36,6 +37,7 @@ public boolean equals(Object obj) {
3637
return Objects.equals(norskIdentitetsnummer, other.norskIdentitetsnummer);
3738
}
3839

40+
@Override
3941
public PersonIdent getPersonIdent() {
4042
return norskIdentitetsnummer;
4143
}

0 commit comments

Comments
 (0)