Skip to content

Commit

Permalink
La inn støtte for 'har ikke opplysning' i regler
Browse files Browse the repository at this point in the history
  • Loading branch information
nilsmsa committed Aug 22, 2024
1 parent 990a896 commit 076147b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,13 @@ operator fun RegelId.invoke(
opplysninger = opplysninger.toList()
)

fun Regel.evaluer(samletOpplysning: Iterable<Opplysning>): Boolean = opplysninger.all { samletOpplysning.contains(it) }
fun Regel.evaluer(samletOpplysning: Iterable<Opplysning>): Boolean =
opplysninger
.filter { it !is Not<*> }
.all { samletOpplysning.contains(it) } &&
opplysninger
.filterIsInstance<Not<*>>()
.none { samletOpplysning.contains(it.value) }

/**
* Evaluerer en liste med regler mot en liste med opplysninger. Returnerer første regel som evalueres til sann,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
package no.nav.paw.arbeidssokerregisteret.application

import no.nav.paw.arbeidssokerregisteret.application.opplysninger.Opplysning

interface Regler {
val regler: List<Regel>
val standardRegel: Regel
operator fun Opplysning.not(): Opplysning = HarIkke(this).value
}

interface Not<A> {
val value: A
}

data class HarIkke(override val value: Opplysning) : Not<Opplysning>

0 comments on commit 076147b

Please sign in to comment.