| 
      
      
      From: <be...@us...> - 2006-09-05 10:13:15
      
     | 
| Revision: 108
          http://svn.sourceforge.net/objectlabkit/?rev=108&view=rev
Author:   benoitx
Date:     2006-09-05 03:13:01 -0700 (Tue, 05 Sep 2006)
Log Message:
-----------
better name for some param
and implementation of IMMPeriod.ANNUALLY for JDK side.
Modified Paths:
--------------
    trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculator.java
    trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkCalendarBaseDateCalculator.java
    trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/LocalDateCalculator.java
    trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/YearMonthDayDateCalculator.java
Modified: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculator.java
===================================================================
--- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculator.java	2006-09-05 10:01:21 UTC (rev 107)
+++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculator.java	2006-09-05 10:13:01 UTC (rev 108)
@@ -261,7 +261,7 @@
         return getIMMDates(start, end, IMMPeriod.QUARTERLY);
     }
 
-    protected abstract E getNextIMMDate(final boolean forward, final E theStartDate, final IMMPeriod period);
+    protected abstract E getNextIMMDate(final boolean requestNextIMM, final E theStartDate, final IMMPeriod period);
 
     protected abstract DateCalculator<E> createNewCalcultaor(String calcName, E theStartDate, Set<E> holidays,
             HolidayHandler<E> handler);
Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkCalendarBaseDateCalculator.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkCalendarBaseDateCalculator.java	2006-09-05 10:01:21 UTC (rev 107)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkCalendarBaseDateCalculator.java	2006-09-05 10:13:01 UTC (rev 108)
@@ -123,7 +123,7 @@
     }
 
     @Override
-    protected Calendar getNextIMMDate(final boolean forward, final Calendar startDate, final IMMPeriod period) {
+    protected Calendar getNextIMMDate(final boolean requestNextIMM, final Calendar startDate, final IMMPeriod period) {
 
         Calendar cal = (Calendar) startDate.clone();
         
@@ -132,12 +132,12 @@
             // TODO simplify this if condition
 // if (forward ^ cal.getTime().before(startDate) ||
 // cal.getTime().equals(startDate)) {
-            if ((forward && cal.after(startDate)) || (!forward && cal.before(startDate))) {
+            if ((requestNextIMM && cal.after(startDate)) || (!requestNextIMM && cal.before(startDate))) {
                 return cal;
             }
         }
 
-        final int delta = (forward ? 1 : -1);
+        final int delta = (requestNextIMM ? 1 : -1);
         do {
             cal.add(Calendar.MONTH, delta);
         } while (!isIMMMonth(cal));
@@ -151,7 +151,16 @@
                 ( period == IMMPeriod.BI_ANNUALY_MAR_SEP 
                         && (Calendar.JUNE == month || Calendar.DECEMBER==month) ) ) { 
                 // need to move to the next one.
-                cal = getNextIMMDate(forward, cal, period);
+                cal = getNextIMMDate(requestNextIMM, cal, period);
+        } else if (period == IMMPeriod.ANNUALLY) {
+            // second jump
+            cal = getNextIMMDate(requestNextIMM, cal, IMMPeriod.QUARTERLY);
+            // third jump
+            cal = getNextIMMDate(requestNextIMM, cal, IMMPeriod.QUARTERLY);
+            // fourth jump
+            cal = getNextIMMDate(requestNextIMM, cal, IMMPeriod.QUARTERLY);
+            // fifth jump
+            cal = getNextIMMDate(requestNextIMM, cal, IMMPeriod.QUARTERLY);
             }
         
         
@@ -194,7 +203,7 @@
     }
 
     public boolean isIMMDate(final Calendar date) {
-        //TODO a slightly crude implementation - revisit
+        // TODO a slightly crude implementation - revisit
         Calendar cal = (Calendar)date.clone();
         moveToIMMDay(cal);
         return cal.equals(date);
Modified: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/LocalDateCalculator.java
===================================================================
--- trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/LocalDateCalculator.java	2006-09-05 10:01:21 UTC (rev 107)
+++ trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/LocalDateCalculator.java	2006-09-05 10:13:01 UTC (rev 108)
@@ -110,7 +110,7 @@
     }
 
     @Override
