package org.synyx.urlaubsverwaltung.restapi.availability;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* Wrapper class for a list of {@link TimedAbsence} which provides additional utility methods to retrieve information
* about the list.
*
* @author Timo Eifler - eifler@synyx.de
*/
class TimedAbsenceSpans {
private List<TimedAbsence> absencesList;
TimedAbsenceSpans(List<TimedAbsence> absencesList) {
if (absencesList == null) {
this.absencesList = new ArrayList<>();
} else {
this.absencesList = absencesList;
}
}
public List<TimedAbsence> getAbsencesList() {
return absencesList;
}
BigDecimal calculatePresenceRatio() {
BigDecimal presenceRatio = BigDecimal.ONE;
for (TimedAbsence absenceSpan : absencesList) {
presenceRatio = presenceRatio.subtract(absenceSpan.getRatio());
}
boolean negativePresenceRatio = presenceRatio.compareTo(BigDecimal.ZERO) < 0;
if (negativePresenceRatio) {
presenceRatio = BigDecimal.ZERO;
}
return presenceRatio;
}
}