package org.synyx.urlaubsverwaltung.web.statistics;
import org.synyx.urlaubsverwaltung.core.application.domain.ApplicationStatus;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
/**
* Represents number of days for specific application states.
*
* @author Aljona Murygina - murygina@synyx.de
*/
public class UsedDays {
private final Map<String, BigDecimal> days;
public UsedDays(ApplicationStatus... status) {
days = new HashMap<>();
for (ApplicationStatus applicationStatus : status) {
days.put(applicationStatus.name(), BigDecimal.ZERO);
}
}
public Map<String, BigDecimal> getDays() {
return days;
}
public void addDays(ApplicationStatus status, BigDecimal days) {
String statusAsString = status.name();
if (!this.days.containsKey(statusAsString)) {
// this status has not been used in initialization, so it's not supported here
throw new UnsupportedOperationException("Application status " + statusAsString + " not allowed here");
}
BigDecimal addedDays = this.days.get(statusAsString).add(days);
this.days.put(statusAsString, addedDays);
}
}