View Javadoc
1   package net.objectlab.kit.datecalc.jdk;
2   
3   import java.util.Calendar;
4   
5   import net.objectlab.kit.datecalc.common.CurrencyDateCalculatorBuilder;
6   import net.objectlab.kit.datecalc.common.ccy.AbstractCurrencyDateCalculator;
7   
8   /**
9    * JDK Calendar implementation for currency date calculator.
10   * @author Benoit Xhenseval
11   * @since 1.4.0
12   */
13  public class CalendarCurrencyDateCalculator extends AbstractCurrencyDateCalculator<Calendar> {
14  
15      public CalendarCurrencyDateCalculator(final CurrencyDateCalculatorBuilder<Calendar> builder) {
16          super(builder);
17      }
18  
19      @Override
20      protected Calendar addMonths(final Calendar calc, final int unit) {
21          calc.add(Calendar.MONTH, unit);
22          return calc;
23      }
24  
25      @Override
26      protected Calendar calculateNextDay(final Calendar date) {
27          Calendar cal = Calendar.getInstance();
28          cal.setTime(date.getTime());
29          cal.add(Calendar.DAY_OF_MONTH, 1);
30          return cal;
31      }
32  
33      @Override
34      protected int calendarWeekDay(final Calendar date) {
35          return date.get(Calendar.DAY_OF_WEEK);
36      }
37  
38      @Override
39      protected Calendar max(final Calendar d1, final Calendar d2) {
40          return d1.compareTo(d2) > 0 ? d1 : d2;
41      }
42  
43  }