From 425b27ffde1451e27786a03d915466115503fcd1 Mon Sep 17 00:00:00 2001 From: ehellerslien Date: Fri, 19 Apr 2024 13:14:15 +0200 Subject: [PATCH 01/11] =?UTF-8?q?Lagt=20p=C3=A5=20JsonSubTypes=20annotasjo?= =?UTF-8?q?ner=20p=C3=A5=20klasser=20som=20arves?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 13 ++++ .../regler/domain/beregning/Grunnpensjon.kt | 7 +++ .../domain/beregning/Tilleggspensjon.kt | 8 +++ .../domain/beregning/Ytelseskomponent.kt | 43 ++++++++++++- .../penobjekter/BeregningYtelseskomponent.kt | 8 +++ .../penobjekter/MotregningYtelseskomponent.kt | 10 +++ .../AbstraktAvkortingsinformasjon.kt | 7 +++ .../beregning2011/AbstraktBarnetillegg.kt | 10 +++ .../beregning2011/AbstraktBarnetilleggUT.kt | 7 +++ .../AbstraktBarnetilleggperiode.kt | 8 +++ .../AbstraktBeregningsResultat.kt | 10 +++ .../AbstraktBeregningsgrunnlag.kt | 10 +++ .../domain/beregning2011/AfpLivsvarig.kt | 9 +++ .../domain/beregning2011/Beregning2011.kt | 13 ++++ .../domain/beregning2011/Pensjonstillegg.kt | 8 ++- .../beregning2011/SisteAldersberegning2011.kt | 6 ++ .../domain/beregning2011/SisteBeregning.kt | 8 +++ .../regler/domain/grunnlag/Beholdning.kt | 10 +++ .../domain/vedtak/AbstraktBeregningsvilkar.kt | 16 +++++ .../regler/domain/vedtak/AbstraktVilkar.kt | 14 +++++ .../vedtak/AbstraktVilkarsprovResultat.kt | 11 +++- .../domain/vedtak/VilkarsprovInformasjon.kt | 8 +++ .../nav/pensjon/regler/to/ServiceRequest.kt | 61 +++++++++++++++++++ .../to/SimulerRevurderAP2011For2025Request.kt | 2 +- .../to/VilkarsprovAlderpensjon2016Request.kt | 7 ++- 25 files changed, 307 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 022e4e2..65bed59 100644 --- a/pom.xml +++ b/pom.xml @@ -6,6 +6,9 @@ 10.29.0-SNAPSHOT jar pensjon-service :: Rule services API + + 2.17.0 + org.apache.commons @@ -29,6 +32,16 @@ ${kotlin.version} test + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + 17 diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Grunnpensjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Grunnpensjon.kt index 2aa8176..4cd9bf2 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Grunnpensjon.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Grunnpensjon.kt @@ -1,5 +1,8 @@ package no.nav.pensjon.regler.domain.beregning +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.beregning2011.BasisGrunnpensjon import no.nav.pensjon.regler.domain.kode.FormelKodeCti import no.nav.pensjon.regler.domain.kode.GPSatsTypeCti import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti @@ -8,6 +11,10 @@ import no.nav.pensjon.regler.domain.trygdetid.AnvendtTrygdetid /** * Grunnpensjon */ +@JsonSubTypes( + JsonSubTypes.Type(value = BasisGrunnpensjon::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") open class Grunnpensjon : Ytelseskomponent { /** * Prosentsatsen. diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt index d6fc6bf..f83e0c0 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt @@ -1,5 +1,8 @@ package no.nav.pensjon.regler.domain.beregning +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.beregning2011.BasisTilleggspensjon import no.nav.pensjon.regler.domain.kode.FormelKodeCti import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti import no.nav.pensjon.regler.domain.util.formula.Formel @@ -8,6 +11,10 @@ import no.nav.pensjon.regler.domain.util.formula.IFormelProvider /* * Tilleggspensjon */ +@JsonSubTypes( + JsonSubTypes.Type(value = BasisTilleggspensjon::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") open class Tilleggspensjon : Ytelseskomponent, IFormelProvider { /** * Det ordinåre sluttpoengtallet. @@ -49,6 +56,7 @@ open class Tilleggspensjon : Ytelseskomponent, IFormelProvider { constructor() { formelKode = FormelKodeCti("TPx") } + constructor(tilleggspensjon: Tilleggspensjon) : super(tilleggspensjon) { if (tilleggspensjon.spt != null) { spt = Sluttpoengtall(tilleggspensjon.spt!!) diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt index 9895d5e..3715750 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt @@ -1,7 +1,10 @@ package no.nav.pensjon.regler.domain.beregning +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.Merknad -import no.nav.pensjon.regler.domain.beregning2011.ReguleringsInformasjon +import no.nav.pensjon.regler.domain.beregning.penobjekter.* +import no.nav.pensjon.regler.domain.beregning2011.* import no.nav.pensjon.regler.domain.kode.FormelKodeCti import no.nav.pensjon.regler.domain.kode.SakTypeCti import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti @@ -12,6 +15,44 @@ import java.io.Serializable * Superklasse for alle ytelser, Grunnpensjon, Sertillegg, AfpTillegg osv. For * alle ytelser gjelder at brutto - netto = fradrag. */ +@JsonSubTypes( + JsonSubTypes.Type(value = FasteUtgifterTilleggUT::class, name = ""), + JsonSubTypes.Type(value = Garantitillegg_Art_27_UT::class), + JsonSubTypes.Type(value = MinstenivatilleggPensjonistpar::class), + JsonSubTypes.Type(value = Mendel::class), + JsonSubTypes.Type(value = Paragraf_8_5_1_tillegg::class), + JsonSubTypes.Type(value = Ventetillegg::class), + JsonSubTypes.Type(value = MinstenivatilleggIndividuelt::class), + JsonSubTypes.Type(value = Ektefelletillegg::class), + JsonSubTypes.Type(value = GjenlevendetilleggAP::class), + JsonSubTypes.Type(value = GjenlevendetilleggAPKap19::class), + JsonSubTypes.Type(value = BeregningYtelseskomponent::class), + JsonSubTypes.Type(value = Garantitillegg::class), + JsonSubTypes.Type(value = TilleggTilHjelpIHuset::class), + JsonSubTypes.Type(value = Pensjonstillegg::class), + JsonSubTypes.Type(value = Skjermingstillegg::class), + JsonSubTypes.Type(value = KrigOgGammelYrkesskade::class), + JsonSubTypes.Type(value = FasteUtgifterTillegg::class), + JsonSubTypes.Type(value = TemporarYtelseskomponent::class), + JsonSubTypes.Type(value = Familietillegg::class), + JsonSubTypes.Type(value = AfpKompensasjonstillegg::class), + JsonSubTypes.Type(value = Gjenlevendetillegg::class), + JsonSubTypes.Type(value = AfpLivsvarig::class), + JsonSubTypes.Type(value = Tilleggspensjon::class), + JsonSubTypes.Type(value = UforetilleggTilAlderspensjon::class), + JsonSubTypes.Type(value = Hjelpeloshetsbidrag::class), + JsonSubTypes.Type(value = Sertillegg::class), + JsonSubTypes.Type(value = AfpKronetillegg::class), + JsonSubTypes.Type(value = AfpTillegg::class), + JsonSubTypes.Type(value = EktefelletilleggUT::class), + JsonSubTypes.Type(value = Grunnpensjon::class), + JsonSubTypes.Type(value = Garantitillegg_Art_50::class), + JsonSubTypes.Type(value = UforetrygdOrdiner::class), + JsonSubTypes.Type(value = Inntektspensjon::class), + JsonSubTypes.Type(value = Garantipensjon::class), + JsonSubTypes.Type(value = Garantitillegg_Art_27::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class Ytelseskomponent : Serializable { /** * Brutto beløp. diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/penobjekter/BeregningYtelseskomponent.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/penobjekter/BeregningYtelseskomponent.kt index 2483d7a..c241713 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/penobjekter/BeregningYtelseskomponent.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/penobjekter/BeregningYtelseskomponent.kt @@ -1,11 +1,19 @@ package no.nav.pensjon.regler.domain.beregning.penobjekter +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.beregning.Beregning import no.nav.pensjon.regler.domain.beregning.Ytelseskomponent /** * Created by N123422 on 06.11.2014. */ +@JsonSubTypes( + JsonSubTypes.Type(value = MotregningYtelseskomponent::class), + JsonSubTypes.Type(value = SkattefriGrunnpensjon::class), + JsonSubTypes.Type(value = SkattefriUforetrygdOrdiner::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class BeregningYtelseskomponent : Ytelseskomponent() { //Benyttes i PEN domenemodell for MapKey in Beregning. private var ytelseKomponentTypeName: String? = null diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/penobjekter/MotregningYtelseskomponent.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/penobjekter/MotregningYtelseskomponent.kt index 63a7f60..2d66cff 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/penobjekter/MotregningYtelseskomponent.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/penobjekter/MotregningYtelseskomponent.kt @@ -1,8 +1,18 @@ package no.nav.pensjon.regler.domain.beregning.penobjekter +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo + /** * Created by N123422 on 06.11.2014. */ +@JsonSubTypes( + JsonSubTypes.Type(value = ArbeidsavklaringspengerUT::class), + JsonSubTypes.Type(value = Arbeidsavklaringspenger::class), + JsonSubTypes.Type(value = Sykepenger::class), + JsonSubTypes.Type(value = SykepengerUT::class), +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class MotregningYtelseskomponent : BeregningYtelseskomponent() { var dagsats = 0 var antallDager = 0 diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktAvkortingsinformasjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktAvkortingsinformasjon.kt index 1a65a31..7c020d4 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktAvkortingsinformasjon.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktAvkortingsinformasjon.kt @@ -1,11 +1,18 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.kode.InntektsavkortingTypeCti import java.io.Serializable /** * Inneholder felles felt for avkorting av både UT og BT. Enkelte felt fra tidligere klasse Avkortningsinformasjon. */ +@JsonSubTypes( + JsonSubTypes.Type(value = AvkortingsinformasjonBT::class), + JsonSubTypes.Type(value = AvkortingsinformasjonBT::class), +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktAvkortingsinformasjon : Serializable { /** * Antall måneder før virk. diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetillegg.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetillegg.kt index 7521dad..5fa49d7 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetillegg.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetillegg.kt @@ -1,9 +1,19 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.beregning.BarnetilleggFellesbarn +import no.nav.pensjon.regler.domain.beregning.BarnetilleggSerkullsbarn import no.nav.pensjon.regler.domain.beregning.Ytelseskomponent import no.nav.pensjon.regler.domain.kode.AvkortingsArsakCti import java.io.Serializable +@JsonSubTypes( + JsonSubTypes.Type(value = BarnetilleggSerkullsbarn::class), + JsonSubTypes.Type(value = BarnetilleggFellesbarn::class), + JsonSubTypes.Type(value = AbstraktBarnetilleggUT::class), +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktBarnetillegg : Ytelseskomponent, Serializable { /** * Antall barn i kullet. diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetilleggUT.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetilleggUT.kt index dad9ca8..0cfebca 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetilleggUT.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetilleggUT.kt @@ -1,7 +1,14 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import java.io.Serializable +@JsonSubTypes( + JsonSubTypes.Type(value = BarnetilleggFellesbarnUT::class), + JsonSubTypes.Type(value = BarnetilleggSerkullsbarnUT::class), +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktBarnetilleggUT : AbstraktBarnetillegg, Serializable, UforetrygdYtelseskomponent { /** * Detaljer rundt avkortning av netto barnetillegg. diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetilleggperiode.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetilleggperiode.kt index 06be141..e923a92 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetilleggperiode.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBarnetilleggperiode.kt @@ -1,9 +1,17 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.trygdetid.Brok import java.io.Serializable import java.util.* +@JsonSubTypes( + JsonSubTypes.Type(value = TidligereBarnetilleggperiode::class), + JsonSubTypes.Type(value = FremtidigBarnetilleggperiode::class), + JsonSubTypes.Type(value = AvkortingsinformasjonBT::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktBarnetilleggperiode : Serializable { /** * Start for periode med et antall barn. diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBeregningsResultat.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBeregningsResultat.kt index 584529c..eb00c37 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBeregningsResultat.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBeregningsResultat.kt @@ -1,5 +1,7 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.Merknad import no.nav.pensjon.regler.domain.kode.BeregningArsakCti import no.nav.pensjon.regler.domain.kode.BorMedTypeCti @@ -7,6 +9,14 @@ import no.nav.pensjon.regler.domain.kode.SivilstandTypeCti import java.io.Serializable import java.util.* +@JsonSubTypes( + JsonSubTypes.Type(value = BeregningsresultatUforetrygd::class), + JsonSubTypes.Type(value = BeregningsResultatAlderspensjon2016::class), + JsonSubTypes.Type(value = BeregningsResultatAlderspensjon2025::class), + JsonSubTypes.Type(value = BeregningsResultatAfpPrivat::class), + JsonSubTypes.Type(value = BeregningsResultatAlderspensjon2011::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktBeregningsResultat protected constructor() : Serializable { var virkFom: Date? = null var pensjonUnderUtbetaling: PensjonUnderUtbetaling? = null diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBeregningsgrunnlag.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBeregningsgrunnlag.kt index 2ab5c98..e1e3dd9 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBeregningsgrunnlag.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AbstraktBeregningsgrunnlag.kt @@ -1,8 +1,18 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.beregning.BarnetilleggFellesbarn +import no.nav.pensjon.regler.domain.beregning.BarnetilleggSerkullsbarn import no.nav.pensjon.regler.domain.kode.FormelKodeCti import java.io.Serializable +@JsonSubTypes( + JsonSubTypes.Type(value = BeregningsgrunnlagKonvertert::class), + JsonSubTypes.Type(value = BeregningsgrunnlagOrdiner::class), + JsonSubTypes.Type(value = BeregningsgrunnlagYrkesskade::class), +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktBeregningsgrunnlag protected constructor() : Serializable { var formelKode: FormelKodeCti? = null var arsbelop = 0 diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AfpLivsvarig.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AfpLivsvarig.kt index 846c20e..a268ad3 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AfpLivsvarig.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/AfpLivsvarig.kt @@ -1,9 +1,18 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.beregning.Ytelseskomponent import no.nav.pensjon.regler.domain.kode.FormelKodeCti import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti +import no.nav.pensjon.regler.domain.vedtak.VilkarsprovInformasjon2011 +import no.nav.pensjon.regler.domain.vedtak.VilkarsprovInformasjon2016 +import no.nav.pensjon.regler.domain.vedtak.VilkarsprovInformasjon2025 +@JsonSubTypes( + JsonSubTypes.Type(value = FremskrevetAfpLivsvarig::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") open class AfpLivsvarig : Ytelseskomponent { var justeringsbelop = 0 var afpProsentgrad = 0.0 diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Beregning2011.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Beregning2011.kt index 598689d..513cb51 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Beregning2011.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Beregning2011.kt @@ -1,15 +1,28 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.IBeregning import no.nav.pensjon.regler.domain.Merknad import no.nav.pensjon.regler.domain.PenPerson import no.nav.pensjon.regler.domain.beregning.BeregningRelasjon +import no.nav.pensjon.regler.domain.beregning.penobjekter.Arbeidsavklaringspenger +import no.nav.pensjon.regler.domain.beregning.penobjekter.ArbeidsavklaringspengerUT +import no.nav.pensjon.regler.domain.beregning.penobjekter.Sykepenger +import no.nav.pensjon.regler.domain.beregning.penobjekter.SykepengerUT import no.nav.pensjon.regler.domain.kode.BeregningGjelderTypeCti import no.nav.pensjon.regler.domain.kode.BeregningMetodeTypeCti import no.nav.pensjon.regler.domain.kode.BeregningTypeCti import no.nav.pensjon.regler.domain.kode.ResultatTypeCti import java.io.Serializable +@JsonSubTypes( + JsonSubTypes.Type(value = Uforetrygdberegning::class), + JsonSubTypes.Type(value = AfpPrivatBeregning::class), + JsonSubTypes.Type(value = AldersberegningKapittel20::class), + JsonSubTypes.Type(value = AldersberegningKapittel19::class), +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class Beregning2011 : IBeregning, Serializable { var gjelderPerson: PenPerson? = null open var grunnbelop = 0 diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Pensjonstillegg.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Pensjonstillegg.kt index 598476a..668ac01 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Pensjonstillegg.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Pensjonstillegg.kt @@ -1,10 +1,16 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.beregning.Ytelseskomponent import no.nav.pensjon.regler.domain.kode.FormelKodeCti import no.nav.pensjon.regler.domain.kode.MinstepenNivaCti import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti +@JsonSubTypes( + JsonSubTypes.Type(value = BasisPensjonstillegg::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") open class Pensjonstillegg : Ytelseskomponent { var forholdstall67 = 0.0 var minstepensjonsnivaSats = 0.0 @@ -19,7 +25,7 @@ open class Pensjonstillegg : Ytelseskomponent { formelKode = FormelKodeCti("PenTx") } - constructor(pt: Pensjonstillegg) : super(pt){ + constructor(pt: Pensjonstillegg) : super(pt) { forholdstall67 = pt.forholdstall67 minstepensjonsnivaSats = pt.minstepensjonsnivaSats if (pt.minstepensjonsnivaSatsType != null) { diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/SisteAldersberegning2011.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/SisteAldersberegning2011.kt index a80bb4a..434d122 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/SisteAldersberegning2011.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/SisteAldersberegning2011.kt @@ -1,5 +1,7 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.grunnlag.Beholdninger import no.nav.pensjon.regler.domain.grunnlag.Persongrunnlag import no.nav.pensjon.regler.domain.kode.BeregningMetodeTypeCti @@ -12,6 +14,10 @@ import no.nav.pensjon.regler.domain.vedtak.VilkarsVedtak * Denne benyttes av 2011, 2016 og 2025 * For 2016 vil alle feltene være aktuelle */ +@JsonSubTypes( + JsonSubTypes.Type(value = SisteAldersberegning2016::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") open class SisteAldersberegning2011 : SisteBeregning() { var regelverkType: RegelverkTypeCti? = null // Dene benyttes for å avgjøre om det er på 2011, 2016 eller 2025. var basispensjon: Basispensjon? = null // 2011 diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/SisteBeregning.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/SisteBeregning.kt index 348a90f..28a6481 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/SisteBeregning.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/SisteBeregning.kt @@ -1,5 +1,7 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.kode.BorMedTypeCti import no.nav.pensjon.regler.domain.kode.ResultatTypeCti import no.nav.pensjon.regler.domain.kode.SivilstandTypeCti @@ -9,6 +11,12 @@ import java.util.* /** * Felles grensesnitt for Siste beregninger slik som SisteBeregning1967, SisteAldersberegning2011, SisteGjenlevendeberegning */ +@JsonSubTypes( + JsonSubTypes.Type(value = SisteAldersberegning2011::class), + JsonSubTypes.Type(value = SisteBeregning1967::class), + JsonSubTypes.Type(value = SisteUforepensjonBeregning::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class SisteBeregning protected constructor() : Serializable { var virkDato: Date? = null var tt_anv = 0 diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt index b512c58..7d94ccf 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt @@ -1,5 +1,8 @@ package no.nav.pensjon.regler.domain.grunnlag +import com.fasterxml.jackson.annotation.JsonAutoDetect +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.Merknad import no.nav.pensjon.regler.domain.Opptjening import no.nav.pensjon.regler.domain.beregning2011.LonnsvekstInformasjon @@ -8,6 +11,13 @@ import no.nav.pensjon.regler.domain.kode.BeholdningsTypeCti import no.nav.pensjon.regler.domain.kode.FormelKodeCti import java.io.Serializable +@JsonSubTypes( + JsonSubTypes.Type(value = Garantitilleggsbeholdning::class, name = "Garantitilleggsbeholdning"), + JsonSubTypes.Type(value = AfpOpptjening::class, name = "AfpOpptjening"), + JsonSubTypes.Type(value = Garantipensjonsbeholdning::class, name = "Garantipensjonsbeholdning"), + JsonSubTypes.Type(value = Pensjonsbeholdning::class, name = "Pensjonsbeholdning") +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class Beholdning protected constructor() : Serializable { var ar = 0 var totalbelop = 0.0 diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktBeregningsvilkar.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktBeregningsvilkar.kt index 6f4b282..39f21ca 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktBeregningsvilkar.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktBeregningsvilkar.kt @@ -1,8 +1,24 @@ package no.nav.pensjon.regler.domain.vedtak +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.Merknad +import no.nav.pensjon.regler.domain.beregning2011.* import java.io.Serializable +@JsonSubTypes( + JsonSubTypes.Type(value = Alderspensjon2011VedDod::class), + JsonSubTypes.Type(value = TrygdetidBeregningsvilkar::class), + JsonSubTypes.Type(value = TidligereGjenlevendePensjon::class), + JsonSubTypes.Type(value = Yrkesskadegrad::class), + JsonSubTypes.Type(value = InntektVedSkadetidspunktet::class), + JsonSubTypes.Type(value = InntektEtterUforhet::class), + JsonSubTypes.Type(value = Skadetidspunkt::class), + JsonSubTypes.Type(value = Uforetidspunkt::class), + JsonSubTypes.Type(value = InntektForUforhet::class), + JsonSubTypes.Type(value = Uforegrad::class), +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktBeregningsvilkar protected constructor() : Serializable { var merknadListe: List = mutableListOf() } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkar.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkar.kt index 97bc553..2b5c279 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkar.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkar.kt @@ -1,8 +1,22 @@ package no.nav.pensjon.regler.domain.vedtak +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.beregning2011.BeregningsvilkarPeriode import no.nav.pensjon.regler.domain.kode.VilkarOppfyltUTCti import java.io.Serializable +@JsonSubTypes( + JsonSubTypes.Type(value = FortsattMedlemskap::class), + JsonSubTypes.Type(value = BeregningsvilkarPeriode::class), + JsonSubTypes.Type(value = ForutgaendeMedlemskap::class), + JsonSubTypes.Type(value = RettTilEksportEtterTrygdeavtaler::class), + JsonSubTypes.Type(value = MedlemskapForUTEtterTrygdeavtaler::class), + JsonSubTypes.Type(value = UngUfor::class), + JsonSubTypes.Type(value = RettTilGjenlevendetillegg::class), + JsonSubTypes.Type(value = Yrkesskadegrad::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktVilkar : Serializable { var resultat: VilkarOppfyltUTCti? = null diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkarsprovResultat.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkarsprovResultat.kt index af016b7..d6b7879 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkarsprovResultat.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkarsprovResultat.kt @@ -1,6 +1,13 @@ package no.nav.pensjon.regler.domain.vedtak +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import java.io.Serializable -abstract class AbstraktVilkarsprovResultat : Serializable { -} \ No newline at end of file +@JsonSubTypes( + JsonSubTypes.Type(value = VilkarsprovAlderspensjon67Resultat::class), + JsonSubTypes.Type(value = VilkarsprovAlderspensjonResultat::class), + JsonSubTypes.Type(value = VilkarsprovUforetrygdResultat::class), +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") +abstract class AbstraktVilkarsprovResultat : Serializable \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/VilkarsprovInformasjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/VilkarsprovInformasjon.kt index d6e2e35..4b6d7d6 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/VilkarsprovInformasjon.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/VilkarsprovInformasjon.kt @@ -1,11 +1,19 @@ package no.nav.pensjon.regler.domain.vedtak +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.beregning2011.AfpLivsvarig import no.nav.pensjon.regler.domain.beregning2011.FremskrevetAfpLivsvarig import no.nav.pensjon.regler.domain.beregning2011.FremskrevetPensjonUnderUtbetaling import no.nav.pensjon.regler.domain.beregning2011.PensjonUnderUtbetaling import java.io.Serializable +@JsonSubTypes( + JsonSubTypes.Type(value = VilkarsprovInformasjon2011::class), + JsonSubTypes.Type(value = VilkarsprovInformasjon2016::class), + JsonSubTypes.Type(value = VilkarsprovInformasjon2025::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class VilkarsprovInformasjon : Serializable { var ektefelleInntektOver2g = false var flyktning = false diff --git a/src/main/kotlin/no/nav/pensjon/regler/to/ServiceRequest.kt b/src/main/kotlin/no/nav/pensjon/regler/to/ServiceRequest.kt index 079ccd2..cc7d084 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/to/ServiceRequest.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/to/ServiceRequest.kt @@ -1,5 +1,66 @@ package no.nav.pensjon.regler.to +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.vedtak.VilkarsprovInformasjon2011 +import no.nav.pensjon.regler.domain.vedtak.VilkarsprovInformasjon2016 +import no.nav.pensjon.regler.domain.vedtak.VilkarsprovInformasjon2025 import java.io.Serializable +//@JsonSubTypes( +// JsonSubTypes.Type(value = KonverterTilUforetrygdRequest::class), +// JsonSubTypes.Type(value = RegulerAfpPrivatBeregningRequest::class), +// JsonSubTypes.Type(value = VilkarsprovAlderpensjonOvergangskullRequest::class), +// JsonSubTypes.Type(value = RegulerBeregning2011Request::class), +// JsonSubTypes.Type(value = InntektsavkortningUforetrygdRequest::class), +// JsonSubTypes.Type(value = HentVeietGrunnbelopListeRequest::class), +// JsonSubTypes.Type(value = BeregnOpptjeningRequest::class), +// JsonSubTypes.Type(value = BeregnOvergangskullRequest::class), +// JsonSubTypes.Type(value = BeregnPoengrekkeRequest::class), +// JsonSubTypes.Type(value = BeregnPoengtallBatchRequest::class), +// JsonSubTypes.Type(value = BeregnPoengtallRequest::class), +// JsonSubTypes.Type(value = BeregnUforetrygdRequest::class), +// JsonSubTypes.Type(value = BeregnYtelseRequest::class), +// JsonSubTypes.Type(value = BeslutningsstotteRequest::class), +// JsonSubTypes.Type(value = FaktoromregnBeregningBatchRequest::class), +// JsonSubTypes.Type(value = FaktoromregnInntektBatchRequest::class), +// JsonSubTypes.Type(value = FerdigstillEtteroppgjorUforetrygdRequest::class), +// JsonSubTypes.Type(value = HentGrunnbelopListeRequest::class), +// JsonSubTypes.Type(value = HentGyldigSatsRequest::class), +// JsonSubTypes.Type(value = IdentifiserRegelendringerRequest::class), +// JsonSubTypes.Type(value = InstitusjonsOppholdRequest::class), +// JsonSubTypes.Type(value = KategoriserAfpEtteroppgjorRequest::class), +// JsonSubTypes.Type(value = KontrollerInformasjonsgrunnlagRequest::class), +// JsonSubTypes.Type(value = KonverterAP1967TilAP2011Request::class), +// JsonSubTypes.Type(value = VilkarsprovAlderpensjon2016Request::class), +// JsonSubTypes.Type(value = VilkarsprovEktefelletillegg2011Request::class), +// JsonSubTypes.Type(value = VilkarsprovAlderpensjonForsteUttakRequest::class), +// JsonSubTypes.Type(value = VilkarsprovRequest::class), +// JsonSubTypes.Type(value = RegulerBeregningMangelfulltGrunnlagRequest::class), +// JsonSubTypes.Type(value = SimulerAP2011For2025Request::class), +// JsonSubTypes.Type(value = BeregnAlderspensjon2025ForsteUttakRequest::class), +// JsonSubTypes.Type(value = VilkarsprovHalvpensjonRequest::class), +// JsonSubTypes.Type(value = BeregnAfpEtteroppgjorRequest::class), +// JsonSubTypes.Type(value = SamletEktefellepensjonRequest::class), +// JsonSubTypes.Type(value = RevurderingYtelse1967Request::class), +// JsonSubTypes.Type(value = RevurderingAlderspensjon2011Request::class), +// JsonSubTypes.Type(value = BeregnInstitusjonsoppholdRequest::class), +// JsonSubTypes.Type(value = TrygdetidRequest::class), +// JsonSubTypes.Type(value = RevurderingAlderspensjon2025Request::class), +// JsonSubTypes.Type(value = RevurderingOvergangskullRequest::class), +// JsonSubTypes.Type(value = BeregnAfpPrivatRequest::class), +// JsonSubTypes.Type(value = RegulerPensjonsbeholdningRequest::class), +// JsonSubTypes.Type(value = VilkarsprovForsorgingstilleggRequest::class), +// JsonSubTypes.Type(value = BeregnAlderspensjon2016ForsteUttakRequest::class), +// JsonSubTypes.Type(value = RegulerBeregningRequest::class), +// JsonSubTypes.Type(value = BeregnForsorgingstilleggRequest::class), +// JsonSubTypes.Type(value = VilkarsprovAlderpensjon2025Request::class), +// JsonSubTypes.Type(value = BeregnAlderspensjon2011ForsteUttakRequest::class), +// JsonSubTypes.Type(value = RevurderingAlderspensjon2016Request::class), +// JsonSubTypes.Type(value = VilkarsprovAlderpensjon2011Request::class), +// JsonSubTypes.Type(value = SimulerRevurderAP2011For2025Request::class), +// JsonSubTypes.Type(value = BeregnMinstepensjonRequest::class), +// JsonSubTypes.Type(value = SimuleringRequest::class) +//) +//@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class ServiceRequest : Serializable \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/to/SimulerRevurderAP2011For2025Request.kt b/src/main/kotlin/no/nav/pensjon/regler/to/SimulerRevurderAP2011For2025Request.kt index b53e88c..c8fade7 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/to/SimulerRevurderAP2011For2025Request.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/to/SimulerRevurderAP2011For2025Request.kt @@ -8,7 +8,7 @@ import no.nav.pensjon.regler.domain.grunnlag.GarantitilleggsbeholdningGrunnlag * Opprettet for CR195877 * */ -class SimulerRevurderAP2011For2025Request : ServiceRequest() { +class SimulerRevurderAP2011For2025Request() : ServiceRequest() { var ap2011Request: RevurderingAlderspensjon2011Request? = null var garantitilleggsbeholdningGrunnlag: GarantitilleggsbeholdningGrunnlag? = null var delingstallUtvalg: DelingstallUtvalg? = null diff --git a/src/main/kotlin/no/nav/pensjon/regler/to/VilkarsprovAlderpensjon2016Request.kt b/src/main/kotlin/no/nav/pensjon/regler/to/VilkarsprovAlderpensjon2016Request.kt index ad821ed..88f0c5d 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/to/VilkarsprovAlderpensjon2016Request.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/to/VilkarsprovAlderpensjon2016Request.kt @@ -1,7 +1,10 @@ package no.nav.pensjon.regler.to -import no.nav.pensjon.regler.domain.beregning2011.AfpLivsvarig -import no.nav.pensjon.regler.domain.beregning2011.SisteAldersberegning2016 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.beregning.* +import no.nav.pensjon.regler.domain.beregning.penobjekter.* +import no.nav.pensjon.regler.domain.beregning2011.* import no.nav.pensjon.regler.domain.grunnlag.DelingstallUtvalg import no.nav.pensjon.regler.domain.grunnlag.ForholdstallUtvalg import no.nav.pensjon.regler.domain.grunnlag.GarantitilleggsbeholdningGrunnlag From 612b58cea32ee14a0e396c27e4c5c7445280fdc4 Mon Sep 17 00:00:00 2001 From: ehellerslien Date: Mon, 22 Apr 2024 08:35:40 +0200 Subject: [PATCH 02/11] =?UTF-8?q?Fjerner=20name=20p=C3=A5=20jsonsubtypes,?= =?UTF-8?q?=20bruker=20default?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pensjon/regler/domain/beregning/Ytelseskomponent.kt | 2 +- .../no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt index 3715750..f2e9d63 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt @@ -16,7 +16,7 @@ import java.io.Serializable * alle ytelser gjelder at brutto - netto = fradrag. */ @JsonSubTypes( - JsonSubTypes.Type(value = FasteUtgifterTilleggUT::class, name = ""), + JsonSubTypes.Type(value = FasteUtgifterTilleggUT::class), JsonSubTypes.Type(value = Garantitillegg_Art_27_UT::class), JsonSubTypes.Type(value = MinstenivatilleggPensjonistpar::class), JsonSubTypes.Type(value = Mendel::class), diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt index 7d94ccf..bfb8c43 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt @@ -12,10 +12,10 @@ import no.nav.pensjon.regler.domain.kode.FormelKodeCti import java.io.Serializable @JsonSubTypes( - JsonSubTypes.Type(value = Garantitilleggsbeholdning::class, name = "Garantitilleggsbeholdning"), - JsonSubTypes.Type(value = AfpOpptjening::class, name = "AfpOpptjening"), - JsonSubTypes.Type(value = Garantipensjonsbeholdning::class, name = "Garantipensjonsbeholdning"), - JsonSubTypes.Type(value = Pensjonsbeholdning::class, name = "Pensjonsbeholdning") + JsonSubTypes.Type(value = Garantitilleggsbeholdning::class), + JsonSubTypes.Type(value = AfpOpptjening::class), + JsonSubTypes.Type(value = Garantipensjonsbeholdning::class), + JsonSubTypes.Type(value = Pensjonsbeholdning::class) ) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class Beholdning protected constructor() : Serializable { From 6df8845d1734c9ae63b8bed3c0f667d6a2951e37 Mon Sep 17 00:00:00 2001 From: "Schiefloe, Jens" Date: Wed, 24 Apr 2024 09:36:50 +0200 Subject: [PATCH 03/11] =?UTF-8?q?issue-972:=20JsonSubTypes=20p=C3=A5=20int?= =?UTF-8?q?erfaces=20+=20opprydding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 17 +++--- .../nav/pensjon/regler/domain/IBeregning.kt | 15 +++++ .../regler/domain/Omsorgsopptjening.kt | 10 ++++ .../domain/beregning/Tilleggspensjon.kt | 6 -- .../domain/beregning/Ytelseskomponent.kt | 57 ++++++++----------- .../beregning2011/BeregningsInformasjon.kt | 9 +++ .../beregning2011/Gjenlevendetillegg.kt | 2 - .../beregning2011/GjenlevendetilleggAP.kt | 3 - .../GjenlevendetilleggAPKap19.kt | 3 - .../beregning2011/IBeregningsInformasjon.kt | 6 ++ .../IBeregningsInformasjon2011.kt | 6 ++ .../domain/beregning2011/IFremskriving.kt | 7 +++ .../domain/beregning2011/IGRegulering.kt | 7 +++ .../regler/domain/beregning2011/IJustering.kt | 8 +++ .../domain/beregning2011/ILonnsvekst.kt | 7 +++ .../regler/domain/beregning2011/Regulering.kt | 8 +++ .../UforetrygdYtelseskomponent.kt | 12 +++- .../domain/util/formula/IFormelProvider.kt | 15 ++++- 18 files changed, 141 insertions(+), 57 deletions(-) diff --git a/pom.xml b/pom.xml index e699243..8215aea 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,13 @@ jar pensjon-service :: Rule services API + 17 + 1.9.0 + + UTF-8 + UTF-8 + 17 + official 2.17.0 @@ -43,15 +50,7 @@ ${jackson.version} - - 17 - 1.9.0 - - UTF-8 - UTF-8 - 17 - official - + src/main/kotlin src/test/kotlin diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt index 3708574..9dd82b7 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt @@ -1,10 +1,25 @@ package no.nav.pensjon.regler.domain +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.beregning.Beregning import no.nav.pensjon.regler.domain.beregning.BeregningRelasjon +import no.nav.pensjon.regler.domain.beregning2011.AfpPrivatBeregning +import no.nav.pensjon.regler.domain.beregning2011.AldersberegningKapittel19 +import no.nav.pensjon.regler.domain.beregning2011.AldersberegningKapittel20 +import no.nav.pensjon.regler.domain.beregning2011.Uforetrygdberegning /** * Felles interface for Beregning og Beregning2011 klasser. */ +@JsonSubTypes( + JsonSubTypes.Type(value = Beregning::class), + JsonSubTypes.Type(value = AldersberegningKapittel19::class), + JsonSubTypes.Type(value = AldersberegningKapittel20::class), + JsonSubTypes.Type(value = AfpPrivatBeregning::class), + JsonSubTypes.Type(value = Uforetrygdberegning::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface IBeregning { val delberegningsListe: List } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/Omsorgsopptjening.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/Omsorgsopptjening.kt index cd90030..8bccf81 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/Omsorgsopptjening.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/Omsorgsopptjening.kt @@ -1,5 +1,15 @@ package no.nav.pensjon.regler.domain +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.beregning.Poengtall +import no.nav.pensjon.regler.domain.beregning2011.OpptjeningUT + +@JsonSubTypes( + JsonSubTypes.Type(value = Poengtall::class), + JsonSubTypes.Type(value = OpptjeningUT::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface Omsorgsopptjening { /** * Gitt år for opptjeningen diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt index f83e0c0..0616189 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt @@ -8,9 +8,6 @@ import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti import no.nav.pensjon.regler.domain.util.formula.Formel import no.nav.pensjon.regler.domain.util.formula.IFormelProvider -/* - * Tilleggspensjon - */ @JsonSubTypes( JsonSubTypes.Type(value = BasisTilleggspensjon::class) ) @@ -46,9 +43,6 @@ open class Tilleggspensjon : Ytelseskomponent, IFormelProvider { */ override var formelMap: HashMap = HashMap() - override val formelPrefix: String - get() = ytelsekomponentType?.kode!! - init { ytelsekomponentType = YtelsekomponentTypeCti("TP") } diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt index 3f07265..e9f14d3 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt @@ -16,41 +16,41 @@ import java.io.Serializable * alle ytelser gjelder at brutto - netto = fradrag. */ @JsonSubTypes( + JsonSubTypes.Type(value = AfpKompensasjonstillegg::class), + JsonSubTypes.Type(value = AfpKronetillegg::class), + JsonSubTypes.Type(value = AfpLivsvarig::class), + JsonSubTypes.Type(value = AfpTillegg::class), + JsonSubTypes.Type(value = BeregningYtelseskomponent::class), + JsonSubTypes.Type(value = Ektefelletillegg::class), + JsonSubTypes.Type(value = EktefelletilleggUT::class), + JsonSubTypes.Type(value = Familietillegg::class), + JsonSubTypes.Type(value = FasteUtgifterTillegg::class), JsonSubTypes.Type(value = FasteUtgifterTilleggUT::class), + JsonSubTypes.Type(value = Garantipensjon::class), + JsonSubTypes.Type(value = Garantitillegg::class), + JsonSubTypes.Type(value = Garantitillegg_Art_27::class), JsonSubTypes.Type(value = Garantitillegg_Art_27_UT::class), - JsonSubTypes.Type(value = MinstenivatilleggPensjonistpar::class), - JsonSubTypes.Type(value = Mendel::class), - JsonSubTypes.Type(value = Paragraf_8_5_1_tillegg::class), - JsonSubTypes.Type(value = Ventetillegg::class), - JsonSubTypes.Type(value = MinstenivatilleggIndividuelt::class), - JsonSubTypes.Type(value = Ektefelletillegg::class), + JsonSubTypes.Type(value = Garantitillegg_Art_50::class), + JsonSubTypes.Type(value = Gjenlevendetillegg::class), JsonSubTypes.Type(value = GjenlevendetilleggAP::class), JsonSubTypes.Type(value = GjenlevendetilleggAPKap19::class), - JsonSubTypes.Type(value = BeregningYtelseskomponent::class), - JsonSubTypes.Type(value = Garantitillegg::class), - JsonSubTypes.Type(value = TilleggTilHjelpIHuset::class), + JsonSubTypes.Type(value = Grunnpensjon::class), + JsonSubTypes.Type(value = Hjelpeloshetsbidrag::class), + JsonSubTypes.Type(value = Inntektspensjon::class), + JsonSubTypes.Type(value = KrigOgGammelYrkesskade::class), + JsonSubTypes.Type(value = Mendel::class), + JsonSubTypes.Type(value = MinstenivatilleggIndividuelt::class), + JsonSubTypes.Type(value = MinstenivatilleggPensjonistpar::class), + JsonSubTypes.Type(value = Paragraf_8_5_1_tillegg::class), JsonSubTypes.Type(value = Pensjonstillegg::class), + JsonSubTypes.Type(value = Sertillegg::class), JsonSubTypes.Type(value = Skjermingstillegg::class), - JsonSubTypes.Type(value = KrigOgGammelYrkesskade::class), - JsonSubTypes.Type(value = FasteUtgifterTillegg::class), JsonSubTypes.Type(value = TemporarYtelseskomponent::class), - JsonSubTypes.Type(value = Familietillegg::class), - JsonSubTypes.Type(value = AfpKompensasjonstillegg::class), - JsonSubTypes.Type(value = Gjenlevendetillegg::class), - JsonSubTypes.Type(value = AfpLivsvarig::class), JsonSubTypes.Type(value = Tilleggspensjon::class), + JsonSubTypes.Type(value = TilleggTilHjelpIHuset::class), JsonSubTypes.Type(value = UforetilleggTilAlderspensjon::class), - JsonSubTypes.Type(value = Hjelpeloshetsbidrag::class), - JsonSubTypes.Type(value = Sertillegg::class), - JsonSubTypes.Type(value = AfpKronetillegg::class), - JsonSubTypes.Type(value = AfpTillegg::class), - JsonSubTypes.Type(value = EktefelletilleggUT::class), - JsonSubTypes.Type(value = Grunnpensjon::class), - JsonSubTypes.Type(value = Garantitillegg_Art_50::class), JsonSubTypes.Type(value = UforetrygdOrdiner::class), - JsonSubTypes.Type(value = Inntektspensjon::class), - JsonSubTypes.Type(value = Garantipensjon::class), - JsonSubTypes.Type(value = Garantitillegg_Art_27::class) + JsonSubTypes.Type(value = Ventetillegg::class) ) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class Ytelseskomponent : Serializable { @@ -128,13 +128,6 @@ abstract class Ytelseskomponent : Serializable { * @param ytelseskomponent a `Ytelseskomponent` object */ - val isIFormelProvider: Boolean - /** - * Angir om ytelseskomponenten implementerer interfacet IFormelProvider. - * Dette dekker opp for mangel i Blaze Advisor som ikke kan sjekke om en klasse er et interface. - */ - get() = this is IFormelProvider - constructor() constructor(ytelseskomponent: Ytelseskomponent) { brutto = ytelseskomponent.brutto diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregningsInformasjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregningsInformasjon.kt index ecc0733..618443c 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregningsInformasjon.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregningsInformasjon.kt @@ -1,5 +1,7 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.Merknad import no.nav.pensjon.regler.domain.PenPerson import no.nav.pensjon.regler.domain.beregning.Sluttpoengtall @@ -9,6 +11,13 @@ import no.nav.pensjon.regler.domain.kode.LandCti import no.nav.pensjon.regler.domain.kode.ResultatTypeCti import java.io.Serializable + +@JsonSubTypes( + JsonSubTypes.Type(value = BeregningsInformasjon::class), + JsonSubTypes.Type(value = IBeregningsInformasjon2025::class), + JsonSubTypes.Type(value = IBeregningsInformasjon2011::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") open class BeregningsInformasjon : Serializable, IBeregningsInformasjon2011 { //Fra IBeregningsInformasjon2011 override var forholdstallUttak = 0.0 diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Gjenlevendetillegg.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Gjenlevendetillegg.kt index a224f9e..3fe9462 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Gjenlevendetillegg.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Gjenlevendetillegg.kt @@ -83,6 +83,4 @@ class Gjenlevendetillegg() : Ytelseskomponent(), UforetrygdYtelseskomponent, IFo ytelsekomponentType = YtelsekomponentTypeCti("UT_GJT") } - override val formelPrefix: String - get() = ytelsekomponentType?.kode!! } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAP.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAP.kt index ca21a8e..d5faefc 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAP.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAP.kt @@ -45,9 +45,6 @@ class GjenlevendetilleggAP : Ytelseskomponent(), IFormelProvider { */ override var formelMap: HashMap = HashMap() - override val formelPrefix: String - get() = "GJT_Kap20" - init { ytelsekomponentType = YtelsekomponentTypeCti("AP_GJT") } diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAPKap19.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAPKap19.kt index 3af8718..b26b0f6 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAPKap19.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAPKap19.kt @@ -33,9 +33,6 @@ class GjenlevendetilleggAPKap19 : Ytelseskomponent(), IFormelProvider { */ override var formelMap: HashMap = HashMap() - override val formelPrefix: String - get() = "GJT_Kap19" - init { ytelsekomponentType = YtelsekomponentTypeCti("AP_GJT_KAP19") } diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon.kt index 784f434..07ef600 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon.kt @@ -1,11 +1,17 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.PenPerson import no.nav.pensjon.regler.domain.kode.BeregningMetodeTypeCti import no.nav.pensjon.regler.domain.kode.JustertPeriodeCti import no.nav.pensjon.regler.domain.kode.LandCti import no.nav.pensjon.regler.domain.kode.ResultatTypeCti +@JsonSubTypes( + JsonSubTypes.Type(value = BeregningsInformasjon::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface IBeregningsInformasjon { var penPerson: PenPerson? var beregningsMetode: BeregningMetodeTypeCti? diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2011.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2011.kt index 8844629..e5ac7bb 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2011.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2011.kt @@ -1,7 +1,13 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.beregning.Sluttpoengtall +@JsonSubTypes( + JsonSubTypes.Type(value = BeregningsInformasjon::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface IBeregningsInformasjon2011 : IBeregningsInformasjon { var avdodesTilleggspensjonBrukt: Boolean var avdodesTrygdetidBrukt: Boolean diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IFremskriving.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IFremskriving.kt index 700ab98..9d984db 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IFremskriving.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IFremskriving.kt @@ -1,5 +1,12 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo + +@JsonSubTypes( + JsonSubTypes.Type(value = FremskrivingsDetaljer::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface IFremskriving : IJustering { var teller: Double var nevner: Double diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IGRegulering.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IGRegulering.kt index 2cf1da4..57a8e1e 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IGRegulering.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IGRegulering.kt @@ -1,5 +1,12 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo + +@JsonSubTypes( + JsonSubTypes.Type(value = GReguleringDetaljer::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface IGRegulering : IJustering { var forrigeG: Int var gjeldendeG: Int diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IJustering.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IJustering.kt index 19f329a..4cb9adb 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IJustering.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IJustering.kt @@ -1,7 +1,15 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo import java.util.* +@JsonSubTypes( + JsonSubTypes.Type(value = IGRegulering::class), + JsonSubTypes.Type(value = IFremskriving::class), + JsonSubTypes.Type(value = ILonnsvekst::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface IJustering { var justeringsfaktor: Double var justeringTomDato: Date? diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/ILonnsvekst.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/ILonnsvekst.kt index b7e060a..8b712d5 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/ILonnsvekst.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/ILonnsvekst.kt @@ -1,5 +1,12 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo + +@JsonSubTypes( + JsonSubTypes.Type(value = LonnsvekstDetaljer::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface ILonnsvekst : IJustering { var lonnsvekst: Double } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Regulering.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Regulering.kt index 5b62804..9255470 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Regulering.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Regulering.kt @@ -1,5 +1,13 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo + +@JsonSubTypes( + JsonSubTypes.Type(value = FremskrevetPensjonUnderUtbetaling::class), + JsonSubTypes.Type(value = FremskrevetAfpLivsvarig::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface Regulering { var gap: Int var reguleringsfaktor: Double diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/UforetrygdYtelseskomponent.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/UforetrygdYtelseskomponent.kt index 71e8930..5621a9e 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/UforetrygdYtelseskomponent.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/UforetrygdYtelseskomponent.kt @@ -1,8 +1,18 @@ package no.nav.pensjon.regler.domain.beregning2011 +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo + /** * PK-27754: Innførte nytt felt som skal være på alle uføretrygdytelser. */ +@JsonSubTypes( + JsonSubTypes.Type(value = EktefelletilleggUT::class), + JsonSubTypes.Type(value = UforetrygdOrdiner::class), + JsonSubTypes.Type(value = AbstraktBarnetilleggUT::class), + JsonSubTypes.Type(value = Gjenlevendetillegg::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface UforetrygdYtelseskomponent { var tidligereBelopAr: Int -} \ No newline at end of file +} diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/util/formula/IFormelProvider.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/util/formula/IFormelProvider.kt index 7527002..26a23c1 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/util/formula/IFormelProvider.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/util/formula/IFormelProvider.kt @@ -1,6 +1,19 @@ package no.nav.pensjon.regler.domain.util.formula +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo +import no.nav.pensjon.regler.domain.beregning.Tilleggspensjon +import no.nav.pensjon.regler.domain.beregning2011.Gjenlevendetillegg +import no.nav.pensjon.regler.domain.beregning2011.GjenlevendetilleggAP +import no.nav.pensjon.regler.domain.beregning2011.GjenlevendetilleggAPKap19 + +@JsonSubTypes( + JsonSubTypes.Type(value = Tilleggspensjon::class), + JsonSubTypes.Type(value = Gjenlevendetillegg::class), + JsonSubTypes.Type(value = GjenlevendetilleggAP::class), + JsonSubTypes.Type(value = GjenlevendetilleggAPKap19::class) +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") interface IFormelProvider { val formelMap: HashMap - val formelPrefix: String } \ No newline at end of file From 4a480e84f881c7e60d7fb9094e84ea25cdb953df Mon Sep 17 00:00:00 2001 From: "Schiefloe, Jens" Date: Tue, 30 Apr 2024 08:57:58 +0200 Subject: [PATCH 04/11] issue-972: JsonSubTypes fix AbstraktVilkar.kt + tom const Persongrunnlag. --- pom.xml | 288 +++++++++--------- .../regler/domain/grunnlag/Persongrunnlag.kt | 12 +- .../domain/vedtak/AbstraktBeregningsvilkar.kt | 3 +- .../regler/domain/vedtak/AbstraktVilkar.kt | 11 +- 4 files changed, 157 insertions(+), 157 deletions(-) diff --git a/pom.xml b/pom.xml index 8215aea..61954a2 100644 --- a/pom.xml +++ b/pom.xml @@ -1,148 +1,148 @@ - - 4.0.0 - no.nav.pensjon.regler - pensjon-regler-api - 10.29.0-SNAPSHOT - jar - pensjon-service :: Rule services API - - 17 - 1.9.0 - - UTF-8 - UTF-8 - 17 - official - 2.17.0 - - - - org.apache.commons - commons-lang3 - 3.5 - - - junit - junit - 4.13.1 - test - - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - ${kotlin.version} - - - org.jetbrains.kotlin - kotlin-test-junit - ${kotlin.version} - test - - - com.fasterxml.jackson.core - jackson-core - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-annotations - ${jackson.version} - - + + 4.0.0 + no.nav.pensjon.regler + pensjon-regler-api + 10.29.0-SNAPSHOT + jar + NAV :: Pensjon-Regler API + + 17 + 1.9.0 + UTF-8 + UTF-8 + 17 + official + 2.17.0 + + + + org.apache.commons + commons-lang3 + 3.5 + + + junit + junit + 4.13.1 + test + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-test-junit + ${kotlin.version} + test + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + - - src/main/kotlin - src/test/kotlin - - - org.apache.maven.plugins - maven-source-plugin - 3.3.0 - - - attach-sources - - jar - - - - - - org.jetbrains.kotlin - kotlin-maven-plugin - ${kotlin.version} - - - compile - compile - - compile - - - - src/main/kotlin - target/generated-sources/annotations - - - - - test-compile - test-compile - - test-compile - - - - src/test/kotlin - target/generated-test-sources/test-annotations - - - - - - 1.8 - - - - org.apache.maven.plugins - maven-compiler-plugin - - - compile - compile - - compile - - - - testCompile - test-compile - - testCompile - - - - - 8 - 8 - - - - + + src/main/kotlin + src/test/kotlin + + + org.apache.maven.plugins + maven-source-plugin + 3.3.0 + + + attach-sources + + jar + + + + + + org.jetbrains.kotlin + kotlin-maven-plugin + ${kotlin.version} + + + compile + compile + + compile + + + + src/main/kotlin + target/generated-sources/annotations + + + + + test-compile + test-compile + + test-compile + + + + src/test/kotlin + target/generated-test-sources/test-annotations + + + + + + 1.8 + + + + org.apache.maven.plugins + maven-compiler-plugin + + + compile + compile + + compile + + + + testCompile + test-compile + + testCompile + + + + + 8 + 8 + + + + - - - - github-package-registry - https://maven.pkg.github.com/navikt/maven-release - - - - - github - github - https://maven.pkg.github.com/navikt/pensjon-regler-api - - + + + + github-package-registry + https://maven.pkg.github.com/navikt/maven-release + + + + + github + github + https://maven.pkg.github.com/navikt/pensjon-regler-api + + diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Persongrunnlag.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Persongrunnlag.kt index b2a8fa9..30c4846 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Persongrunnlag.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Persongrunnlag.kt @@ -5,12 +5,7 @@ import no.nav.pensjon.regler.domain.TTPeriode import no.nav.pensjon.regler.domain.Trygdetid import no.nav.pensjon.regler.domain.beregning2011.OvergangsinfoUPtilUT import no.nav.pensjon.regler.domain.beregning2011.UtbetalingsgradUT -import no.nav.pensjon.regler.domain.kode.BorMedTypeCti -import no.nav.pensjon.regler.domain.kode.GrunnlagsrolleCti import no.nav.pensjon.regler.domain.kode.LandCti -import no.nav.pensjon.regler.domain.kode.SivilstandTypeCti -import no.nav.pensjon.regler.domain.vedtak.VilkarsVedtak -import org.apache.commons.lang3.mutable.Mutable import java.io.Serializable import java.util.* @@ -19,7 +14,7 @@ import java.util.* * Persongrunnlag brukes som inndata til kall på en regeltjeneste og må * defineres før kallet. */ -open class Persongrunnlag : Serializable { +class Persongrunnlag() : Serializable { /** * Representerer personen. */ @@ -314,4 +309,9 @@ open class Persongrunnlag : Serializable { var afpTpoUpGrunnlag: AfpTpoUpGrunnlag? = null +} + + +fun main() { + val pg = Persongrunnlag() } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktBeregningsvilkar.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktBeregningsvilkar.kt index 39f21ca..28cb4e8 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktBeregningsvilkar.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktBeregningsvilkar.kt @@ -3,7 +3,6 @@ package no.nav.pensjon.regler.domain.vedtak import com.fasterxml.jackson.annotation.JsonSubTypes import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.Merknad -import no.nav.pensjon.regler.domain.beregning2011.* import java.io.Serializable @JsonSubTypes( @@ -16,7 +15,7 @@ import java.io.Serializable JsonSubTypes.Type(value = Skadetidspunkt::class), JsonSubTypes.Type(value = Uforetidspunkt::class), JsonSubTypes.Type(value = InntektForUforhet::class), - JsonSubTypes.Type(value = Uforegrad::class), + JsonSubTypes.Type(value = Uforegrad::class) ) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktBeregningsvilkar protected constructor() : Serializable { diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkar.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkar.kt index 2b5c279..fc4e20d 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkar.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/vedtak/AbstraktVilkar.kt @@ -7,14 +7,15 @@ import no.nav.pensjon.regler.domain.kode.VilkarOppfyltUTCti import java.io.Serializable @JsonSubTypes( - JsonSubTypes.Type(value = FortsattMedlemskap::class), JsonSubTypes.Type(value = BeregningsvilkarPeriode::class), - JsonSubTypes.Type(value = ForutgaendeMedlemskap::class), - JsonSubTypes.Type(value = RettTilEksportEtterTrygdeavtaler::class), JsonSubTypes.Type(value = MedlemskapForUTEtterTrygdeavtaler::class), - JsonSubTypes.Type(value = UngUfor::class), + JsonSubTypes.Type(value = RettTilEksportEtterTrygdeavtaler::class), JsonSubTypes.Type(value = RettTilGjenlevendetillegg::class), - JsonSubTypes.Type(value = Yrkesskadegrad::class) + JsonSubTypes.Type(value = ForutgaendeMedlemskap::class), + JsonSubTypes.Type(value = Yrkesskade::class), + JsonSubTypes.Type(value = FortsattMedlemskap::class), + JsonSubTypes.Type(value = UngUfor::class) + ) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class AbstraktVilkar : Serializable { From 1fe62f899855f783862308b7a54c296fa73387e3 Mon Sep 17 00:00:00 2001 From: ehellerslien Date: Tue, 30 Apr 2024 09:51:06 +0200 Subject: [PATCH 05/11] =?UTF-8?q?Issue-927:=20Tomme=20konstrukt=C3=B8rer?= =?UTF-8?q?=20for=20BeregnetUtbetalingsperiode=20og=20Inntektsgrunnlag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/beregning2011/BeregnetUtbetalingsperiode.kt | 2 +- .../nav/pensjon/regler/domain/grunnlag/Inntektsgrunnlag.kt | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregnetUtbetalingsperiode.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregnetUtbetalingsperiode.kt index de6cf71..60428b2 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregnetUtbetalingsperiode.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregnetUtbetalingsperiode.kt @@ -4,7 +4,7 @@ import no.nav.pensjon.regler.domain.beregning.Ytelseskomponent import java.io.Serializable import java.util.* -class BeregnetUtbetalingsperiode : Serializable { +class BeregnetUtbetalingsperiode() : Serializable { /** * Periodens startdato. */ diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Inntektsgrunnlag.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Inntektsgrunnlag.kt index 8c494a9..cfa75e1 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Inntektsgrunnlag.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Inntektsgrunnlag.kt @@ -5,11 +5,7 @@ import no.nav.pensjon.regler.domain.kode.InntektTypeCti import java.io.Serializable import java.util.* -class Inntektsgrunnlag -/** - * private boolean kopiertFraGammeltKrav; - */ - : Serializable { +class Inntektsgrunnlag() : Serializable { /* * Unik identifikator for Inntektsgrunnlag. Endres ikke av regelmotoren, * men Inntektsgrunnlag med null id kan opprettes av batchtjenestene, From a583034c403fe80d07b2b7303bb6d21f05bc7b3d Mon Sep 17 00:00:00 2001 From: "Schiefloe, Jens" Date: Tue, 30 Apr 2024 09:53:50 +0200 Subject: [PATCH 06/11] =?UTF-8?q?issue-972:=20Slettet=20interfacer=20IBere?= =?UTF-8?q?gningsInformasjon=20og=20tilh=C3=B8rende.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../beregning2011/BeregningsInformasjon.kt | 72 ++++++++----------- .../IBeregningsInformasjon2011.kt | 29 -------- .../IBeregningsInformasjon2025.kt | 3 - 3 files changed, 28 insertions(+), 76 deletions(-) delete mode 100644 src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2011.kt delete mode 100644 src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2025.kt diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregningsInformasjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregningsInformasjon.kt index 618443c..77148f6 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregningsInformasjon.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregningsInformasjon.kt @@ -1,7 +1,5 @@ package no.nav.pensjon.regler.domain.beregning2011 -import com.fasterxml.jackson.annotation.JsonSubTypes -import com.fasterxml.jackson.annotation.JsonTypeInfo import no.nav.pensjon.regler.domain.Merknad import no.nav.pensjon.regler.domain.PenPerson import no.nav.pensjon.regler.domain.beregning.Sluttpoengtall @@ -11,52 +9,38 @@ import no.nav.pensjon.regler.domain.kode.LandCti import no.nav.pensjon.regler.domain.kode.ResultatTypeCti import java.io.Serializable - -@JsonSubTypes( - JsonSubTypes.Type(value = BeregningsInformasjon::class), - JsonSubTypes.Type(value = IBeregningsInformasjon2025::class), - JsonSubTypes.Type(value = IBeregningsInformasjon2011::class) -) -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") -open class BeregningsInformasjon : Serializable, IBeregningsInformasjon2011 { - //Fra IBeregningsInformasjon2011 - override var forholdstallUttak = 0.0 - override var forholdstall67 = 0.0 +class BeregningsInformasjon : Serializable { + var forholdstallUttak = 0.0 + var forholdstall67 = 0.0 var delingstallUttak = 0.0 var delingstall67 = 0.0 - override var spt: Sluttpoengtall? = null - override var opt: Sluttpoengtall? = null - override var ypt: Sluttpoengtall? = null - override var grunnpensjonAvkortet = false + var spt: Sluttpoengtall? = null + var opt: Sluttpoengtall? = null + var ypt: Sluttpoengtall? = null + var grunnpensjonAvkortet = false var merknadListe: List = mutableListOf() - override var mottarMinstePensjonsniva = false - override var minstepensjonArsak: String? = null - override var rettPaGjenlevenderett = false - override var gjenlevenderettAnvendt = false - override var avdodesTilleggspensjonBrukt = false - override var avdodesTrygdetidBrukt = false - override var ungUfor = false - override var ungUforAnvendt = false - override var yrkesskadeRegistrert = false - override var yrkesskadeAnvendt = false - override var yrkesskadegrad = 0 - - // Fra IBeregningsInformasjon - override var penPerson: PenPerson? = null - - // Fra IBeregningsInformasjon - override var beregningsMetode: BeregningMetodeTypeCti? = null - override var eksport = false - override var resultatType: ResultatTypeCti? = null + var mottarMinstePensjonsniva = false + var minstepensjonArsak: String? = null + var rettPaGjenlevenderett = false + var gjenlevenderettAnvendt = false + var avdodesTilleggspensjonBrukt = false + var avdodesTrygdetidBrukt = false + var ungUfor = false + var ungUforAnvendt = false + var yrkesskadeRegistrert = false + var yrkesskadeAnvendt = false + var yrkesskadegrad = 0 + var penPerson: PenPerson? = null + var beregningsMetode: BeregningMetodeTypeCti? = null + var eksport = false + var resultatType: ResultatTypeCti? = null var tapendeBeregningsmetodeListe: List = mutableListOf() - override var trygdetid: Int? = null - override var tt_anv = 0 - override var vurdertBosattland: LandCti? = null - override var ensligPensjonInstOpph = false - override var instOppholdType: JustertPeriodeCti? = null - override var instOpphAnvendt = false - - // Avdødes tilleggspensjon + var trygdetid: Int? = null + var tt_anv = 0 + var vurdertBosattland: LandCti? = null + var ensligPensjonInstOpph = false + var instOppholdType: JustertPeriodeCti? = null + var instOpphAnvendt = false var tp = 0.0 var ttBeregnetForGrunnlagsrolle = 0 var ungUforGarantiFrafalt = false diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2011.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2011.kt deleted file mode 100644 index e5ac7bb..0000000 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2011.kt +++ /dev/null @@ -1,29 +0,0 @@ -package no.nav.pensjon.regler.domain.beregning2011 - -import com.fasterxml.jackson.annotation.JsonSubTypes -import com.fasterxml.jackson.annotation.JsonTypeInfo -import no.nav.pensjon.regler.domain.beregning.Sluttpoengtall - -@JsonSubTypes( - JsonSubTypes.Type(value = BeregningsInformasjon::class) -) -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") -interface IBeregningsInformasjon2011 : IBeregningsInformasjon { - var avdodesTilleggspensjonBrukt: Boolean - var avdodesTrygdetidBrukt: Boolean - var forholdstall67: Double - var forholdstallUttak: Double - var gjenlevenderettAnvendt: Boolean - var grunnpensjonAvkortet: Boolean - var mottarMinstePensjonsniva: Boolean - var minstepensjonArsak: String? - var opt: Sluttpoengtall? - var rettPaGjenlevenderett: Boolean - var spt: Sluttpoengtall? - var ungUfor: Boolean - var ungUforAnvendt: Boolean - var ypt: Sluttpoengtall? - var yrkesskadeAnvendt: Boolean - var yrkesskadegrad: Int - var yrkesskadeRegistrert: Boolean -} \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2025.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2025.kt deleted file mode 100644 index 9194afb..0000000 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2025.kt +++ /dev/null @@ -1,3 +0,0 @@ -package no.nav.pensjon.regler.domain.beregning2011 - -interface IBeregningsInformasjon2025 : IBeregningsInformasjon \ No newline at end of file From 7e4ff54456a3db915f0aafee38e1ee0727f66ce2 Mon Sep 17 00:00:00 2001 From: ehellerslien Date: Tue, 30 Apr 2024 12:17:46 +0200 Subject: [PATCH 07/11] =?UTF-8?q?issue-927:=20Legger=20p=C3=A5=20AbstraktB?= =?UTF-8?q?arnetillegg=20som=20JsonSubType=20av=20Ytelseskomponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt index e9f14d3..8cb755f 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Ytelseskomponent.kt @@ -50,7 +50,9 @@ import java.io.Serializable JsonSubTypes.Type(value = TilleggTilHjelpIHuset::class), JsonSubTypes.Type(value = UforetilleggTilAlderspensjon::class), JsonSubTypes.Type(value = UforetrygdOrdiner::class), - JsonSubTypes.Type(value = Ventetillegg::class) + JsonSubTypes.Type(value = Ventetillegg::class), + + JsonSubTypes.Type(value = AbstraktBarnetillegg::class) ) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") abstract class Ytelseskomponent : Serializable { From b193238cacb1a88692d95f8dac2e5ab1d865d1b1 Mon Sep 17 00:00:00 2001 From: "Schiefloe, Jens" Date: Tue, 30 Apr 2024 12:24:59 +0200 Subject: [PATCH 08/11] issue-972: Slettet IBeregning interfacet. --- .../nav/pensjon/regler/domain/IBeregning.kt | 25 ------------------- .../regler/domain/beregning/Beregning.kt | 7 +++--- .../domain/beregning2011/Beregning2011.kt | 9 ++----- 3 files changed, 5 insertions(+), 36 deletions(-) delete mode 100644 src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt deleted file mode 100644 index 9dd82b7..0000000 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt +++ /dev/null @@ -1,25 +0,0 @@ -package no.nav.pensjon.regler.domain - -import com.fasterxml.jackson.annotation.JsonSubTypes -import com.fasterxml.jackson.annotation.JsonTypeInfo -import no.nav.pensjon.regler.domain.beregning.Beregning -import no.nav.pensjon.regler.domain.beregning.BeregningRelasjon -import no.nav.pensjon.regler.domain.beregning2011.AfpPrivatBeregning -import no.nav.pensjon.regler.domain.beregning2011.AldersberegningKapittel19 -import no.nav.pensjon.regler.domain.beregning2011.AldersberegningKapittel20 -import no.nav.pensjon.regler.domain.beregning2011.Uforetrygdberegning - -/** - * Felles interface for Beregning og Beregning2011 klasser. - */ -@JsonSubTypes( - JsonSubTypes.Type(value = Beregning::class), - JsonSubTypes.Type(value = AldersberegningKapittel19::class), - JsonSubTypes.Type(value = AldersberegningKapittel20::class), - JsonSubTypes.Type(value = AfpPrivatBeregning::class), - JsonSubTypes.Type(value = Uforetrygdberegning::class) -) -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") -interface IBeregning { - val delberegningsListe: List -} \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Beregning.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Beregning.kt index 4330e3f..3ab465b 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Beregning.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Beregning.kt @@ -1,6 +1,5 @@ package no.nav.pensjon.regler.domain.beregning -import no.nav.pensjon.regler.domain.IBeregning import no.nav.pensjon.regler.domain.Merknad import no.nav.pensjon.regler.domain.PenPerson import no.nav.pensjon.regler.domain.Trygdetid @@ -16,7 +15,7 @@ import java.util.* /** * Beregning er resultatet fra en beregning i pensjon-regler. */ -class Beregning : IBeregning, Serializable { +class Beregning : Serializable { /** * Representerer personen beregning gjelder for. @@ -221,9 +220,9 @@ class Beregning : IBeregning, Serializable { var trygdetid: Trygdetid? = null /** - * Liste av beregninger.Kan inneholde alternative beregninger gjort ved lønnsomhetsberegninger.Vinneren ligger da i hovedobjektet mens taperen(e) ligger i denne listen. + * Liste av beregninger. Kan inneholde alternative beregninger gjort ved lønnsomhetsberegninger.Vinneren ligger da i hovedobjektet mens taperen(e) ligger i denne listen. */ - override var delberegningsListe: List = mutableListOf() + var delberegningsListe: List = mutableListOf() /** * Angir type beregning: BER, HJELPEBER, SAM_BER, VUR_BER. diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Beregning2011.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Beregning2011.kt index 513cb51..7542d96 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Beregning2011.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Beregning2011.kt @@ -2,14 +2,9 @@ package no.nav.pensjon.regler.domain.beregning2011 import com.fasterxml.jackson.annotation.JsonSubTypes import com.fasterxml.jackson.annotation.JsonTypeInfo -import no.nav.pensjon.regler.domain.IBeregning import no.nav.pensjon.regler.domain.Merknad import no.nav.pensjon.regler.domain.PenPerson import no.nav.pensjon.regler.domain.beregning.BeregningRelasjon -import no.nav.pensjon.regler.domain.beregning.penobjekter.Arbeidsavklaringspenger -import no.nav.pensjon.regler.domain.beregning.penobjekter.ArbeidsavklaringspengerUT -import no.nav.pensjon.regler.domain.beregning.penobjekter.Sykepenger -import no.nav.pensjon.regler.domain.beregning.penobjekter.SykepengerUT import no.nav.pensjon.regler.domain.kode.BeregningGjelderTypeCti import no.nav.pensjon.regler.domain.kode.BeregningMetodeTypeCti import no.nav.pensjon.regler.domain.kode.BeregningTypeCti @@ -23,7 +18,7 @@ import java.io.Serializable JsonSubTypes.Type(value = AldersberegningKapittel19::class), ) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") -abstract class Beregning2011 : IBeregning, Serializable { +abstract class Beregning2011 : Serializable { var gjelderPerson: PenPerson? = null open var grunnbelop = 0 var tt_anv = 0 @@ -33,7 +28,7 @@ abstract class Beregning2011 : IBeregning, Serializable { var delberegning2011Liste: List = mutableListOf() var merknadListe: List = mutableListOf() - override val delberegningsListe: List + val delberegningsListe: List get() = delberegning2011Liste /** From 30dd978c6ff0f8f21c9d0188cdb6152fd3f7dbe7 Mon Sep 17 00:00:00 2001 From: ehellerslien Date: Tue, 30 Apr 2024 13:38:23 +0200 Subject: [PATCH 09/11] Fixed pom --- pom.xml | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index e288d0b..b969aed 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,21 @@ - + 4.0.0 no.nav.pensjon.regler pensjon-regler-api 1.0.0-RC jar - pensjon-service :: Rule services API + NAV :: Pensjon-Regler API + + 17 + 1.9.0 + UTF-8 + UTF-8 + 17 + official + 2.17.0 + org.apache.commons @@ -29,16 +39,18 @@ ${kotlin.version} test + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + - - 17 - 1.9.0 - - UTF-8 - UTF-8 - 17 - official - + src/main/kotlin src/test/kotlin From 654195a4be15b87d28f712578297af553f6976db Mon Sep 17 00:00:00 2001 From: "Schiefloe, Jens" Date: Tue, 7 May 2024 12:00:45 +0200 Subject: [PATCH 10/11] Fjernet formelPrefix fra FormelProvider. --- .../no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt | 3 --- .../pensjon/regler/domain/beregning2011/Gjenlevendetillegg.kt | 2 -- .../regler/domain/beregning2011/GjenlevendetilleggAP.kt | 3 --- .../regler/domain/beregning2011/GjenlevendetilleggAPKap19.kt | 3 --- 4 files changed, 11 deletions(-) diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt index ac5c089..c1ea83c 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Tilleggspensjon.kt @@ -43,9 +43,6 @@ open class Tilleggspensjon : Ytelseskomponent, IFormelProvider { */ override var formelMap: HashMap = HashMap() - override val formelPrefix: String - get() = ytelsekomponentType.kode!! - override var ytelsekomponentType: YtelsekomponentTypeCti = YtelsekomponentTypeCti("TP") constructor() { diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Gjenlevendetillegg.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Gjenlevendetillegg.kt index 8339937..de10cf1 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Gjenlevendetillegg.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Gjenlevendetillegg.kt @@ -81,6 +81,4 @@ class Gjenlevendetillegg() : Ytelseskomponent(), UforetrygdYtelseskomponent, IFo override var ytelsekomponentType: YtelsekomponentTypeCti = YtelsekomponentTypeCti("UT_GJT") - override val formelPrefix: String - get() = ytelsekomponentType.kode!! } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAP.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAP.kt index d900d7c..3683463 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAP.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAP.kt @@ -45,8 +45,5 @@ class GjenlevendetilleggAP : Ytelseskomponent(), IFormelProvider { */ override var formelMap: HashMap = HashMap() - override val formelPrefix: String - get() = "GJT_Kap20" - override var ytelsekomponentType: YtelsekomponentTypeCti = YtelsekomponentTypeCti("AP_GJT") } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAPKap19.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAPKap19.kt index e8e8f68..167ee65 100644 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAPKap19.kt +++ b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/GjenlevendetilleggAPKap19.kt @@ -33,8 +33,5 @@ class GjenlevendetilleggAPKap19 : Ytelseskomponent(), IFormelProvider { */ override var formelMap: HashMap = HashMap() - override val formelPrefix: String - get() = "GJT_Kap19" - override var ytelsekomponentType: YtelsekomponentTypeCti = YtelsekomponentTypeCti("AP_GJT_KAP19") } \ No newline at end of file From 497020fc3f9d69363c77d240d784c43d76b88f3f Mon Sep 17 00:00:00 2001 From: ehellerslien Date: Wed, 15 May 2024 08:27:24 +0200 Subject: [PATCH 11/11] Ny versjon 1.0.3 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 98f3ea8..6a02944 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 no.nav.pensjon.regler pensjon-regler-api - 1.0.3-RC + 1.0.3 jar NAV :: Pensjon-Regler API