package net.objectlab.kit.datecalc.jdk;
import java.util.Calendar;
import net.objectlab.kit.datecalc.common.CurrencyDateCalculatorBuilder;
import net.objectlab.kit.datecalc.common.ccy.AbstractCurrencyDateCalculator;
/**
* JDK Calendar implementation for currency date calculator.
* @author Benoit Xhenseval
* @since 1.4.0
*/
public class CalendarCurrencyDateCalculator extends AbstractCurrencyDateCalculator<Calendar> {
public CalendarCurrencyDateCalculator(final CurrencyDateCalculatorBuilder<Calendar> builder) {
super(builder);
}
@Override
protected Calendar addMonths(final Calendar calc, final int unit) {
calc.add(Calendar.MONTH, unit);
return calc;
}
@Override
protected Calendar calculateNextDay(final Calendar date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date.getTime());
cal.add(Calendar.DAY_OF_MONTH, 1);
return cal;
}
@Override
protected int calendarWeekDay(final Calendar date) {
return date.get(Calendar.DAY_OF_WEEK);
}
@Override
protected Calendar max(final Calendar d1, final Calendar d2) {
return d1.compareTo(d2) > 0 ? d1 : d2;
}
}