Skip to content

Commit

Permalink
Fjernet ubrukte metoder (#122)
Browse files Browse the repository at this point in the history
  • Loading branch information
jolarsen authored Sep 29, 2022
1 parent e2fe601 commit 708e9f0
Show file tree
Hide file tree
Showing 11 changed files with 18 additions and 340 deletions.
42 changes: 0 additions & 42 deletions src/main/java/no/nav/fpsak/nare/DynamicRuleService.java

This file was deleted.

117 changes: 0 additions & 117 deletions src/main/java/no/nav/fpsak/nare/Ruleset.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package no.nav.fpsak.nare;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;

import no.nav.fpsak.nare.specification.ComputationalIfSpecification;
import no.nav.fpsak.nare.specification.ConditionalOrSpecification;
import no.nav.fpsak.nare.specification.ForeachSpecification;
import no.nav.fpsak.nare.specification.SequenceSpecification;
import no.nav.fpsak.nare.specification.Specification;

Expand Down Expand Up @@ -116,118 +113,4 @@ public Specification<V> beregningsRegel(String id, String beskrivelse, List<Spec
specs.add(spec2);
return new SequenceSpecification<>(id, beskrivelse, specs);
}

/**
* Realiserer sekvens der en regel utføres N ganger - 1 gang for hvert element i en collection
*
* @param id
* @param beskrivelse
* @param spec regel som utføres 1 gang for hvert element i argumentlisten, med argName + arg som "scope"
* @param argName
* @param args argumentlisten, inneholder N argumenter
* @return
*/
public Specification<V> beregningsForeachRegel(String id, String beskrivelse, Specification<V> spec,
String argName, List<?> args) {
Objects.requireNonNull(spec, "spec1");
Objects.requireNonNull(args, "args1");
if (args.isEmpty()) {
throw new IllegalArgumentException("Argumentlisten kan ikke være tom");
}
return new ForeachSpecification<>(id, beskrivelse, spec, args, argName);
}

/**
* Realiserer sekvens der en regel utføres N ganger - 1 gang for hvert element i en collection
*
* @param id
* @param beskrivelse
* @param spec regel som utføres 1 gang for hvert element i argumentlisten, med argName + arg som "scope"
* @param argName
* @param args argumentlisten, inneholder N argumenter
* @return
*/
public Specification<V> beregningsForeachRegel(Specification<V> spec, String argName, List<?> args) {
Objects.requireNonNull(spec, "spec1");
Objects.requireNonNull(args, "args1");
if (args.isEmpty()) {
throw new IllegalArgumentException("Argumentlisten kan ikke være tom");
}
return new ForeachSpecification<>(spec, args, argName);
}

/**
* Realiserer sekvens der en regel utføres N ganger - 1 gang for hvert element i en collection - fulgt av annen regel
*
* @param id
* @param beskrivelse
* @param spec regel som utføres 1 gang for hvert element i argumentlisten, med argName + arg som "scope"
* @param argName
* @param args argumentlisten, inneholder N argumenter
* @param specThen regel som utføres 1 gang etter at spec er utført N ganger
* @return
*/
public Specification<V> beregningsForeachThenRegel(String id, String beskrivelse, Specification<V> spec,
String argName, List<?> args, Specification<V> specThen) {
Objects.requireNonNull(spec, "spec");
Objects.requireNonNull(args, "args1");
Objects.requireNonNull(specThen, "specThen");
if (args.isEmpty()) {
throw new IllegalArgumentException("Argumentlisten kan ikke være tom");
}
return new SequenceSpecification<>(id, beskrivelse, new ForeachSpecification<>(id, beskrivelse, spec, args, argName), specThen);
}

/**
* Realiserer sekvens der en regel utføres N ganger, etterfulgt av en
* spesifikasjon som har betydning for videre flyt
*
* @param id
* @param beskrivelse
* @param spec1 regel som utføres 1 gang for hvert element i
* argumentlisten, med argumentbeskrivelse +
* argumentverdi som serviceargument
* @param regelmodell
* @param argumentBeskrivelse
* @param args1 argumentlisten, inneholder N argumenter
* @param spec2 utføres 1 gang etter at spec1 er utført N ganger
* @return
*/
@Deprecated // Konsturer en liste selv og bruk beregningsRegel(spec1list, spec2) eller Bruk beregningForeach eller beregningForeachThen
public Specification<V> beregningsRegel(String id, String beskrivelse, Class<? extends DynamicRuleService<V>> spec1,
V regelmodell, String argumentBeskrivelse, List<? extends Object> args1, Specification<V> spec2) {
Objects.requireNonNull(spec1, "spec1");
Objects.requireNonNull(args1, "args1");
Objects.requireNonNull(spec2, "spec2");
if (args1.isEmpty()) {
throw new IllegalArgumentException("Argumentlisten kan ikke være tom");
}
List<Specification<V>> specs = new ArrayList<>();
args1.forEach(arg -> {
DynamicRuleService<V> ny;
try {
ny = opprettSpesifikasjon(spec1, regelmodell);
ny.medServiceArgument(new ServiceArgument(argumentBeskrivelse, arg));
specs.add(ny.getSpecification());
} catch (InstantiationException | IllegalAccessException e) {
throw new IllegalStateException("Utviklerfeil: DynamicRuleService mangler public default constructor",
e);
}
});
specs.add(spec2);
return new SequenceSpecification<>(id, beskrivelse, specs);
}

private DynamicRuleService<V> opprettSpesifikasjon(Class<? extends DynamicRuleService<V>> spec1, V regelmodell)
throws InstantiationException, IllegalAccessException {

try {
DynamicRuleService<V> ny = spec1.getDeclaredConstructor().newInstance();
ny.setRegelmodell(regelmodell);
return ny;
} catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
throw new IllegalStateException("Utviklerfeil: DynamicRuleService mangler public default constructor", e);
}

}
}
2 changes: 1 addition & 1 deletion src/main/java/no/nav/fpsak/nare/evaluation/Operator.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