-    protected LocalDate getNextIMMDate(final boolean forward, final LocalDate start, final IMMPeriod period) {
+    protected LocalDate getNextIMMDate(final boolean requestNextIMM, final LocalDate start, final IMMPeriod period) {
         LocalDate date = start;
 
 //        if (period == IMMPeriod.ANNUALLY) {
@@ -126,9 +126,9 @@
         case DateTimeConstants.SEPTEMBER:
         case DateTimeConstants.DECEMBER:
             final LocalDate immDate = calculate3rdWednesday(date);
-            if (forward && !date.isBefore(immDate)) {
+            if (requestNextIMM && !date.isBefore(immDate)) {
                 date = date.plusMonths(MONTHS_IN_QUARTER);
-            } else if (!forward && !date.isAfter(immDate)) {
+            } else if (!requestNextIMM && !date.isAfter(immDate)) {
                 date = date.minusMonths(MONTHS_IN_QUARTER);
             }
             break;
@@ -146,7 +146,7 @@
             // Oct 10 -> 2
             // Nov 11 -> 1
             // Dec 12 -> 0
-            if (forward) {
+            if (requestNextIMM) {
                 monthOffset = (MONTH_IN_YEAR - month) % MONTHS_IN_QUARTER;
                 date = date.plusMonths(monthOffset);
             } else {
@@ -164,16 +164,16 @@
                  period == IMMPeriod.BI_ANNUALY_MAR_SEP 
                         && (DateTimeConstants.JUNE == imm.getMonthOfYear() || DateTimeConstants.DECEMBER==imm.getMonthOfYear()) ) { 
                 // need to move to the next one.
-                imm = getNextIMMDate(forward, imm, period);
+                imm = getNextIMMDate(requestNextIMM, imm, period);
             } else if (period == IMMPeriod.ANNUALLY) {
                 // second jump
-                imm = getNextIMMDate(forward, imm, IMMPeriod.QUARTERLY);
+                imm = getNextIMMDate(requestNextIMM, imm, IMMPeriod.QUARTERLY);
                 // third jump
-                imm = getNextIMMDate(forward, imm, IMMPeriod.QUARTERLY);
+                imm = getNextIMMDate(requestNextIMM, imm, IMMPeriod.QUARTERLY);
                 // fourth jump
-                imm = getNextIMMDate(forward, imm, IMMPeriod.QUARTERLY);
+                imm = getNextIMMDate(requestNextIMM, imm, IMMPeriod.QUARTERLY);
                 // fifth jump
-                imm = getNextIMMDate(forward, imm, IMMPeriod.QUARTERLY);
+                imm = getNextIMMDate(requestNextIMM, imm, IMMPeriod.QUARTERLY);
             }
         
         return imm;
Modified: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/YearMonthDayDateCalculator.java
===================================================================
--- trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/YearMonthDayDateCalculator.java	2006-09-05 10:01:21 UTC (rev 107)
+++ trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/YearMonthDayDateCalculator.java	2006-09-05 10:13:01 UTC (rev 108)
@@ -101,8 +101,8 @@
     }
 
     @Override
-    protected YearMonthDay getNextIMMDate(final boolean forward, final YearMonthDay start, final IMMPeriod period) {
-        return new YearMonthDay(delegate.getNextIMMDate(forward, start.toLocalDate(), period));
+    protected YearMonthDay getNextIMMDate(final boolean requestNextIMM, final YearMonthDay start, final IMMPeriod period) {
+        return new YearMonthDay(delegate.getNextIMMDate(requestNextIMM, start.toLocalDate(), period));
     }
 
     @Override
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |