Select Git revision
MainPage,module.scss
DefaultPredationConfigurer.java 1.49 KiB
package fr.takima.lotka_volterra.predation;
import fr.takima.lotka_volterra.common.Probability;
import fr.takima.lotka_volterra.common.Distance;
import fr.takima.lotka_volterra.predator.Satiety;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Random;
@Component
public class DefaultPredationConfigurer implements PredationConfigurer {
private final Random random;
private final Distance maxDistance;
private final Probability successProbability;
private final Satiety successSatietyGain;
private final Satiety failureSatietyLoss;
public DefaultPredationConfigurer(Random random, PredationProperties properties) {
this.random = random;
this.maxDistance = new Distance(properties.getMaxDistance());
this.successProbability = new Probability(BigDecimal.valueOf(properties.getSuccessProbability()));
this.successSatietyGain = new Satiety(properties.getSuccessSatietyGain());
this.failureSatietyLoss = new Satiety(properties.getFailureSatietyLoss());
}
@Override
public Random random() {
return random;
}
@Override
public Distance maxDistance() {
return maxDistance;
}
@Override
public Probability successProbability() {
return successProbability;
}
@Override
public Satiety successSatietyGain() {
return successSatietyGain;
}
@Override
public Satiety failureSatietyLoss() {
return failureSatietyLoss;
}
}