001package net.objectlab.kit.datecalc.jdk8;
002
003import java.time.LocalDate;
004
005import net.objectlab.kit.datecalc.common.CurrencyDateCalculatorBuilder;
006import net.objectlab.kit.datecalc.common.ccy.AbstractCurrencyDateCalculator;
007
008/**
009 * JDK8 Date implementation for currency date calculator.
010 * @author Benoit Xhenseval
011 * @since 1.4.0
012 */
013public class LocalDateCurrencyDateCalculator extends AbstractCurrencyDateCalculator<LocalDate> {
014
015    public LocalDateCurrencyDateCalculator(final CurrencyDateCalculatorBuilder<LocalDate> builder) {
016        super(builder);
017    }
018
019    @Override
020    protected LocalDate addMonths(LocalDate calc, int unit) {
021        return calc.plusMonths(unit);
022    }
023
024    @Override
025    protected LocalDate calculateNextDay(final LocalDate date) {
026        return date.plusDays(1);
027    }
028
029    @Override
030    protected int calendarWeekDay(final LocalDate date) {
031        return Jdk8WorkingWeek.jdk8ToCalendarDayConstant(date.getDayOfWeek());
032    }
033
034    @Override
035    protected LocalDate max(final LocalDate d1, final LocalDate d2) {
036        return d1.isAfter(d2) ? d1 : d2;
037    }
038
039}