28 lines
746 B
Java
28 lines
746 B
Java
package com.pfefferminzia.petinsurance.tariffs;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
public enum AgeTariff {
|
|
UP_TO_TWO(2, new BigDecimal("0.2")), UP_TO_FIVE(5, new BigDecimal("0.25")), UP_TO_SEVEN(7,
|
|
new BigDecimal("0.28")), OVER_SEVEN(Integer.MAX_VALUE, new BigDecimal("0.3"));
|
|
|
|
private final int maxAge;
|
|
|
|
private final BigDecimal factor;
|
|
|
|
private AgeTariff(int maxAge, BigDecimal factor) {
|
|
this.maxAge = maxAge;
|
|
this.factor = factor;
|
|
}
|
|
|
|
public static BigDecimal getFactorForAge(int age) {
|
|
for (AgeTariff rate : values()) {
|
|
if (age <= rate.maxAge) {
|
|
return rate.factor;
|
|
}
|
|
}
|
|
throw new AssertionError("Unexpected age: " + age);
|
|
}
|
|
|
|
}
|