public enum Operator {

AND, OR, SINGLE, NOT, COND_OR, SEQUENCE, COMPUTATIONAL_IF, FOREACH
AND, OR, SINGLE, NOT, COND_OR, SEQUENCE, COMPUTATIONAL_IF
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public boolean check(Operator op, Evaluation parent, Evaluation child) {
}

// special case, kun prosessere siste SingleEvaluation barn av SequenceEvaluation siden alle andre returnerer ja.
if (Operator.SEQUENCE.equals(parent.getOperator()) || Operator.FOREACH.equals(parent.getOperator())) {
if (Operator.SEQUENCE.equals(parent.getOperator())) {
String childRuleId = child.ruleIdentification();
String lastChildOfParentRuleId = ((AggregatedEvaluation) parent).lastChild().ruleIdentification();
return (childRuleId.equals(lastChildOfParentRuleId));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,11 @@ public SingleEvaluation beregnet(Map<String, Object> mellomresultater) {
return resultat;
}

/** For beregningsregel: beregnet med sluttresultat i outcome. */
public SingleEvaluation endeligBeregnet(RuleReasonRef reasonKey, Object... reasonArgs) {
return ja(reasonKey, reasonArgs);
}

@Override
public Specification<T> medBeskrivelse(String beskrivelse) {
this.beskrivelse = beskrivelse;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,35 +82,16 @@ public String beskrivelse() {
@Override
public Evaluation evaluate(final T t) {
testEvaluation = testSpec.evaluate(t);
var conditionalEvaluation = Resultat.JA.equals(testEvaluation.result()) ? ifTrueSpec.evaluate(t) : doEvaluateIfFalse(t, null);
var conditionalEvaluation = Resultat.JA.equals(testEvaluation.result()) ? ifTrueSpec.evaluate(t) : doEvaluateIfFalse(t);
var evaluation = new ComputationalIfEvaluation(identifikator(), beskrivelse(), testEvaluation, conditionalEvaluation);
if (property != null) {
evaluation.setEvaluationProperty(property.getBeskrivelse(), property.getVerdi().toString());
}
return evaluation;
}

@Override
public Evaluation evaluate(final T t, ServiceArgument serviceArgument) {
if (serviceArgument == null) {
throw new IllegalArgumentException("Utviklerfeil: Forsøker evaluere ComputationalIf med argument null");
}
testEvaluation = testSpec.evaluate(t, serviceArgument);
var conditionalEvaluation = Resultat.JA.equals(testEvaluation.result()) ? ifTrueSpec.evaluate(t, serviceArgument) : doEvaluateIfFalse(t, serviceArgument);
var evaluation = new ComputationalIfEvaluation(identifikator(), beskrivelse(), testEvaluation, conditionalEvaluation);
if (property != null) {
evaluation.setEvaluationProperty(property.getBeskrivelse(), property.getVerdi().toString());
}
evaluation.setEvaluationProperty(serviceArgument.getBeskrivelse(), serviceArgument.getVerdi().toString());
return evaluation;
}

private Evaluation doEvaluateIfFalse(final T t, ServiceArgument serviceArgument) {
if (ifFalseSpec != null) {
return serviceArgument != null ? ifFalseSpec.evaluate(t, serviceArgument) : ifFalseSpec.evaluate(t);
} else {
return ja();
}
private Evaluation doEvaluateIfFalse(final T t) {
return ifFalseSpec != null ? ifFalseSpec.evaluate(t) : ja();
}

@Override
Expand All @@ -127,12 +108,6 @@ public RuleDescription ruleDescription() {
}
}

@Override
public Specification<T> medScope(ServiceArgument scope) {
this.property = scope;
return this;
}

@Override
public Specification<T> medEvaluationProperty(ServiceArgument property) {
this.property = property;
Expand Down

This file was deleted.

Loading

0 comments on commit 708e9f0

Please sign in to comment.