Skip to content

Commit

Permalink
1.0.3 (#31)
Browse files Browse the repository at this point in the history
* Issue-972: Lagt på JsonSubTypes annotasjoner på klasser som arves
* Issue-972: JsonSubTypes på interfaces + opprydding
* Issue-927: Tomme konstruktører for BeregnetUtbetalingsperiode, Persongrunnlag og Inntektsgrunnlag
* Issue-972: Slettet interfacer IBeregningsInformasjon, IBeregning og tilhørende.
* Issue-927: Legger på AbstraktBarnetillegg som JsonSubType av Ytelseskomponent
* Issue-972: Fjernet formelPrefix fra FormelProvider.
  • Loading branch information
ehellerslien authored May 15, 2024
1 parent a3aff46 commit 31d49c9
Show file tree
Hide file tree
Showing 44 changed files with 358 additions and 115 deletions.
15 changes: 13 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
<modelVersion>4.0.0</modelVersion>
<groupId>no.nav.pensjon.regler</groupId>
<artifactId>pensjon-regler-api</artifactId>
<version>1.0.2</version>
<version>1.0.3</version>
<packaging>jar</packaging>
<name>NAV :: Pensjon-Regler API</name>

<properties>
<java.jdk.version>17</java.jdk.version>
<kotlin.version>1.9.0</kotlin.version>
<!-- Config properties -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.release>17</maven.compiler.release>
<kotlin.code.style>official</kotlin.code.style>
<jackson.version>2.17.0</jackson.version>
</properties>

<dependencies>
Expand All @@ -40,7 +40,18 @@
<version>${kotlin.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>

<build>
<sourceDirectory>src/main/kotlin</sourceDirectory>
<testSourceDirectory>src/test/kotlin</testSourceDirectory>
Expand Down
10 changes: 0 additions & 10 deletions src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt

This file was deleted.

10 changes: 10 additions & 0 deletions src/main/kotlin/no/nav/pensjon/regler/domain/Omsorgsopptjening.kt
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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.
Expand Down Expand Up @@ -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<BeregningRelasjon> = mutableListOf()
var delberegningsListe: List<BeregningRelasjon> = mutableListOf()

/**
* Angir type beregning: BER, HJELPEBER, SAM_BER, VUR_BER.
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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.
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -39,14 +43,12 @@ open class Tilleggspensjon : Ytelseskomponent, IFormelProvider {
*/
override var formelMap: HashMap<String, Formel> = 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!!)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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.
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
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
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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*/
Expand Down
Loading

0 comments on commit 31d49c9

Please sign in to comment.