diff --git a/pom.xml b/pom.xml index 410e3d1..6a02944 100644 --- a/pom.xml +++ b/pom.xml @@ -3,18 +3,18 @@ 4.0.0 no.nav.pensjon.regler pensjon-regler-api - 1.0.2 + 1.0.3 jar NAV :: Pensjon-Regler API 17 1.9.0 - UTF-8 UTF-8 17 official + 2.17.0 @@ -40,7 +40,18 @@ ${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 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 3708574..0000000 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt +++ /dev/null @@ -1,10 +0,0 @@ -package no.nav.pensjon.regler.domain - -import no.nav.pensjon.regler.domain.beregning.BeregningRelasjon - -/** - * Felles interface for Beregning og Beregning2011 klasser. - */ -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/Beregning.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Beregning.kt index 249f2ca..f62140e 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. @@ -179,9 +178,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/beregning/Grunnpensjon.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning/Grunnpensjon.kt index 10499be..100de15 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 84e0393..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 @@ -1,13 +1,17 @@ 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 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. @@ -39,14 +43,12 @@ open class Tilleggspensjon : Ytelseskomponent, IFormelProvider { */ override var formelMap: HashMap = HashMap() - override val formelPrefix: String - get() = ytelsekomponentType.kode!! - override var ytelsekomponentType: YtelsekomponentTypeCti = YtelsekomponentTypeCti("TP") 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 e7da507..bccd1a3 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 @@ -11,6 +14,46 @@ import java.io.Serializable * Superklasse for alle ytelser, Grunnpensjon, Sertillegg, AfpTillegg osv. For * 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 = Garantitillegg_Art_50::class), + JsonSubTypes.Type(value = Gjenlevendetillegg::class), + JsonSubTypes.Type(value = GjenlevendetilleggAP::class), + JsonSubTypes.Type(value = GjenlevendetilleggAPKap19::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 = TemporarYtelseskomponent::class), + JsonSubTypes.Type(value = Tilleggspensjon::class), + JsonSubTypes.Type(value = TilleggTilHjelpIHuset::class), + JsonSubTypes.Type(value = UforetilleggTilAlderspensjon::class), + JsonSubTypes.Type(value = UforetrygdOrdiner::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 { /** * 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 679b186..0cc6d6b 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/BeregnetUtbetalingsperiode.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/BeregnetUtbetalingsperiode.kt index 135277f..affb4be 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/beregning2011/Beregning2011.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Beregning2011.kt index 598689d..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 @@ -1,6 +1,7 @@ package no.nav.pensjon.regler.domain.beregning2011 -import no.nav.pensjon.regler.domain.IBeregning +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.BeregningRelasjon @@ -10,7 +11,14 @@ import no.nav.pensjon.regler.domain.kode.BeregningTypeCti import no.nav.pensjon.regler.domain.kode.ResultatTypeCti import java.io.Serializable -abstract class Beregning2011 : IBeregning, 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 : Serializable { var gjelderPerson: PenPerson? = null open var grunnbelop = 0 var tt_anv = 0 @@ -20,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 /** 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..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 @@ -9,45 +9,38 @@ import no.nav.pensjon.regler.domain.kode.LandCti import no.nav.pensjon.regler.domain.kode.ResultatTypeCti import java.io.Serializable -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/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 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 deleted file mode 100644 index 8844629..0000000 --- a/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/IBeregningsInformasjon2011.kt +++ /dev/null @@ -1,23 +0,0 @@ -package no.nav.pensjon.regler.domain.beregning2011 - -import no.nav.pensjon.regler.domain.beregning.Sluttpoengtall - -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 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/Pensjonstillegg.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/beregning2011/Pensjonstillegg.kt index e3e3a05..23f941a 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 @@ -17,7 +23,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/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/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/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/grunnlag/Beholdning.kt b/src/main/kotlin/no/nav/pensjon/regler/domain/grunnlag/Beholdning.kt index a1406d6..7a1deb6 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), + 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 { var ar = 0 var totalbelop = 0.0 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, 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 5de8d78..3d8d0ce 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. */ 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 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..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 @@ -1,8 +1,23 @@ 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 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..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 @@ -1,8 +1,23 @@ 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 = BeregningsvilkarPeriode::class), + JsonSubTypes.Type(value = MedlemskapForUTEtterTrygdeavtaler::class), + JsonSubTypes.Type(value = RettTilEksportEtterTrygdeavtaler::class), + JsonSubTypes.Type(value = RettTilGjenlevendetillegg::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 { 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/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