|
From: <be...@us...> - 2006-09-07 14:48:48
|
Revision: 124
http://svn.sourceforge.net/objectlabkit/?rev=124&view=rev
Author: benoitx
Date: 2006-09-07 07:48:06 -0700 (Thu, 07 Sep 2006)
Log Message:
-----------
Keep the lovely generics in our interfaces, this reduces the number of interfaces.
One thought thought is to find a better way for the holiday handlers, at the moment each time a new type of handler arrives, it requires a whole set of implementations whilst a wrapper could be used... Let me think about that one...
next step renaming Factories and Interfaces?
Modified Paths:
--------------
trunk/common-build/project.xml
trunk/datecalc-common/qalab.xml
trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculator.java
trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculatorFactory.java
trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorFactory.java
trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/HolidayHandler.java
trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/IMMDateCalculator.java
trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/IMMPeriod.java
trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/PeriodCountCalculator.java
trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/Utils.java
trunk/datecalc-jdk/qalab.xml
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultJdkCalendarCalculatorFactory.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultJdkDateCalculatorFactory.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/HolidayHandlerDateWrapper.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkCalendarBaseDateCalculator.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkDateBaseDateCalculator.java
trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactoryTest.java
trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JdkDateDateCalculatorCombinationTest.java
trunk/datecalc-joda/qalab.xml
trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultLocalDateCalculatorFactory.java
trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultYearMonthDayCalculatorFactory.java
trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/LocalDateBackwardHandler.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/LocalDateForwardHandler.java
trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/LocalDateModifiedFollowingHandler.java
trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/LocalDateModifiedPreceedingHandler.java
trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/YearMonthDayDateCalculator.java
trunk/src/site/index.xml
trunk/src/site/navigation.xml
Added Paths:
-----------
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarBackwardHandler.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarModifiedFollowingHandler.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarModifiedPreceedingHandler.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateBackwardHandler.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateForwardHandler.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateModifiedFollowingHandler.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateModifiedPreceedingHandler.java
trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JdkCalendarDateCalculatorCombinationTest.java
Removed Paths:
-------------
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BackwardHandler.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkCalendarCalculator.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkCalendarCalculatorFactory.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkCalendarDateCalculator.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkDateCalculator.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/JdkDateCalculatorFactory.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedFollowingHandler.java
trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedPreceedingHandler.java
Property Changed:
----------------
trunk/datecalc-common/
trunk/datecalc-jdk/
Modified: trunk/common-build/project.xml
===================================================================
--- trunk/common-build/project.xml 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/common-build/project.xml 2006-09-07 14:48:06 UTC (rev 124)
@@ -112,7 +112,7 @@
<report>maven-simian-plugin</report>
<report>maven-cobertura-plugin</report>
<report>maven-qalab-plugin</report>
- <report>maven-ydoc-plugin</report>
+ <!--<report>maven-ydoc-plugin</report>-->
<report>maven-jdepend-plugin</report>
<report>maven-faq-plugin</report>
<report>maven-junit-report-plugin</report>
Property changes on: trunk/datecalc-common
___________________________________________________________________
Name: svn:ignore
-
target
+ target
.fbwarnings
Modified: trunk/datecalc-common/qalab.xml
===================================================================
--- trunk/datecalc-common/qalab.xml 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-common/qalab.xml 2006-09-07 14:48:06 UTC (rev 124)
@@ -57,6 +57,8 @@
<summaryresult date="2006-09-06" filecount="18" statvalue="1" type="checkstyle"/>
<summaryresult date="2006-09-06" filecount="17" statvalue="66" type="cobertura-line"/>
<summaryresult date="2006-09-06" filecount="17" statvalue="68" type="cobertura-branch"/>
+ <summaryresult date="2006-09-07" filecount="17" statvalue="65" type="cobertura-line"/>
+ <summaryresult date="2006-09-07" filecount="17" statvalue="67" type="cobertura-branch"/>
</summary>
<file id="net_objectlab_kit_datecalc_common_package.html" path="net/objectlab/kit/datecalc/common/package.html">
<result date="2006-08-08" statvalue="1" type="checkstyle"/>
@@ -99,6 +101,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_WorkingWeek.java" path="net/objectlab/kit/datecalc/common/WorkingWeek.java">
<result date="2006-08-08" statvalue="3" type="checkstyle"/>
@@ -133,6 +137,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="95" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="95" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_TenorCode.java" path="net/objectlab/kit/datecalc/common/TenorCode.java">
<result date="2006-08-08" statvalue="100" type="cobertura-line"/>
@@ -159,6 +165,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_HolidayHandlerType.java" path="net/objectlab/kit/datecalc/common/HolidayHandlerType.java">
<result date="2006-08-08" statvalue="100" type="cobertura-branch"/>
@@ -173,6 +181,7 @@
<result date="2006-09-04" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_PeriodCountBasis.java" path="net/objectlab/kit/datecalc/common/PeriodCountBasis.java">
<result date="2006-08-08" statvalue="100" type="cobertura-branch"/>
@@ -185,6 +194,7 @@
<result date="2006-09-04" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_StandardTenor.java" path="net/objectlab/kit/datecalc/common/StandardTenor.java">
<result date="2006-08-08" statvalue="100" type="cobertura-branch"/>
@@ -210,6 +220,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="92" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="92" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_common_AbstractDateCalculator.java" path="net/objectlab/kit/datecalc/common/AbstractDateCalculator.java">
@@ -233,6 +245,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_HolidayHandler.java" path="net/objectlab/kit/datecalc/common/HolidayHandler.java">
<result date="2006-08-23" statvalue="100" type="cobertura-line"/>
@@ -249,6 +263,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_common_AbstractDateCalculatorFactory.java" path="net/objectlab/kit/datecalc/common/AbstractDateCalculatorFactory.java">
@@ -275,6 +291,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_common_PeriodCountCalculator.java" path="net/objectlab/kit/datecalc/common/PeriodCountCalculator.java">
@@ -291,6 +309,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_Utils.java" path="net/objectlab/kit/datecalc/common/Utils.java">
<result date="2006-09-04" statvalue="2" type="checkstyle"/>
@@ -300,24 +320,32 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="94" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="91" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_IMMPeriod.java" path="net/objectlab/kit/datecalc/common/IMMPeriod.java">
<result date="2006-09-04" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_ExcelDateUtil.java" path="net/objectlab/kit/datecalc/common/ExcelDateUtil.java">
<result date="2006-09-05" statvalue="84" type="cobertura-line"/>
<result date="2006-09-05" statvalue="83" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="93" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="93" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_common_IMMDateCalculator.java" path="net/objectlab/kit/datecalc/common/IMMDateCalculator.java">
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_common_AbstractIMMDateCalculator.java" path="net/objectlab/kit/datecalc/common/AbstractIMMDateCalculator.java">
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
</qalab>
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-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculator.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -34,11 +34,6 @@
* @param <E>
*/
public abstract class AbstractDateCalculator<E> implements DateCalculator<E> {
-
- // protected static final int MONTHS_IN_QUARTER = 3;
-
- // protected static final int MONTH_IN_YEAR = 12;
-
protected static final int DAYS_IN_WEEK = 7;
private String name;
@@ -202,12 +197,12 @@
newSet.addAll(calendar.getNonWorkingDays());
}
- final DateCalculator<E> cal = createNewCalcultaor(getName() + "/" + calendar.getName(), getStartDate(), newSet,
+ final DateCalculator<E> cal = createNewCalculator(getName() + "/" + calendar.getName(), getStartDate(), newSet,
holidayHandler);
return cal;
}
- protected abstract DateCalculator<E> createNewCalcultaor(String calcName, E theStartDate, Set<E> holidays,
+ protected abstract DateCalculator<E> createNewCalculator(String calcName, E theStartDate, Set<E> holidays,
HolidayHandler<E> handler);
}
Modified: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculatorFactory.java
===================================================================
--- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculatorFactory.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculatorFactory.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -31,13 +31,8 @@
*/
public abstract class AbstractDateCalculatorFactory<E> implements DateCalculatorFactory<E> {
- protected final ConcurrentMap<String, Set<E>> holidays = new ConcurrentHashMap<String, Set<E>>();
+ private final ConcurrentMap<String, Set<E>> holidays = new ConcurrentHashMap<String, Set<E>>();
- // public abstract DateCalculator<E> getDateCalculator(String name, String
- // holidayHandlerType);
-
- // public abstract PeriodCountCalculator<E> getPeriodCountCalculator();
-
/**
* Use this method to register a set of holidays for a given calendar, it
* will replace any existing set. It won't update any existing
@@ -52,4 +47,10 @@
public void registerHolidays(final String name, final Set<E> holidaysSet) {
this.holidays.put(name, holidaysSet);
}
+
+ protected void setHolidays(final String name, final DateCalculator<E> dc) {
+ if (holidays.containsKey(name)) {
+ dc.setNonWorkingDays(holidays.get(name));
+ }
+ }
}
Modified: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorFactory.java
===================================================================
--- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorFactory.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorFactory.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -20,13 +20,17 @@
import java.util.Set;
/**
- * Factory will create new instances of DateCalculator, these are lightweight,
- * each thread should use the factory as a given DateCalculator should NOT be
- * shared across thread (unless you know what you're doing) as the startDate,
- * current date and working week would be shared. Once created, the set of
- * holidays will NOT change even if a new set is registered; one needs to get a
- * new DateCalculator to get the new set.
+ * Factory will create new instances of calculators, these are lightweight, each
+ * thread should use the factory as a given calculator should NOT be shared
+ * across thread (unless you know what you're doing) as the startDate, current
+ * date and working week would be shared. Once created, the set of holidays will
+ * NOT change even if a new set is registered; one needs to get a new
+ * DateCalculator to get the new set.
*
+ * @param E
+ * a representation of a date, typically JDK: Date, Calendar;
+ * Joda:LocalDate, YearMonthDay
+ *
* @author Benoit Xhenseval
* @author $LastChangedBy$
* @version $Revision$ $Date$
@@ -57,11 +61,15 @@
void registerHolidays(final String name, Set<E> holidays);
/**
+ * Create a new PeriodCountCalculator.
+ *
* @return a PeriodCountCalculator
*/
PeriodCountCalculator<E> getPeriodCountCalculator();
/**
+ * Create a new IMMDateCalculator.
+ *
* @return an IMMDateCalculator
*/
IMMDateCalculator<E> getIMMDateCalculator();
Modified: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/HolidayHandler.java
===================================================================
--- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/HolidayHandler.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/HolidayHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -22,7 +22,7 @@
* @author Benoit Xhenseval
*/
public interface HolidayHandler<E> {
- E moveCurrentDate(DateCalculator<E> calendar);
+ E moveCurrentDate(DateCalculator<E> date);
String getType();
}
Modified: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/IMMDateCalculator.java
===================================================================
--- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/IMMDateCalculator.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/IMMDateCalculator.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -20,7 +20,8 @@
import java.util.List;
/**
- * The IMMDates are defined as the 3rd Wednesday of March, June, September and December.
+ * The IMMDates are defined as the 3rd Wednesday of March, June, September and
+ * December.
*
* @author Benoit Xhenseval
* @author $LastChangedBy: benoitx $
@@ -37,8 +38,8 @@
boolean isIMMDate(final E date);
/**
- * Given a start date, it will return the next IMM
- * Date, even if the start date is an IMM date (same as calling
+ * Given a start date, it will return the next IMM Date, even if the start
+ * date is an IMM date (same as calling
* getNextIMMDate(IMMPeriod.QUARTERLY)).
*
* @param startDate
@@ -47,8 +48,8 @@
E getNextIMMDate(final E startDate);
/**
- * Given a start date, it will return the next IMM Date
- * based on the IMMPeriod, even if the start date is an IMM date.
+ * Given a start date, it will return the next IMM Date based on the
+ * IMMPeriod, even if the start date is an IMM date.
*
* @param startDate
* @param period
@@ -59,8 +60,8 @@
E getNextIMMDate(final E startDate, final IMMPeriod period);
/**
- * Given a start date, it will return the previous IMM
- * Date, even if the start date is an IMM date.
+ * Given a start date, it will return the previous IMM Date, even if the
+ * start date is an IMM date.
*
* @param startDate
* @return the previous IMMDate based on current date.
@@ -68,9 +69,8 @@
E getPreviousIMMDate(final E startDate);
/**
- * Given a start date, it will return the previous IMM
- * Date based on the IMMPeriod, even if the start date is an IMM
- * date.
+ * Given a start date, it will return the previous IMM Date based on the
+ * IMMPeriod, even if the start date is an IMM date.
*
* @param period
* specify when the "previous" IMM is, if quarterly then it is
Modified: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/IMMPeriod.java
===================================================================
--- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/IMMPeriod.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/IMMPeriod.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -18,8 +18,9 @@
package net.objectlab.kit.datecalc.common;
/**
- * Some instruments require a period different from the usual Quarterly but still following IMM, e.g. Bi Annually which then can be Mar-Sep or
- * Jun-Dec, or Annually.
+ * Some instruments require a period different from the usual Quarterly but
+ * still following IMM, e.g. Bi Annually which then can be Mar-Sep or Jun-Dec,
+ * or Annually.
*
* @author Benoit Xhenseval
* @author $LastChangedBy$
Modified: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/PeriodCountCalculator.java
===================================================================
--- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/PeriodCountCalculator.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/PeriodCountCalculator.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -18,14 +18,16 @@
package net.objectlab.kit.datecalc.common;
/**
- * Interface that defines a financial market way of calculating difference in days, month (or part of) and year (or part of).
- * TODO Improve javadoc.
+ * Interface that defines a financial market way of calculating difference in
+ * days, month (or part of) and year (or part of). TODO Improve javadoc.
*
* @author Benoit Xhenseval
* @author $LastChangedBy$
* @version $Revision$ $Date$
*
- * @param <E> a representation of "Date", typically Date, Calendar, LocalDate, YearMonthDay.
+ * @param <E>
+ * a representation of "Date", typically Date, Calendar, LocalDate,
+ * YearMonthDay.
*/
public interface PeriodCountCalculator<E> {
Modified: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/Utils.java
===================================================================
--- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/Utils.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/Utils.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -43,6 +43,9 @@
}
public static Calendar getCal(final Date date) {
+ if (date == null) {
+ return null;
+ }
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
Property changes on: trunk/datecalc-jdk
___________________________________________________________________
Name: svn:ignore
- target
+ target
.checkstyle
.fbwarnings
Modified: trunk/datecalc-jdk/qalab.xml
===================================================================
--- trunk/datecalc-jdk/qalab.xml 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-jdk/qalab.xml 2006-09-07 14:48:06 UTC (rev 124)
@@ -58,6 +58,8 @@
<summaryresult date="2006-09-06" filecount="2" statvalue="32" type="simian"/>
<summaryresult date="2006-09-06" filecount="21" statvalue="84" type="cobertura-line"/>
<summaryresult date="2006-09-06" filecount="21" statvalue="89" type="cobertura-branch"/>
+ <summaryresult date="2006-09-07" filecount="19" statvalue="91" type="cobertura-line"/>
+ <summaryresult date="2006-09-07" filecount="19" statvalue="92" type="cobertura-branch"/>
</summary>
<file id="net_objectlab_kit_datecalc_jdk_package.html" path="net/objectlab/kit/datecalc/jdk/package.html">
<result date="2006-08-08" statvalue="1" type="checkstyle"/>
@@ -264,6 +266,8 @@
<result date="2006-09-05" statvalue="84" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="79" type="cobertura-line"/>
<result date="2006-09-06" statvalue="84" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="78" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="84" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_jdk_DatePeriodCountCalculator.java" path="net/objectlab/kit/datecalc/jdk/DatePeriodCountCalculator.java">
@@ -278,6 +282,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_jdk_ExcelDateUtil.java" path="net/objectlab/kit/datecalc/jdk/ExcelDateUtil.java">
<result date="2006-09-02" statvalue="4" type="checkstyle"/>
@@ -300,6 +306,8 @@
<result date="2006-09-05" statvalue="2" type="checkstyle"/>
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="91" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_jdk_JdkCalendarBaseDateCalculator.java" path="net/objectlab/kit/datecalc/jdk/JdkCalendarBaseDateCalculator.java">
@@ -311,6 +319,8 @@
<result date="2006-09-05" statvalue="86" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="69" type="cobertura-line"/>
<result date="2006-09-06" statvalue="66" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="76" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="66" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_jdk_JdkDateCalculatorFactory.java" path="net/objectlab/kit/datecalc/jdk/JdkDateCalculatorFactory.java">
@@ -331,6 +341,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="95" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="95" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_jdk_JdkCalendarDateCalculator.java" path="net/objectlab/kit/datecalc/jdk/JdkCalendarDateCalculator.java">
@@ -349,6 +361,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="90" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="95" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_jdk_JdkDateCalculator.java" path="net/objectlab/kit/datecalc/jdk/JdkDateCalculator.java">
<result date="2006-09-04" statvalue="100" type="cobertura-line"/>
@@ -366,6 +380,8 @@
<result date="2006-09-05" statvalue="100" type="cobertura-branch"/>
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_jdk_AbstractDateCalculatorTest.java" path="net/objectlab/kit/datecalc/jdk/AbstractDateCalculatorTest.java"/>
@@ -388,6 +404,8 @@
id="net_objectlab_kit_datecalc_jdk_DefaultJdkCalendarCalculatorFactory.java" path="net/objectlab/kit/datecalc/jdk/DefaultJdkCalendarCalculatorFactory.java">
<result date="2006-09-06" statvalue="87" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="95" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file id="net_objectlab_kit_datecalc_jdk_JdkCalendarCalculator.java" path="net/objectlab/kit/datecalc/jdk/JdkCalendarCalculator.java">
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
@@ -402,15 +420,59 @@
id="net_objectlab_kit_datecalc_jdk_JdkCalendarIMMDateCalculator.java" path="net/objectlab/kit/datecalc/jdk/JdkCalendarIMMDateCalculator.java">
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_jdk_JdkCalendarPeriodCountCalculator.java" path="net/objectlab/kit/datecalc/jdk/JdkCalendarPeriodCountCalculator.java">
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="net_objectlab_kit_datecalc_jdk_JdkDateIMMDateCalculator.java" path="net/objectlab/kit/datecalc/jdk/JdkDateIMMDateCalculator.java">
<result date="2006-09-06" statvalue="100" type="cobertura-line"/>
<result date="2006-09-06" statvalue="100" type="cobertura-branch"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
</file>
+ <file
+ id="net_objectlab_kit_datecalc_jdk_CalendarBackwardHandler.java" path="net/objectlab/kit/datecalc/jdk/CalendarBackwardHandler.java">
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
+ </file>
+ <file
+ id="net_objectlab_kit_datecalc_jdk_CalendarForwardHandler.java" path="net/objectlab/kit/datecalc/jdk/CalendarForwardHandler.java">
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
+ </file>
+ <file
+ id="net_objectlab_kit_datecalc_jdk_CalendarModifiedFollowingHandler.java" path="net/objectlab/kit/datecalc/jdk/CalendarModifiedFollowingHandler.java">
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
+ </file>
+ <file
+ id="net_objectlab_kit_datecalc_jdk_CalendarModifiedPreceedingHandler.java" path="net/objectlab/kit/datecalc/jdk/CalendarModifiedPreceedingHandler.java">
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
+ </file>
+ <file id="net_objectlab_kit_datecalc_jdk_DateBackwardHandler.java" path="net/objectlab/kit/datecalc/jdk/DateBackwardHandler.java">
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
+ </file>
+ <file id="net_objectlab_kit_datecalc_jdk_DateForwardHandler.java" path="net/objectlab/kit/datecalc/jdk/DateForwardHandler.java">
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
+ </file>
+ <file
+ id="net_objectlab_kit_datecalc_jdk_DateModifiedFollowingHandler.java" path="net/objectlab/kit/datecalc/jdk/DateModifiedFollowingHandler.java">
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
+ </file>
+ <file
+ id="net_objectlab_kit_datecalc_jdk_DateModifiedPreceedingHandler.java" path="net/objectlab/kit/datecalc/jdk/DateModifiedPreceedingHandler.java">
+ <result date="2006-09-07" statvalue="100" type="cobertura-line"/>
+ <result date="2006-09-07" statvalue="100" type="cobertura-branch"/>
+ </file>
</qalab>
Deleted: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BackwardHandler.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BackwardHandler.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BackwardHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -1,45 +0,0 @@
-/*
- * $Id$
- *
- * Copyright 2006 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package net.objectlab.kit.datecalc.jdk;
-
-import java.util.Calendar;
-
-import net.objectlab.kit.datecalc.common.DateCalculator;
-import net.objectlab.kit.datecalc.common.HolidayHandlerType;
-
-/**
- * TODO javadoc
- *
- * @author Marcin Jekot
- * @author $LastChangedBy$
- * @version $Revision$ $Date$
- *
- */
-public class BackwardHandler extends ForwardHandler {
-
- @Override
- public Calendar moveCurrentDate(final DateCalculator<Calendar> calendar) {
- return move(calendar, -1);
- }
-
- @Override
- public String getType() {
- return HolidayHandlerType.BACKWARD;
- }
-
-}
Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarBackwardHandler.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarBackwardHandler.java (rev 0)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarBackwardHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -0,0 +1,45 @@
+/*
+ * $Id: CalendarBackwardHandler.java 99 2006-09-04 20:30:25Z marchy $
+ *
+ * Copyright 2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package net.objectlab.kit.datecalc.jdk;
+
+import java.util.Calendar;
+
+import net.objectlab.kit.datecalc.common.DateCalculator;
+import net.objectlab.kit.datecalc.common.HolidayHandlerType;
+
+/**
+ * TODO javadoc
+ *
+ * @author Marcin Jekot
+ * @author $LastChangedBy: marchy $
+ * @version $Revision: 99 $ $Date: 2006-09-04 21:30:25 +0100 (Mon, 04 Sep 2006) $
+ *
+ */
+public class CalendarBackwardHandler extends CalendarForwardHandler {
+
+ @Override
+ public Calendar moveCurrentDate(final DateCalculator<Calendar> calendar) {
+ return move(calendar, -1);
+ }
+
+ @Override
+ public String getType() {
+ return HolidayHandlerType.BACKWARD;
+ }
+
+}
Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarModifiedFollowingHandler.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarModifiedFollowingHandler.java (rev 0)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarModifiedFollowingHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -0,0 +1,60 @@
+/*
+ * $Id: CalendarModifiedFollowingHandler.java 99 2006-09-04 20:30:25Z marchy $
+ *
+ * Copyright 2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */package net.objectlab.kit.datecalc.jdk;
+
+import java.util.Calendar;
+
+import net.objectlab.kit.datecalc.common.DateCalculator;
+import net.objectlab.kit.datecalc.common.HolidayHandler;
+import net.objectlab.kit.datecalc.common.HolidayHandlerType;
+
+/**
+ * TODO javadoc
+ *
+ * @author Marcin Jekot
+ * @author $LastChangedBy: marchy $
+ * @version $Revision: 99 $ $Date: 2006-09-04 21:30:25 +0100 (Mon, 04 Sep 2006) $
+ *
+ */
+public class CalendarModifiedFollowingHandler implements HolidayHandler<Calendar> {
+
+ public Calendar moveCurrentDate(final DateCalculator<Calendar> calendar) {
+ return move(calendar, 1);
+ }
+
+ protected Calendar move(final DateCalculator<Calendar> calendar, int step) {
+
+ final Calendar cal = (Calendar) calendar.getCurrentBusinessDate().clone();
+
+ final int month = cal.get(Calendar.MONTH);
+
+ while (calendar.isNonWorkingDay(cal)) {
+ cal.add(Calendar.DAY_OF_MONTH, step);
+ if (month != cal.get(Calendar.MONTH)) {
+ // switch direction and go back
+ step *= -1;
+ cal.add(Calendar.DAY_OF_MONTH, step);
+ }
+ }
+
+ return cal;
+ }
+
+ public String getType() {
+ return HolidayHandlerType.MODIFIED_FOLLLOWING;
+ }
+}
Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarModifiedPreceedingHandler.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarModifiedPreceedingHandler.java (rev 0)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/CalendarModifiedPreceedingHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -0,0 +1,44 @@
+/*
+ * $Id: CalendarModifiedPreceedingHandler.java 99 2006-09-04 20:30:25Z marchy $
+ *
+ * Copyright 2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */package net.objectlab.kit.datecalc.jdk;
+
+import java.util.Calendar;
+
+import net.objectlab.kit.datecalc.common.DateCalculator;
+import net.objectlab.kit.datecalc.common.HolidayHandlerType;
+
+/**
+ * TODO javadoc
+ *
+ * @author Marcin Jekot
+ * @author $LastChangedBy: marchy $
+ * @version $Revision: 99 $ $Date: 2006-09-04 21:30:25 +0100 (Mon, 04 Sep 2006) $
+ *
+ */
+public class CalendarModifiedPreceedingHandler extends CalendarModifiedFollowingHandler {
+
+ @Override
+ public Calendar moveCurrentDate(final DateCalculator<Calendar> calendar) {
+ return move(calendar, -1);
+ }
+
+ @Override
+ public String getType() {
+ return HolidayHandlerType.MODIFIED_PRECEEDING;
+ }
+
+}
Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateBackwardHandler.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateBackwardHandler.java (rev 0)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateBackwardHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -0,0 +1,45 @@
+/*
+ * $Id: CalendarBackwardHandler.java 99 2006-09-04 20:30:25Z marchy $
+ *
+ * Copyright 2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package net.objectlab.kit.datecalc.jdk;
+
+import java.util.Date;
+
+import net.objectlab.kit.datecalc.common.DateCalculator;
+import net.objectlab.kit.datecalc.common.HolidayHandlerType;
+
+/**
+ * TODO javadoc
+ *
+ * @author Marcin Jekot
+ * @author $LastChangedBy: marchy $
+ * @version $Revision: 99 $ $Date: 2006-09-04 21:30:25 +0100 (Mon, 04 Sep 2006) $
+ *
+ */
+public class DateBackwardHandler extends DateForwardHandler {
+
+ @Override
+ public Date moveCurrentDate(final DateCalculator<Date> calendar) {
+ return move(calendar, -1);
+ }
+
+ @Override
+ public String getType() {
+ return HolidayHandlerType.BACKWARD;
+ }
+
+}
Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateForwardHandler.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateForwardHandler.java (rev 0)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateForwardHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package net.objectlab.kit.datecalc.jdk;
+
+import java.util.Calendar;
+import java.util.Date;
+
+import net.objectlab.kit.datecalc.common.DateCalculator;
+import net.objectlab.kit.datecalc.common.HolidayHandler;
+import net.objectlab.kit.datecalc.common.HolidayHandlerType;
+import net.objectlab.kit.datecalc.common.Utils;
+
+/**
+ * TODO javadoc
+ *
+ * @author Marcin Jekot
+ * @author $LastChangedBy: benoitx $
+ * @version $Revision: 96 $ $Date: 2006-09-04 16:01:20 +0100 (Mon, 04 Sep 2006) $
+ *
+ */
+public class DateForwardHandler implements HolidayHandler<Date> {
+
+ public Date moveCurrentDate(final DateCalculator<Date> calendar) {
+ return move(calendar, 1);
+ }
+
+ protected Date move(final DateCalculator<Date> calculator, final int step) {
+ final Calendar cal = Utils.getCal(calculator.getCurrentBusinessDate());
+
+ if (cal == null) {
+ return null;
+ }
+
+ while (calculator.isNonWorkingDay(cal.getTime())) {
+ cal.add(Calendar.DAY_OF_MONTH, step);
+ }
+
+ return cal.getTime();
+ }
+
+ public String getType() {
+ return HolidayHandlerType.FORWARD;
+ }
+
+}
Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateModifiedFollowingHandler.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateModifiedFollowingHandler.java (rev 0)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateModifiedFollowingHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -0,0 +1,61 @@
+/*
+ * $Id: CalendarModifiedFollowingHandler.java 99 2006-09-04 20:30:25Z marchy $
+ *
+ * Copyright 2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */package net.objectlab.kit.datecalc.jdk;
+
+import java.util.Calendar;
+import java.util.Date;
+
+import net.objectlab.kit.datecalc.common.DateCalculator;
+import net.objectlab.kit.datecalc.common.HolidayHandler;
+import net.objectlab.kit.datecalc.common.HolidayHandlerType;
+import net.objectlab.kit.datecalc.common.Utils;
+
+/**
+ * TODO javadoc
+ *
+ * @author Marcin Jekot
+ * @author $LastChangedBy: marchy $
+ * @version $Revision: 99 $ $Date: 2006-09-04 21:30:25 +0100 (Mon, 04 Sep 2006) $
+ *
+ */
+public class DateModifiedFollowingHandler implements HolidayHandler<Date> {
+
+ public Date moveCurrentDate(final DateCalculator<Date> calendar) {
+ return move(calendar, 1);
+ }
+
+ protected Date move(final DateCalculator<Date> calendar, int step) {
+ final Calendar cal = (Calendar) Utils.getCal(calendar.getCurrentBusinessDate()).clone();
+
+ final int month = cal.get(Calendar.MONTH);
+
+ while (calendar.isNonWorkingDay(cal.getTime())) {
+ cal.add(Calendar.DAY_OF_MONTH, step);
+ if (month != cal.get(Calendar.MONTH)) {
+ // switch direction and go back
+ step *= -1;
+ cal.add(Calendar.DAY_OF_MONTH, step);
+ }
+ }
+
+ return cal.getTime();
+ }
+
+ public String getType() {
+ return HolidayHandlerType.MODIFIED_FOLLLOWING;
+ }
+}
Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateModifiedPreceedingHandler.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateModifiedPreceedingHandler.java (rev 0)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateModifiedPreceedingHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -0,0 +1,44 @@
+/*
+ * $Id: CalendarModifiedPreceedingHandler.java 99 2006-09-04 20:30:25Z marchy $
+ *
+ * Copyright 2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */package net.objectlab.kit.datecalc.jdk;
+
+import java.util.Date;
+
+import net.objectlab.kit.datecalc.common.DateCalculator;
+import net.objectlab.kit.datecalc.common.HolidayHandlerType;
+
+/**
+ * TODO javadoc
+ *
+ * @author Marcin Jekot
+ * @author $LastChangedBy: marchy $
+ * @version $Revision: 99 $ $Date: 2006-09-04 21:30:25 +0100 (Mon, 04 Sep 2006) $
+ *
+ */
+public class DateModifiedPreceedingHandler extends DateModifiedFollowingHandler {
+
+ @Override
+ public Date moveCurrentDate(final DateCalculator<Date> calendar) {
+ return move(calendar, -1);
+ }
+
+ @Override
+ public String getType() {
+ return HolidayHandlerType.MODIFIED_PRECEEDING;
+ }
+
+}
Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultJdkCalendarCalculatorFactory.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultJdkCalendarCalculatorFactory.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultJdkCalendarCalculatorFactory.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -20,6 +20,7 @@
import java.util.Calendar;
import net.objectlab.kit.datecalc.common.AbstractDateCalculatorFactory;
+import net.objectlab.kit.datecalc.common.DateCalculator;
import net.objectlab.kit.datecalc.common.HolidayHandlerType;
import net.objectlab.kit.datecalc.common.IMMDateCalculator;
@@ -31,8 +32,7 @@
* @version $Revision: 96 $ $Date: 2006-09-04 16:01:20 +0100 (Mon, 04 Sep 2006) $
*
*/
-public class DefaultJdkCalendarCalculatorFactory extends AbstractDateCalculatorFactory<Calendar> implements
- JdkCalendarCalculatorFactory {
+public class DefaultJdkCalendarCalculatorFactory extends AbstractDateCalculatorFactory<Calendar> {
private static final DefaultJdkCalendarCalculatorFactory DEFAULT = new DefaultJdkCalendarCalculatorFactory();
@@ -40,7 +40,7 @@
private static final JdkCalendarIMMDateCalculator IMMDC = new JdkCalendarIMMDateCalculator();
- public static JdkCalendarCalculatorFactory getDefaultInstance() {
+ public static DefaultJdkCalendarCalculatorFactory getDefaultInstance() {
return DEFAULT;
}
@@ -50,23 +50,21 @@
* @see net.objectlab.kit.datecalc.jdk.JdkDateCalculatorFactory#getDateCalculator(java.lang.String,
* java.lang.String)
*/
- public JdkCalendarDateCalculator getDateCalculator(final String name, final String holidayHandlerType) {
+ public DateCalculator<Calendar> getDateCalculator(final String name, final String holidayHandlerType) {
final JdkCalendarBaseDateCalculator cal = new JdkCalendarBaseDateCalculator();
cal.setName(name);
- if (holidays.containsKey(name)) {
- cal.setNonWorkingDays(holidays.get(name));
- }
+ setHolidays(name, cal);
if (holidayHandlerType == null) {
return cal;
} else if (HolidayHandlerType.FORWARD.equals(holidayHandlerType)) {
- cal.setHolidayHandler(new ForwardHandler());
+ cal.setHolidayHandler(new CalendarForwardHandler());
} else if (HolidayHandlerType.BACKWARD.equals(holidayHandlerType)) {
- cal.setHolidayHandler(new BackwardHandler());
+ cal.setHolidayHandler(new CalendarBackwardHandler());
} else if (HolidayHandlerType.MODIFIED_FOLLLOWING.equals(holidayHandlerType)) {
- cal.setHolidayHandler(new ModifiedFollowingHandler());
+ cal.setHolidayHandler(new CalendarModifiedFollowingHandler());
} else if (HolidayHandlerType.MODIFIED_PRECEEDING.equals(holidayHandlerType)) {
- cal.setHolidayHandler(new ModifiedPreceedingHandler());
+ cal.setHolidayHandler(new CalendarModifiedPreceedingHandler());
} else {
throw new UnsupportedOperationException("Unsupported HolidayHandler: " + holidayHandlerType);
}
Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultJdkDateCalculatorFactory.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultJdkDateCalculatorFactory.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultJdkDateCalculatorFactory.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -20,6 +20,7 @@
import java.util.Date;
import net.objectlab.kit.datecalc.common.AbstractDateCalculatorFactory;
+import net.objectlab.kit.datecalc.common.DateCalculator;
import net.objectlab.kit.datecalc.common.HolidayHandlerType;
import net.objectlab.kit.datecalc.common.IMMDateCalculator;
@@ -31,15 +32,15 @@
* @version $Revision$ $Date$
*
*/
-public class DefaultJdkDateCalculatorFactory extends AbstractDateCalculatorFactory<Date> implements JdkDateCalculatorFactory {
+public class DefaultJdkDateCalculatorFactory extends AbstractDateCalculatorFactory<Date> {
- private static final JdkDateCalculatorFactory DEFAULT = new DefaultJdkDateCalculatorFactory();
+ private static final DefaultJdkDateCalculatorFactory DEFAULT = new DefaultJdkDateCalculatorFactory();
private static final JdkDatePeriodCountCalculator PCC = new DatePeriodCountCalculator();
private static final JdkDateIMMDateCalculator IMMDC = new JdkDateIMMDateCalculator();
- public static JdkDateCalculatorFactory getDefaultInstance() {
+ public static DefaultJdkDateCalculatorFactory getDefaultInstance() {
return DEFAULT;
}
@@ -49,23 +50,21 @@
* @see net.objectlab.kit.datecalc.jdk.JdkDateCalculatorFactory#getDateCalculator(java.lang.String,
* java.lang.String)
*/
- public JdkDateCalculator getDateCalculator(final String name, final String holidayHandlerType) {
+ public DateCalculator<Date> getDateCalculator(final String name, final String holidayHandlerType) {
final JdkDateBaseDateCalculator cal = new JdkDateBaseDateCalculator();
cal.setName(name);
- if (holidays.containsKey(name)) {
- cal.setNonWorkingDays(holidays.get(name));
- }
+ setHolidays(name, cal);
if (holidayHandlerType == null) {
return cal;
} else if (HolidayHandlerType.FORWARD.equals(holidayHandlerType)) {
- cal.setHolidayHandler(new ForwardHandler());
+ cal.setHolidayHandler(new DateForwardHandler());
} else if (HolidayHandlerType.BACKWARD.equals(holidayHandlerType)) {
- cal.setHolidayHandler(new BackwardHandler());
+ cal.setHolidayHandler(new DateBackwardHandler());
} else if (HolidayHandlerType.MODIFIED_FOLLLOWING.equals(holidayHandlerType)) {
- cal.setHolidayHandler(new ModifiedFollowingHandler());
+ cal.setHolidayHandler(new DateModifiedFollowingHandler());
} else if (HolidayHandlerType.MODIFIED_PRECEEDING.equals(holidayHandlerType)) {
- cal.setHolidayHandler(new ModifiedPreceedingHandler());
+ cal.setHolidayHandler(new DateModifiedPreceedingHandler());
} else {
throw new UnsupportedOperationException("Unsupported HolidayHandler: " + holidayHandlerType);
}
Deleted: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java
===================================================================
--- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java 2006-09-06 23:00:22 UTC (rev 123)
+++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java 2006-09-07 14:48:06 UTC (rev 124)
@@ -1,54 +0,0 @@
-/*
- * Copyright 2006 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package net.objectlab.kit.datecalc.jdk;
-
-import java.util.Calendar;
-
-import net.objectlab.kit.datecalc.common.DateCalculator;
-import net.objectlab.kit.datecalc.common.HolidayHandler;
-import net.objectlab.kit.datecalc.common.HolidayHandlerType;
-
-/**
- * TODO javadoc
- *
- * @author Marcin Jekot
- * @author $LastChangedBy$
- * @version $Revision$ $Date$
- *
- */
-public class ForwardHandler implements HolidayHandler<Calendar> {
-
- public Calendar moveCurrentDate(final DateCalculator<Calendar> calendar) {
- return move(calendar, 1);
- }
-
- protected Calendar move(final DateCalculator<Calendar> calculator, final int step) {
- // final Calendar cal = (Calendar)
- // calculator.getCurrentBusinessDate().clone();
- final Calendar cal = calculator.getCurrentBusinessDate();
-
- while (calculator.isNonWorkingDay(cal)) {
- cal.add(Calendar.DAY_OF_MONTH, step);
- }
-
- return cal;
- }
-
- public String getType() {
- return HolidayHandlerType.FORWARD;
- }
-
-}
Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/HolidayHandlerDateWrapper.java
=============================...
[truncated message content] |