|
From: <ma...@us...> - 2006-08-23 20:06:34
|
Revision: 36 Author: marchy Date: 2006-08-23 13:05:37 -0700 (Wed, 23 Aug 2006) ViewCVS: http://svn.sourceforge.net/objectlabkit/?rev=36&view=rev Log Message: ----------- renamed addDays() to moveByDays() to match moveByBusinessDays() Modified Paths: -------------- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BaseDateCalculator.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculator.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactoryTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ForwardDateCalculatorTest.java Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java 2006-08-23 12:14:53 UTC (rev 35) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java 2006-08-23 20:05:37 UTC (rev 36) @@ -142,7 +142,7 @@ return currentDate; } - public DateCalculator addDays(final int days) { + public DateCalculator moveByDays(final int days) { if (currentDate == null) { initialise(); } @@ -167,7 +167,7 @@ final int step = (businessDays < 0 ? -1 : 1); for (int i = 0; i < numberOfStepsLeft; i++) { - addDays(step); + moveByDays(step); } return this; @@ -306,9 +306,9 @@ switch (tenor.getCode()) { case DAY: - return addDays(tenor.getUnits()); + return moveByDays(tenor.getUnits()); case WEEK: - return addDays(tenor.getUnits() * DAYS_IN_WEEK); + return moveByDays(tenor.getUnits() * DAYS_IN_WEEK); case IMM: setCurrentBusinessDate(getNextIMMDate()); return this; Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java 2006-08-23 12:14:53 UTC (rev 35) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java 2006-08-23 20:05:37 UTC (rev 36) @@ -117,7 +117,7 @@ * @return the businessCalendar (so one can do * calendar.addDays(2).getCurrentBusinessDate();) */ - DateCalculator addDays(final int days); + DateCalculator moveByDays(final int days); /** * move the current date by a number of business days, this means that if a Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java 2006-08-23 12:14:53 UTC (rev 35) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java 2006-08-23 20:05:37 UTC (rev 36) @@ -20,11 +20,11 @@ final Date startDate = createDate("2006-08-01"); cal.setStartDate(startDate); - checkDate("Move by 0 days", cal.addDays(0), "2006-08-01"); - checkDate("Move by 1 days", cal.addDays(1), "2006-08-02"); - checkDate("Move by 1 more days", cal.addDays(1), "2006-08-03"); - checkDate("Move by 1 more more days", cal.addDays(1), "2006-08-04"); - checkDate("Move by 1 more more more days (across weekend)", cal.addDays(1), "2006-08-07"); + checkDate("Move by 0 days", cal.moveByDays(0), "2006-08-01"); + checkDate("Move by 1 days", cal.moveByDays(1), "2006-08-02"); + checkDate("Move by 1 more days", cal.moveByDays(1), "2006-08-03"); + checkDate("Move by 1 more more days", cal.moveByDays(1), "2006-08-04"); + checkDate("Move by 1 more more more days (across weekend)", cal.moveByDays(1), "2006-08-07"); } public void testSimpleForwardStartDateWithWeekend() { @@ -185,16 +185,16 @@ checkDate("Xmas Eve", cal, "2006-12-27"); cal.setStartDate(createDate("2006-12-21")); - checkDate("21/12 + 1", cal.addDays(1), "2006-12-22"); + checkDate("21/12 + 1", cal.moveByDays(1), "2006-12-22"); cal.setStartDate(createDate("2006-12-21")); - checkDate("21/12 + 1", cal.addDays(2), "2006-12-27"); + checkDate("21/12 + 1", cal.moveByDays(2), "2006-12-27"); cal.setStartDate(createDate("2006-12-22")); - checkDate("22/12 + 1", cal.addDays(1), "2006-12-27"); + checkDate("22/12 + 1", cal.moveByDays(1), "2006-12-27"); cal.setStartDate(createDate("2006-12-23")); - checkDate("23/12 + 1", cal.addDays(1), "2006-12-28"); + checkDate("23/12 + 1", cal.moveByDays(1), "2006-12-28"); } private void checkDate(final String string, final DateCalculator calendar, final String string2) { Modified: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BaseDateCalculator.java =================================================================== --- trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BaseDateCalculator.java 2006-08-23 12:14:53 UTC (rev 35) +++ trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BaseDateCalculator.java 2006-08-23 20:05:37 UTC (rev 36) @@ -151,7 +151,7 @@ return currentDate; } - public DateCalculator addDays(final int days) { + public DateCalculator moveByDays(final int days) { if (currentDate == null) { initialise(); } @@ -177,7 +177,7 @@ final int step = (businessDays < 0 ? -1 : 1); for (int i = 0; i < numberOfStepsLeft; i++) { - addDays(step); + moveByDays(step); } return this; @@ -361,9 +361,9 @@ setCurrentBusinessDate(getNextIMMDate()); return this; case DAY: - return addDays(tenor.getUnits()); + return moveByDays(tenor.getUnits()); case WEEK: - return addDays(tenor.getUnits() * DAYS_IN_WEEK); + return moveByDays(tenor.getUnits() * DAYS_IN_WEEK); default: throw new UnsupportedOperationException("Sorry not yet..."); } Modified: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculator.java =================================================================== --- trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculator.java 2006-08-23 12:14:53 UTC (rev 35) +++ trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculator.java 2006-08-23 20:05:37 UTC (rev 36) @@ -122,7 +122,7 @@ * @return the businessCalendar (so one can do * calendar.addDays(2).getCurrentBusinessDate();) */ - DateCalculator addDays(final int days); + DateCalculator moveByDays(final int days); /** * move the current date by a number of business days, this means that if a Modified: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java =================================================================== --- trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java 2006-08-23 12:14:53 UTC (rev 35) +++ trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java 2006-08-23 20:05:37 UTC (rev 36) @@ -23,11 +23,11 @@ final LocalDate startDate = new LocalDate("2006-08-01"); cal.setStartDate(startDate); - checkDate("Move by 0 days", cal.addDays(0), "2006-08-01"); - checkDate("Move by 1 days", cal.addDays(1), "2006-08-02"); - checkDate("Move by 1 more days", cal.addDays(1), "2006-08-03"); - checkDate("Move by 1 more more days", cal.addDays(1), "2006-08-04"); - checkDate("Move by 1 more more more days (across weekend)", cal.addDays(1), "2006-08-04"); + checkDate("Move by 0 days", cal.moveByDays(0), "2006-08-01"); + checkDate("Move by 1 days", cal.moveByDays(1), "2006-08-02"); + checkDate("Move by 1 more days", cal.moveByDays(1), "2006-08-03"); + checkDate("Move by 1 more more days", cal.moveByDays(1), "2006-08-04"); + checkDate("Move by 1 more more more days (across weekend)", cal.moveByDays(1), "2006-08-04"); } public void testSimpleBackwardStartDateWithWeekend() { @@ -188,16 +188,16 @@ checkDate("Xmas Eve", cal, "2006-12-22"); cal.setStartDate(new LocalDate("2006-12-21")); - checkDate("21/12 + 1", cal.addDays(1), "2006-12-22"); + checkDate("21/12 + 1", cal.moveByDays(1), "2006-12-22"); cal.setStartDate(new LocalDate("2006-12-21")); - checkDate("21/12 + 1", cal.addDays(2), "2006-12-22"); + checkDate("21/12 + 1", cal.moveByDays(2), "2006-12-22"); cal.setStartDate(new LocalDate("2006-12-22")); - checkDate("22/12 + 1", cal.addDays(1), "2006-12-22"); + checkDate("22/12 + 1", cal.moveByDays(1), "2006-12-22"); cal.setStartDate(new LocalDate("2006-12-23")); - checkDate("23/12 + 1", cal.addDays(1), "2006-12-22"); + checkDate("23/12 + 1", cal.moveByDays(1), "2006-12-22"); } /** @@ -219,7 +219,7 @@ checkDate("Move 1 BD", cal.moveByBusinessDays(1), "2006-08-25"); cal.setStartDate(new LocalDate("2006-08-24")); - checkDate("Add 1 week", cal.addDays(7), "2006-08-31"); + checkDate("Add 1 week", cal.moveByDays(7), "2006-08-31"); cal.setStartDate(new LocalDate("2006-08-24")); // checkDate("Move by 1W with 1 bank holiday", cal.moveByBusinessDays(7), "2006-09-05"); Modified: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactoryTest.java =================================================================== --- trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactoryTest.java 2006-08-23 12:14:53 UTC (rev 35) +++ trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactoryTest.java 2006-08-23 20:05:37 UTC (rev 36) @@ -75,16 +75,16 @@ Assert.assertNotNull("No hol", cal1.getNonWorkingDays()); Assert.assertTrue("empty hol", cal1.getNonWorkingDays().isEmpty()); - LocalDate date = cal1.addDays(0).getCurrentDate(); + LocalDate date = cal1.moveByDays(0).getCurrentDate(); Assert.assertEquals("default today", new LocalDate(), date); cal1.setStartDate(null); - date = cal1.addDays(0).getCurrentDate(); + date = cal1.moveByDays(0).getCurrentDate(); Assert.assertEquals("default today", new LocalDate(), date); cal1.setStartDate(new LocalDate("2006-08-08")); cal1.setCurrentBusinessDate(null); - date = cal1.addDays(0).getCurrentDate(); + date = cal1.moveByDays(0).getCurrentDate(); Assert.assertEquals("default today", new LocalDate(), date); } Modified: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ForwardDateCalculatorTest.java =================================================================== --- trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ForwardDateCalculatorTest.java 2006-08-23 12:14:53 UTC (rev 35) +++ trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ForwardDateCalculatorTest.java 2006-08-23 20:05:37 UTC (rev 36) @@ -23,11 +23,11 @@ final LocalDate startDate = new LocalDate("2006-08-01"); cal.setStartDate(startDate); - checkDate("Move by 0 days", cal.addDays(0), "2006-08-01"); - checkDate("Move by 1 days", cal.addDays(1), "2006-08-02"); - checkDate("Move by 1 more days", cal.addDays(1), "2006-08-03"); - checkDate("Move by 1 more more days", cal.addDays(1), "2006-08-04"); - checkDate("Move by 1 more more more days (across weekend)", cal.addDays(1), "2006-08-07"); + checkDate("Move by 0 days", cal.moveByDays(0), "2006-08-01"); + checkDate("Move by 1 days", cal.moveByDays(1), "2006-08-02"); + checkDate("Move by 1 more days", cal.moveByDays(1), "2006-08-03"); + checkDate("Move by 1 more more days", cal.moveByDays(1), "2006-08-04"); + checkDate("Move by 1 more more more days (across weekend)", cal.moveByDays(1), "2006-08-07"); } public void testSimpleForwardStartDateWithWeekend() { @@ -188,16 +188,16 @@ checkDate("Xmas Eve", cal, "2006-12-27"); cal.setStartDate(new LocalDate("2006-12-21")); - checkDate("21/12 + 1", cal.addDays(1), "2006-12-22"); + checkDate("21/12 + 1", cal.moveByDays(1), "2006-12-22"); cal.setStartDate(new LocalDate("2006-12-21")); - checkDate("21/12 + 1", cal.addDays(2), "2006-12-27"); + checkDate("21/12 + 1", cal.moveByDays(2), "2006-12-27"); cal.setStartDate(new LocalDate("2006-12-22")); - checkDate("22/12 + 1", cal.addDays(1), "2006-12-27"); + checkDate("22/12 + 1", cal.moveByDays(1), "2006-12-27"); cal.setStartDate(new LocalDate("2006-12-23")); - checkDate("23/12 + 1", cal.addDays(1), "2006-12-28"); + checkDate("23/12 + 1", cal.moveByDays(1), "2006-12-28"); } public void testMoveByBusinessDays() { @@ -216,7 +216,7 @@ checkDate("Move 1 BD", cal.moveByBusinessDays(1), "2006-08-25"); cal.setStartDate(new LocalDate("2006-08-24")); - checkDate("Add 1 week", cal.addDays(7), "2006-08-31"); + checkDate("Add 1 week", cal.moveByDays(7), "2006-08-31"); cal.setStartDate(new LocalDate("2006-08-24")); checkDate("Move by 1W with 1 bank holiday", cal.moveByBusinessDays(7), "2006-09-05"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ma...@us...> - 2006-08-23 21:25:20
|
Revision: 39 Author: marchy Date: 2006-08-23 14:22:58 -0700 (Wed, 23 Aug 2006) ViewCVS: http://svn.sourceforge.net/objectlabkit/?rev=39&view=rev Log Message: ----------- Initial stab at the refactoring of the DateCalendar into a generic interface in common. Working Week etc are next, and more methods need to be pulled up into the abstract class. I also plan to rename the interfaces + clean up. Modified Paths: -------------- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.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/ForwardDateCalculatorTest.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/IMMDateTest.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BaseDateCalculator.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculator.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorCombinationTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ForwardDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedFollowingDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedPreceedingDateCalculatorTest.java Added Paths: ----------- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculator.java trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorGeneric.java Added: 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 (rev 0) +++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculator.java 2006-08-23 21:22:58 UTC (rev 39) @@ -0,0 +1,78 @@ +package net.objectlab.kit.datecalc.common; + +import java.util.Collections; +import java.util.Set; + +public abstract class AbstractDateCalculator<DateType> implements DateCalculatorGeneric<DateType> { + + protected static final int MONTHS_IN_QUARTER = 3; + protected static final int MONTH_IN_YEAR = 12; + protected static final int DAYS_IN_WEEK = 7; + protected String name; + protected DateType startDate; + protected DateType currentDate; + protected Set<DateType> nonWorkingDays; + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + + public DateType getStartDate() { + return startDate; + } + + /** Set both start date and current date */ + public void setStartDate(final DateType startDate) { + this.startDate = startDate; + setCurrentBusinessDate(startDate); + } + + public DateType getCurrentDate() { + return currentDate; + } + + public Set<DateType> getNonWorkingDays() { + return Collections.unmodifiableSet(nonWorkingDays); + } + + public void setNonWorkingDays(final Set<DateType> holidays) { + if (holidays == null) { + nonWorkingDays = Collections.emptySet(); + } else { + nonWorkingDays = holidays; + } + } + + /** + * move the current date by a given tenor, this means that if a date is + * either a 'weekend' or holiday, it will be skipped acording to the holiday + * handler and not count towards the number of days to move. + * + * @param businessDays + * @return the current businessCalendar (so one can do + * calendar.moveByTenor(StandardTenor.T_2M).getCurrentBusinessDate();) + */ + public DateCalculatorGeneric<DateType> moveByTenor(final Tenor tenor) { + if (tenor == null) { + throw new IllegalArgumentException("Tenor cannot be null"); + } + + switch (tenor.getCode()) { + case DAY: + return moveByDays(tenor.getUnits()); + case WEEK: + return moveByDays(tenor.getUnits() * DAYS_IN_WEEK); + case IMM: + setCurrentBusinessDate(getNextIMMDate()); + return this; + default: + throw new UnsupportedOperationException("Sorry not yet..."); + } + + } + +} Added: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorGeneric.java =================================================================== --- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorGeneric.java (rev 0) +++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorGeneric.java 2006-08-23 21:22:58 UTC (rev 39) @@ -0,0 +1,149 @@ +package net.objectlab.kit.datecalc.common; + +import java.util.List; +import java.util.Set; + + +public interface DateCalculatorGeneric<DateType> { + + /** + * @return Calendar name (Typically the name associated with the holiday + * set). + */ + public String getName(); + + /** + * @param startDate + * the reference date for this calendar, the current date is also + * updated and may be moved if it falls on a non working day + * (holiday/weekend). + */ + public void setStartDate(final DateType startDate); + + /** + * @return startDate the reference date for this calendar. + */ + public DateType getStartDate(); + + /** + * @param currentDate held by the calendar. + */ + public DateType getCurrentDate(); + + /** + * is the given date on a weekend, according to the WorkingWeek + */ + public boolean isWeekend(final DateType date); + + /** + * is the given date a non working day, i.e. either a "weekend" or a + * holiday? + */ + public boolean isNonWorkingDay(final DateType date); + + /** + * @return true if the current date is either a weekend or a holiday. + */ + public boolean isCurrentDateNonWorking(); + + /** + * This is typically used at the construction of a DateCalculator. + * + * @param holidays + * the holiday (if null, an empty set will be put in place) + */ + public void setNonWorkingDays(final Set<DateType> holidays); + + /** + * @return an immutable copy of the holiday set. + */ + public Set<DateType> getNonWorkingDays(); + + /** + * Allow user to define what their Working Week should be (default is + * Mon-Fri). + * + * @param week + */ + public void setWorkingWeek(final WorkingWeek week); + + /** + * give a current business date which may be moved if it falls on a non + * working day. + * + * @param date + * @return new current date if moved. + */ + public DateType setCurrentBusinessDate(final DateType date); + + /** + * @return the holiday handler type, can be null + */ + public String getHolidayHandlerType(); + + /** + * move the current date by the number of days and, if it falls on a weekend + * or holiday, move it according to the HolidayHandler given in this + * DateCalculator. + * + * @param days + * number of day + * @return the businessCalendar (so one can do + * calendar.moveByDays(-2).getCurrentBusinessDate();) + */ + public DateCalculatorGeneric<DateType> moveByDays(final int days); + + /** + * move the current date by a number of business days, this means that if a + * date is either a 'weekend' or holiday, it will be skipped acording to the + * holiday handler and not count towards the number of days to move. + * + * @param businessDays + * @return the current businessCalendar (so one can do + * calendar.moveByBusinessDays(2).getCurrentBusinessDate();) + */ + public DateCalculatorGeneric<DateType> moveByBusinessDays(final int businessDays); + + /** + * By combining several calendars, we take into account several set of + * holidays. + * + * @param calendar + * @return a new DateCalculator + */ + public DateCalculatorGeneric<DateType> combine(DateCalculatorGeneric<DateType> calendar); + + /** + * move the current date by a given tenor, this means that if a date is + * either a 'weekend' or holiday, it will be skipped acording to the holiday + * handler and not count towards the number of days to move. + * + * @param businessDays + * @return the current businessCalendar (so one can do + * calendar.moveByTenor(StandardTenor.T_2M).getCurrentBusinessDate();) + */ + public DateCalculatorGeneric<DateType> moveByTenor(final Tenor tenor); + + /** + * @return the next IMMDate based on current date. + */ + public DateType getNextIMMDate(); + + /** + * @return the previous IMMDate based on current date. + */ + public DateType getPreviousIMMDate(); + + /** + * Returns a list of IMM dates between 2 dates, it will exclude the start + * date if it is an IMM date but would include the end date if it is an IMM. + * + * @param start + * start of the interval, excluded + * @param end + * end of the interval, may be included. + * @return list of IMM dates + */ + public List<DateType> getIMMDates(final DateType start, final DateType end); + +} \ No newline at end of file Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java 2006-08-23 20:54:43 UTC (rev 38) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java 2006-08-23 21:22:58 UTC (rev 39) @@ -23,7 +23,8 @@ import java.util.List; import java.util.Set; -import net.objectlab.kit.datecalc.common.Tenor; +import net.objectlab.kit.datecalc.common.AbstractDateCalculator; +import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; import net.objectlab.kit.datecalc.common.WorkingWeek; /** @@ -33,22 +34,12 @@ * * @author Benoit Xhenseval */ -public class BaseDateCalculator implements DateCalculator { +public class BaseDateCalculator extends AbstractDateCalculator<Date> implements DateCalculatorGeneric<Date>, DateCalculator { - private String name; - - private Date startDate; - - private Date currentDate; - - private Set<Date> nonWorkingDays; - private WorkingWeek workingWeek = WorkingWeek.DEFAULT; private HolidayHandler holidayHandler = null; - private final int DAYS_IN_WEEK = 7; - @SuppressWarnings("unchecked") public BaseDateCalculator() { this(null, null, Collections.EMPTY_SET, null); @@ -67,44 +58,10 @@ this.holidayHandler = holidayHandler; } - public Date getCurrentDate() { - return currentDate; - } - - public Set<Date> getNonWorkingDays() { - return Collections.unmodifiableSet(nonWorkingDays); - } - - public Date getStartDate() { - return startDate; - } - - public void setNonWorkingDays(final Set<Date> holidays) { - if (holidays == null) { - nonWorkingDays = Collections.emptySet(); - } else { - nonWorkingDays = holidays; - } - } - - /** Set both start date and current date */ - public void setStartDate(final Date startDate) { - this.startDate = startDate; - setCurrentBusinessDate(startDate); - } - public void setWorkingWeek(final WorkingWeek week) { workingWeek = week; } - public String getName() { - return name; - } - - public void setName(final String name) { - this.name = name; - } - void setHolidayHandler(final HolidayHandler holidayHandler) { this.holidayHandler = holidayHandler; } @@ -142,7 +99,7 @@ return currentDate; } - public DateCalculator moveByDays(final int days) { + public DateCalculatorGeneric<Date> moveByDays(final int days) { if (currentDate == null) { initialise(); } @@ -185,7 +142,7 @@ * if both calendars have different types of HolidayHandlers or * WorkingWeek; */ - public DateCalculator combine(final DateCalculator calendar) { + public DateCalculatorGeneric<Date> combine(final DateCalculatorGeneric calendar) { if (calendar == null || calendar == this) { return this; } @@ -203,7 +160,7 @@ newSet.addAll(calendar.getNonWorkingDays()); } - final DateCalculator cal = new BaseDateCalculator(getName() + "/" + calendar.getName(), getStartDate(), newSet, + final DateCalculatorGeneric cal = new BaseDateCalculator(getName() + "/" + calendar.getName(), getStartDate(), newSet, holidayHandler); return cal; @@ -290,31 +247,4 @@ cal.add(Calendar.DAY_OF_MONTH, 7 * 2); } - /** - * move the current date by a given tenor, this means that if a date is - * either a 'weekend' or holiday, it will be skipped acording to the holiday - * handler and not count towards the number of days to move. - * - * @param businessDays - * @return the current businessCalendar (so one can do - * calendar.moveByTenor(StandardTenor.T_2M).getCurrentBusinessDate();) - */ - public DateCalculator moveByTenor(final Tenor tenor) { - if (tenor == null) { - throw new IllegalArgumentException("Tenor cannot be null"); - } - - switch (tenor.getCode()) { - case DAY: - return moveByDays(tenor.getUnits()); - case WEEK: - return moveByDays(tenor.getUnits() * DAYS_IN_WEEK); - case IMM: - setCurrentBusinessDate(getNextIMMDate()); - return this; - default: - throw new UnsupportedOperationException("Sorry not yet..."); - } - - } } Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java 2006-08-23 20:54:43 UTC (rev 38) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java 2006-08-23 21:22:58 UTC (rev 39) @@ -16,12 +16,11 @@ package net.objectlab.kit.datecalc.jdk; import java.util.Date; -import java.util.List; -import java.util.Set; -import net.objectlab.kit.datecalc.common.Tenor; -import net.objectlab.kit.datecalc.common.WorkingWeek; +import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; + + /** * A DateCalculator is a lightweight container with a reference(optional) to a * set of holidays, a WorkingWeek (Mon-Fri by default), a startDate and a @@ -30,145 +29,5 @@ * * @author Benoit Xhenseval */ -public interface DateCalculator { - /** - * @return Calendar name (Typically the name associated with the holiday - * set). - */ - String getName(); - - /** - * @param startDate - * the reference date for this calendar, the current date is also - * updated and may be moved if it falls on a non working day - * (holiday/weekend). - */ - void setStartDate(final Date startDate); - - /** - * @return startDate the reference date for this calendar. - */ - Date getStartDate(); - - /** - * @param current - * Date held by the calendar. - */ - Date getCurrentDate(); - - /** - * is the date a non-working day according to the WorkingWeek? - */ - boolean isWeekend(final Date date); - - /** - * is the given date a non working day, i.e. either a "weekend" or a - * holiday? - */ - boolean isNonWorkingDay(final Date date); - - /** - * @return true if the current date is either a weekend or a holiday. - */ - boolean isCurrentDateNonWorking(); - - /** - * This is typically used at the construction of a DateCalculator. - * - * @param holidays - * the holiday (if null, an empty set will be put in place) - */ - void setNonWorkingDays(final Set<Date> holidays); - - /** - * @return an immutable copy of the holiday set. - */ - Set<Date> getNonWorkingDays(); - - /** - * Allow user to define what their Working Week should be (default is - * Mon-Fri). - * - * @param week - */ - void setWorkingWeek(final WorkingWeek week); - - /** - * give a current business date which may be moved if it falls on a non - * working day. - * - * @param date - * @return new current date if moved. - */ - Date setCurrentBusinessDate(final Date date); - - /** - * @return the holiday handler type, can be null - */ - String getHolidayHandlerType(); - - /** - * move the current date by the number of days and, if it falls on a weekend - * or holiday, move it according to the HolidayHandler given in this - * DateCalculator. - * - * @param days - * number of day - * @return the businessCalendar (so one can do - * calendar.addDays(2).getCurrentBusinessDate();) - */ - DateCalculator moveByDays(final int days); - - /** - * move the current date by a number of business days, this means that if a - * date is either a 'weekend' or holiday, it will be skipped acording to the - * holiday handler and not count towards the number of days to move. - * - * @param businessDays - * @return the current businessCalendar (so one can do - * calendar.moveByBusinessDays(2).getCurrentBusinessDate();) - */ - DateCalculator moveByBusinessDays(final int businessDays); - - /** - * By combining several calendars, we take into account several set of - * holidays. - * - * @param calendar - * @return a new DateCalculator - */ - DateCalculator combine(DateCalculator calendar); - - /** - * move the current date by a given tenor, this means that if a date is - * either a 'weekend' or holiday, it will be skipped acording to the holiday - * handler and not count towards the number of days to move. - * - * @param businessDays - * @return the current businessCalendar (so one can do - * calendar.moveByTenor(StandardTenor.T_2M).getCurrentBusinessDate();) - */ - DateCalculator moveByTenor(final Tenor tenor); - - /** - * @return the next IMMDate based on current date. - */ - Date getNextIMMDate(); - - /** - * @return the previous IMMDate based on current date. - */ - Date getPreviousIMMDate(); - - /** - * Returns a list of IMM dates between 2 dates, it will exclude the start - * date if it is an IMM date but would include the end date if it is an IMM. - * - * @param start - * start of the interval, excluded - * @param end - * end of the interval, may be included. - * @return list of IMM dates - */ - List<Date> getIMMDates(final Date start, final Date end); +public interface DateCalculator extends DateCalculatorGeneric<Date> { } Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java 2006-08-23 20:54:43 UTC (rev 38) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java 2006-08-23 21:22:58 UTC (rev 39) @@ -18,6 +18,8 @@ import java.util.Date; import java.util.Set; +import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; + /** * Factory will create new instances of DateCalculator, these are lightweight, * each thread should use the factory as a given DateCalculator should NOT be @@ -41,7 +43,7 @@ * typically one of the value of HolidayHandlerType * @return a new DateCalculator */ - DateCalculator getDateCalculator(final String name, final String holidayHandlerType); + DateCalculatorGeneric getDateCalculator(final String name, final String holidayHandlerType); /** * Use this method to register a set of holidays for a given calendar. Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-23 20:54:43 UTC (rev 38) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-23 21:22:58 UTC (rev 39) @@ -20,6 +20,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; import net.objectlab.kit.datecalc.common.HolidayHandlerType; public class DefaultDateCalculatorFactory implements DateCalculatorFactory { @@ -42,7 +43,7 @@ * typically one of the value of HolidayHandlerType * @return a new DateCalculator */ - public DateCalculator getDateCalculator(final String name, final String holidayHandlerType) { + public DateCalculatorGeneric getDateCalculator(final String name, final String holidayHandlerType) { final BaseDateCalculator cal = new BaseDateCalculator(); cal.setName(name); if (holidays.containsKey(name)) { Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java 2006-08-23 20:54:43 UTC (rev 38) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java 2006-08-23 21:22:58 UTC (rev 39) @@ -4,14 +4,15 @@ import junit.framework.Assert; +import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; import net.objectlab.kit.datecalc.common.HolidayHandlerType; public class DateCalculatorCombinationTest extends AbstractDateCalculatorTest { public void testInvalidCombinationDiffHandler() { - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", + final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", HolidayHandlerType.FORWARD); try { @@ -23,8 +24,8 @@ } public void testInvalidCombinationNullNotNullHandler() { - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", + final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); + final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", HolidayHandlerType.FORWARD); try { @@ -36,9 +37,9 @@ } public void testInvalidCombinationNotNullNullHandler() { - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", null); + final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", null); try { cal1.combine(cal2); @@ -50,14 +51,14 @@ public void testValidCombinationOneEmptySet() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", createUKHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", + final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", HolidayHandlerType.FORWARD); - final DateCalculator combo = cal1.combine(cal2); + final DateCalculatorGeneric combo = cal1.combine(cal2); Assert.assertEquals("Combo name", "bla/UK", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); Assert.assertEquals("start", Date, combo.getStartDate()); @@ -68,14 +69,14 @@ public void testValidCombination() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", createUKHolidays()); DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", createUKHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", + final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", + final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", HolidayHandlerType.FORWARD); - final DateCalculator combo = cal1.combine(cal2); + final DateCalculatorGeneric combo = cal1.combine(cal2); Assert.assertEquals("Combo name", "UK/UK", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); Assert.assertEquals("start", Date, combo.getStartDate()); @@ -86,14 +87,14 @@ public void testValidCombination2Sets() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", createUKHolidays()); DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("US", createUSHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", + final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", + final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", HolidayHandlerType.FORWARD); - final DateCalculator combo = cal1.combine(cal2); + final DateCalculatorGeneric combo = cal1.combine(cal2); Assert.assertEquals("Combo name", "US/UK", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); Assert.assertEquals("start", Date, combo.getStartDate()); @@ -103,12 +104,12 @@ public void testNullCombination() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("US", createUSHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", + final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator combo = cal1.combine(null); + final DateCalculatorGeneric combo = cal1.combine(null); Assert.assertSame("same", combo, cal1); Assert.assertEquals("Combo name", "US", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); @@ -119,12 +120,12 @@ public void testSameCombination() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("US", createUSHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", + final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator combo = cal1.combine(cal1); + f... [truncated message content] |
|
From: <ma...@us...> - 2006-08-23 22:02:32
|
Revision: 41 Author: marchy Date: 2006-08-23 15:00:20 -0700 (Wed, 23 Aug 2006) ViewCVS: http://svn.sourceforge.net/objectlabkit/?rev=41&view=rev Log Message: ----------- More generics refactoring. Managed to pull in HolidayHandler. Next is will be the calendar factories. 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/BaseDateCalculator.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.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/ForwardDateCalculatorTest.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/IMMDateTest.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BackwardHandler.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BaseDateCalculator.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactory.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/ForwardHandler.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/ModifiedFollowingHandler.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/ModifiedPreceedingHandler.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorCombinationTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactoryTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ForwardDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/IMMDateTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedFollowingDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedPreceedingDateCalculatorTest.java Added Paths: ----------- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculator.java trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/HolidayHandler.java Removed Paths: ------------- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorGeneric.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/HolidayHandler.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculator.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/HolidayHandler.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-08-23 21:53:02 UTC (rev 40) +++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/AbstractDateCalculator.java 2006-08-23 22:00:20 UTC (rev 41) @@ -3,7 +3,7 @@ import java.util.Collections; import java.util.Set; -public abstract class AbstractDateCalculator<DateType> implements DateCalculatorGeneric<DateType> { +public abstract class AbstractDateCalculator<DateType> implements DateCalculator<DateType> { protected static final int MONTHS_IN_QUARTER = 3; protected static final int MONTH_IN_YEAR = 12; @@ -12,7 +12,8 @@ protected DateType startDate; protected DateType currentDate; protected Set<DateType> nonWorkingDays; - + protected HolidayHandler<DateType> holidayHandler; + public String getName() { return name; } @@ -56,7 +57,7 @@ * @return the current businessCalendar (so one can do * calendar.moveByTenor(StandardTenor.T_2M).getCurrentBusinessDate();) */ - public DateCalculatorGeneric<DateType> moveByTenor(final Tenor tenor) { + public DateCalculator<DateType> moveByTenor(final Tenor tenor) { if (tenor == null) { throw new IllegalArgumentException("Tenor cannot be null"); } @@ -75,4 +76,12 @@ } + public void setHolidayHandler(final HolidayHandler<DateType> holidayHandler) { + this.holidayHandler = holidayHandler; + } + + public String getHolidayHandlerType() { + return (holidayHandler != null ? holidayHandler.getType() : null); + } + } Copied: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculator.java (from rev 39, trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorGeneric.java) =================================================================== --- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculator.java (rev 0) +++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculator.java 2006-08-23 22:00:20 UTC (rev 41) @@ -0,0 +1,149 @@ +package net.objectlab.kit.datecalc.common; + +import java.util.List; +import java.util.Set; + + +public interface DateCalculator<DateType> { + + /** + * @return Calendar name (Typically the name associated with the holiday + * set). + */ + public String getName(); + + /** + * @param startDate + * the reference date for this calendar, the current date is also + * updated and may be moved if it falls on a non working day + * (holiday/weekend). + */ + public void setStartDate(final DateType startDate); + + /** + * @return startDate the reference date for this calendar. + */ + public DateType getStartDate(); + + /** + * @param currentDate held by the calendar. + */ + public DateType getCurrentDate(); + + /** + * is the given date on a weekend, according to the WorkingWeek + */ + public boolean isWeekend(final DateType date); + + /** + * is the given date a non working day, i.e. either a "weekend" or a + * holiday? + */ + public boolean isNonWorkingDay(final DateType date); + + /** + * @return true if the current date is either a weekend or a holiday. + */ + public boolean isCurrentDateNonWorking(); + + /** + * This is typically used at the construction of a DateCalculator. + * + * @param holidays + * the holiday (if null, an empty set will be put in place) + */ + public void setNonWorkingDays(final Set<DateType> holidays); + + /** + * @return an immutable copy of the holiday set. + */ + public Set<DateType> getNonWorkingDays(); + + /** + * Allow user to define what their Working Week should be (default is + * Mon-Fri). + * + * @param week + */ + public void setWorkingWeek(final WorkingWeek week); + + /** + * give a current business date which may be moved if it falls on a non + * working day. + * + * @param date + * @return new current date if moved. + */ + public DateType setCurrentBusinessDate(final DateType date); + + /** + * @return the holiday handler type, can be null + */ + public String getHolidayHandlerType(); + + /** + * move the current date by the number of days and, if it falls on a weekend + * or holiday, move it according to the HolidayHandler given in this + * DateCalculator. + * + * @param days + * number of day + * @return the businessCalendar (so one can do + * calendar.moveByDays(-2).getCurrentBusinessDate();) + */ + public DateCalculator<DateType> moveByDays(final int days); + + /** + * move the current date by a number of business days, this means that if a + * date is either a 'weekend' or holiday, it will be skipped acording to the + * holiday handler and not count towards the number of days to move. + * + * @param businessDays + * @return the current businessCalendar (so one can do + * calendar.moveByBusinessDays(2).getCurrentBusinessDate();) + */ + public DateCalculator<DateType> moveByBusinessDays(final int businessDays); + + /** + * By combining several calendars, we take into account several set of + * holidays. + * + * @param calendar + * @return a new DateCalculator + */ + public DateCalculator<DateType> combine(DateCalculator<DateType> calendar); + + /** + * move the current date by a given tenor, this means that if a date is + * either a 'weekend' or holiday, it will be skipped acording to the holiday + * handler and not count towards the number of days to move. + * + * @param businessDays + * @return the current businessCalendar (so one can do + * calendar.moveByTenor(StandardTenor.T_2M).getCurrentBusinessDate();) + */ + public DateCalculator<DateType> moveByTenor(final Tenor tenor); + + /** + * @return the next IMMDate based on current date. + */ + public DateType getNextIMMDate(); + + /** + * @return the previous IMMDate based on current date. + */ + public DateType getPreviousIMMDate(); + + /** + * Returns a list of IMM dates between 2 dates, it will exclude the start + * date if it is an IMM date but would include the end date if it is an IMM. + * + * @param start + * start of the interval, excluded + * @param end + * end of the interval, may be included. + * @return list of IMM dates + */ + public List<DateType> getIMMDates(final DateType start, final DateType end); + +} \ No newline at end of file Deleted: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorGeneric.java =================================================================== --- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorGeneric.java 2006-08-23 21:53:02 UTC (rev 40) +++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorGeneric.java 2006-08-23 22:00:20 UTC (rev 41) @@ -1,149 +0,0 @@ -package net.objectlab.kit.datecalc.common; - -import java.util.List; -import java.util.Set; - - -public interface DateCalculatorGeneric<DateType> { - - /** - * @return Calendar name (Typically the name associated with the holiday - * set). - */ - public String getName(); - - /** - * @param startDate - * the reference date for this calendar, the current date is also - * updated and may be moved if it falls on a non working day - * (holiday/weekend). - */ - public void setStartDate(final DateType startDate); - - /** - * @return startDate the reference date for this calendar. - */ - public DateType getStartDate(); - - /** - * @param currentDate held by the calendar. - */ - public DateType getCurrentDate(); - - /** - * is the given date on a weekend, according to the WorkingWeek - */ - public boolean isWeekend(final DateType date); - - /** - * is the given date a non working day, i.e. either a "weekend" or a - * holiday? - */ - public boolean isNonWorkingDay(final DateType date); - - /** - * @return true if the current date is either a weekend or a holiday. - */ - public boolean isCurrentDateNonWorking(); - - /** - * This is typically used at the construction of a DateCalculator. - * - * @param holidays - * the holiday (if null, an empty set will be put in place) - */ - public void setNonWorkingDays(final Set<DateType> holidays); - - /** - * @return an immutable copy of the holiday set. - */ - public Set<DateType> getNonWorkingDays(); - - /** - * Allow user to define what their Working Week should be (default is - * Mon-Fri). - * - * @param week - */ - public void setWorkingWeek(final WorkingWeek week); - - /** - * give a current business date which may be moved if it falls on a non - * working day. - * - * @param date - * @return new current date if moved. - */ - public DateType setCurrentBusinessDate(final DateType date); - - /** - * @return the holiday handler type, can be null - */ - public String getHolidayHandlerType(); - - /** - * move the current date by the number of days and, if it falls on a weekend - * or holiday, move it according to the HolidayHandler given in this - * DateCalculator. - * - * @param days - * number of day - * @return the businessCalendar (so one can do - * calendar.moveByDays(-2).getCurrentBusinessDate();) - */ - public DateCalculatorGeneric<DateType> moveByDays(final int days); - - /** - * move the current date by a number of business days, this means that if a - * date is either a 'weekend' or holiday, it will be skipped acording to the - * holiday handler and not count towards the number of days to move. - * - * @param businessDays - * @return the current businessCalendar (so one can do - * calendar.moveByBusinessDays(2).getCurrentBusinessDate();) - */ - public DateCalculatorGeneric<DateType> moveByBusinessDays(final int businessDays); - - /** - * By combining several calendars, we take into account several set of - * holidays. - * - * @param calendar - * @return a new DateCalculator - */ - public DateCalculatorGeneric<DateType> combine(DateCalculatorGeneric<DateType> calendar); - - /** - * move the current date by a given tenor, this means that if a date is - * either a 'weekend' or holiday, it will be skipped acording to the holiday - * handler and not count towards the number of days to move. - * - * @param businessDays - * @return the current businessCalendar (so one can do - * calendar.moveByTenor(StandardTenor.T_2M).getCurrentBusinessDate();) - */ - public DateCalculatorGeneric<DateType> moveByTenor(final Tenor tenor); - - /** - * @return the next IMMDate based on current date. - */ - public DateType getNextIMMDate(); - - /** - * @return the previous IMMDate based on current date. - */ - public DateType getPreviousIMMDate(); - - /** - * Returns a list of IMM dates between 2 dates, it will exclude the start - * date if it is an IMM date but would include the end date if it is an IMM. - * - * @param start - * start of the interval, excluded - * @param end - * end of the interval, may be included. - * @return list of IMM dates - */ - public List<DateType> getIMMDates(final DateType start, final DateType end); - -} \ No newline at end of file Copied: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/HolidayHandler.java (from rev 38, trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/HolidayHandler.java) =================================================================== --- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/HolidayHandler.java (rev 0) +++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/HolidayHandler.java 2006-08-23 22:00:20 UTC (rev 41) @@ -0,0 +1,28 @@ +/* + * 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.common; + +/** + * This will be called to determine whether the date should be moved according + * to the special algorithm used. + * + * @author Benoit Xhenseval + */ +public interface HolidayHandler<DateType> { + DateType moveCurrentDate(DateCalculator<DateType> calendar); + + String getType(); +} Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java 2006-08-23 21:53:02 UTC (rev 40) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java 2006-08-23 22:00:20 UTC (rev 41) @@ -24,7 +24,8 @@ import java.util.Set; import net.objectlab.kit.datecalc.common.AbstractDateCalculator; -import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; +import net.objectlab.kit.datecalc.common.DateCalculator; +import net.objectlab.kit.datecalc.common.HolidayHandler; import net.objectlab.kit.datecalc.common.WorkingWeek; /** @@ -34,12 +35,10 @@ * * @author Benoit Xhenseval */ -public class BaseDateCalculator extends AbstractDateCalculator<Date> implements DateCalculatorGeneric<Date>, DateCalculator { +public class BaseDateCalculator extends AbstractDateCalculator<Date> { private WorkingWeek workingWeek = WorkingWeek.DEFAULT; - private HolidayHandler holidayHandler = null; - @SuppressWarnings("unchecked") public BaseDateCalculator() { this(null, null, Collections.EMPTY_SET, null); @@ -62,16 +61,6 @@ workingWeek = week; } - void setHolidayHandler(final HolidayHandler holidayHandler) { - this.holidayHandler = holidayHandler; - } - - public String getHolidayHandlerType() { - return (holidayHandler != null ? holidayHandler.getType() : null); - } - - // ----------------------------------------------------------------- - /** * is the date a non-working day according to the WorkingWeek? */ @@ -99,7 +88,7 @@ return currentDate; } - public DateCalculatorGeneric<Date> moveByDays(final int days) { + public DateCalculator<Date> moveByDays(final int days) { if (currentDate == null) { initialise(); } @@ -119,7 +108,7 @@ } } - public DateCalculator moveByBusinessDays(final int businessDays) { + public DateCalculator<Date> moveByBusinessDays(final int businessDays) { final int numberOfStepsLeft = Math.abs(businessDays); final int step = (businessDays < 0 ? -1 : 1); @@ -142,7 +131,7 @@ * if both calendars have different types of HolidayHandlers or * WorkingWeek; */ - public DateCalculatorGeneric<Date> combine(final DateCalculatorGeneric calendar) { + public DateCalculator<Date> combine(final DateCalculator calendar) { if (calendar == null || calendar == this) { return this; } @@ -160,7 +149,7 @@ newSet.addAll(calendar.getNonWorkingDays()); } - final DateCalculatorGeneric cal = new BaseDateCalculator(getName() + "/" + calendar.getName(), getStartDate(), newSet, + final DateCalculator cal = new BaseDateCalculator(getName() + "/" + calendar.getName(), getStartDate(), newSet, holidayHandler); return cal; Deleted: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java 2006-08-23 21:53:02 UTC (rev 40) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculator.java 2006-08-23 22:00:20 UTC (rev 41) @@ -1,33 +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.Date; - -import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; - - - -/** - * A DateCalculator is a lightweight container with a reference(optional) to a - * set of holidays, a WorkingWeek (Mon-Fri by default), a startDate and a - * current date. The CurrentDate date is changed everytime that the addDays or - * moveByBusinessDays methods are called. - * - * @author Benoit Xhenseval - */ -public interface DateCalculator extends DateCalculatorGeneric<Date> { -} Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java 2006-08-23 21:53:02 UTC (rev 40) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java 2006-08-23 22:00:20 UTC (rev 41) @@ -18,7 +18,7 @@ import java.util.Date; import java.util.Set; -import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; +import net.objectlab.kit.datecalc.common.DateCalculator; /** * Factory will create new instances of DateCalculator, these are lightweight, @@ -43,7 +43,7 @@ * typically one of the value of HolidayHandlerType * @return a new DateCalculator */ - DateCalculatorGeneric getDateCalculator(final String name, final String holidayHandlerType); + DateCalculator getDateCalculator(final String name, final String holidayHandlerType); /** * Use this method to register a set of holidays for a given calendar. Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-23 21:53:02 UTC (rev 40) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-23 22:00:20 UTC (rev 41) @@ -20,7 +20,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; +import net.objectlab.kit.datecalc.common.DateCalculator; import net.objectlab.kit.datecalc.common.HolidayHandlerType; public class DefaultDateCalculatorFactory implements DateCalculatorFactory { @@ -43,7 +43,7 @@ * typically one of the value of HolidayHandlerType * @return a new DateCalculator */ - public DateCalculatorGeneric getDateCalculator(final String name, final String holidayHandlerType) { + public DateCalculator getDateCalculator(final String name, final String holidayHandlerType) { final BaseDateCalculator cal = new BaseDateCalculator(); cal.setName(name); if (holidays.containsKey(name)) { Modified: 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-08-23 21:53:02 UTC (rev 40) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java 2006-08-23 22:00:20 UTC (rev 41) @@ -18,6 +18,8 @@ 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; /** @@ -25,9 +27,9 @@ * @author Marcin Jekot * */ -public class ForwardHandler implements HolidayHandler { +public class ForwardHandler implements HolidayHandler<Date> { - public Date moveCurrentDate(DateCalculator calendar) { + public Date moveCurrentDate(DateCalculator<Date> calendar) { Calendar cal = Utils.getCal(calendar.getCurrentDate()); Deleted: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/HolidayHandler.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/HolidayHandler.java 2006-08-23 21:53:02 UTC (rev 40) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/HolidayHandler.java 2006-08-23 22:00:20 UTC (rev 41) @@ -1,30 +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.Date; - -/** - * This will be called to determine whether the date should be moved according - * to the special algorithm used. - * - * @author Benoit Xhenseval - */ -public interface HolidayHandler { - Date moveCurrentDate(DateCalculator calendar); - - String getType(); -} Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java 2006-08-23 21:53:02 UTC (rev 40) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java 2006-08-23 22:00:20 UTC (rev 41) @@ -4,15 +4,15 @@ import junit.framework.Assert; -import net.objectlab.kit.datecalc.common.DateCalculatorGeneric; +import net.objectlab.kit.datecalc.common.DateCalculator; import net.objectlab.kit.datecalc.common.HolidayHandlerType; public class DateCalculatorCombinationTest extends AbstractDateCalculatorTest { public void testInvalidCombinationDiffHandler() { - final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); - final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", + final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", HolidayHandlerType.FORWARD); try { @@ -24,8 +24,8 @@ } public void testInvalidCombinationNullNotNullHandler() { - final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); - final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", + final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); + final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", HolidayHandlerType.FORWARD); try { @@ -37,9 +37,9 @@ } public void testInvalidCombinationNotNullNullHandler() { - final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); - final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", null); + final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", null); try { cal1.combine(cal2); @@ -51,14 +51,14 @@ public void testValidCombinationOneEmptySet() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", createUKHolidays()); - final DateCalculatorGeneric cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculatorGeneric cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", + final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", HolidayHandlerType.FORWARD); - final DateCalculatorGeneric combo = cal1.combine(cal2); + final DateCalculator combo = cal1.combine(cal2); Assert.assertEquals("Combo name", "bla/UK", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); Asser... [truncated message content] |
|
From: <ma...@us...> - 2006-08-26 08:46:38
|
Revision: 57 Author: marchy Date: 2006-08-26 01:44:37 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/objectlabkit/?rev=57&view=rev Log Message: ----------- Adding keyword expansion to all the java files. Property Changed: ---------------- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultPeriodCountCalculator.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/PeriodCountCalculator.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/Utils.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/AbstractDateCalculatorTest.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.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/ForwardDateCalculatorTest.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/IMMDateTest.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JodaWorkingWeekTest.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BackwardHandler.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BaseDateCalculator.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactory.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultPeriodCountCalculator.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/ForwardHandler.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/JodaWorkingWeek.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/ModifiedFollowingHandler.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/ModifiedPreceedingHandler.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculator.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/AbstractDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorCombinationTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactoryTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ForwardDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/IMMDateTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/JodaWorkingWeekTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedFollowingDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedPreceedingDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculatorTest.java Property changes on: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BaseDateCalculator.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultPeriodCountCalculator.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculator.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/Utils.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/AbstractDateCalculatorTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactoryTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/IMMDateTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JodaWorkingWeekTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BackwardHandler.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/BaseDateCalculator.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactory.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultPeriodCountCalculator.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/ForwardHandler.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/JodaWorkingWeek.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/ModifiedFollowingHandler.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/ModifiedPreceedingHandler.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculator.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/AbstractDateCalculatorTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorCombinationTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactoryTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ForwardDateCalculatorTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/IMMDateTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/JodaWorkingWeekTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedFollowingDateCalculatorTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedPreceedingDateCalculatorTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision Property changes on: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculatorTest.java ___________________________________________________________________ Name: svn:keywords + Id LastChangedBy LastChangedDate LastChangedRevision This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ma...@us...> - 2006-08-26 09:30:13
|
Revision: 61 Author: marchy Date: 2006-08-26 02:28:55 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/objectlabkit/?rev=61&view=rev Log Message: ----------- Made DateCalculatorFactory and PeriodCountCalculator generic. Modified Paths: -------------- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultPeriodCountCalculator.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultPeriodCountCalculator.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculatorTest.java Added Paths: ----------- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorFactory.java trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/PeriodCountCalculator.java Removed Paths: ------------- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculator.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactory.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculator.java Copied: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorFactory.java (from rev 57, trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java) =================================================================== --- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorFactory.java (rev 0) +++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/DateCalculatorFactory.java 2006-08-26 09:28:55 UTC (rev 61) @@ -0,0 +1,64 @@ +/* + * $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.common; + +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. + * + * @author Benoit Xhenseval + * @author $LastEditedBy$ + * @version $Revision$ $Date$ + */ +public interface DateCalculatorFactory<E> { + + /** + * Create a new DateCalculator for a given name and type of handling. + * + * @param name + * calendar name (holidays set interested in). If there is set of + * holidays with that name, it will return a DateCalculator with + * an empty holiday set (will work on Weekend only). + * @param type + * typically one of the value of HolidayHandlerType + * @return a new DateCalculator + */ + DateCalculator<E> getDateCalculator(final String name, + final String holidayHandlerType); + + /** + * Use this method to register a set of holidays for a given calendar. + * + * @param name + * the calendar name to register these holidays under. + * @param holidays + * the set of holidays (non-working days). + */ + void registerHolidays(final String name, Set<E> holidays); + + /** + * @return a PeriodCountCalculator + */ + PeriodCountCalculator<E> getPeriodCountCalculator(); +} Copied: trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/PeriodCountCalculator.java (from rev 57, trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculator.java) =================================================================== --- trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/PeriodCountCalculator.java (rev 0) +++ trunk/datecalc-common/src/main/java/net/objectlab/kit/datecalc/common/PeriodCountCalculator.java 2006-08-26 09:28:55 UTC (rev 61) @@ -0,0 +1,35 @@ +/* + * $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.common; + +/** + * TODO add javadoc + * + * @author Benoit Xhenseval + * @author $LastChangedBy$ + * @version $Revision$ $Date$ + * + * @param <E> + */ +public interface PeriodCountCalculator<E> { + int dayDiff(final E start, final E end, PeriodCountBasis basis); + + double monthDiff(final E start, final E end, PeriodCountBasis basis); + + double yearDiff(final E start, final E end, PeriodCountBasis basis); +} Deleted: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactory.java 2006-08-26 09:28:55 UTC (rev 61) @@ -1,62 +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.Date; -import java.util.Set; - -import net.objectlab.kit.datecalc.common.DateCalculator; - -/** - * 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. - * - * @author Benoit Xhenseval - */ -public interface DateCalculatorFactory { - - /** - * Create a new DateCalculator for a given name and type of handling. - * - * @param name - * calendar name (holidays set interested in). If there is set of - * holidays with that name, it will return a DateCalculator with - * an empty holiday set (will work on Weekend only). - * @param type - * typically one of the value of HolidayHandlerType - * @return a new DateCalculator - */ - DateCalculator getDateCalculator(final String name, final String holidayHandlerType); - - /** - * Use this method to register a set of holidays for a given calendar. - * - * @param name - * the calendar name to register these holidays under. - * @param holidays - * the set of holidays (non-working days). - */ - void registerHolidays(final String name, Set<Date> holidays); - - /** - * @return a PeriodCountCalculator - */ - PeriodCountCalculator getPeriodCountCalculator(); -} Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-26 09:28:55 UTC (rev 61) @@ -1,4 +1,6 @@ /* + * $Id$ + * * Copyright 2006 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not @@ -21,9 +23,19 @@ import java.util.concurrent.ConcurrentMap; import net.objectlab.kit.datecalc.common.DateCalculator; +import net.objectlab.kit.datecalc.common.DateCalculatorFactory; import net.objectlab.kit.datecalc.common.HolidayHandlerType; +import net.objectlab.kit.datecalc.common.PeriodCountCalculator; -public class DefaultDateCalculatorFactory implements DateCalculatorFactory { +/** + * TODO add javadoc + * + * @author Benoit Xhenseval + * @author $LastChangedBy$ + * @version $Revision$ $Date$ + * + */ +public class DefaultDateCalculatorFactory implements DateCalculatorFactory<Date> { private static final DateCalculatorFactory DEFAULT = new DefaultDateCalculatorFactory(); private final ConcurrentMap<String, Set<Date>> holidays = new ConcurrentHashMap<String, Set<Date>>(); @@ -43,7 +55,7 @@ * typically one of the value of HolidayHandlerType * @return a new DateCalculator */ - public DateCalculator getDateCalculator(final String name, final String holidayHandlerType) { + public DateCalculator<Date> getDateCalculator(final String name, final String holidayHandlerType) { final BaseDateCalculator cal = new BaseDateCalculator(); cal.setName(name); if (holidays.containsKey(name)) { @@ -85,9 +97,9 @@ this.holidays.put(name, holidays); } - private static final PeriodCountCalculator PCC = new DefaultPeriodCountCalculator(); + private static final PeriodCountCalculator<Date> PCC = new DefaultPeriodCountCalculator(); - public PeriodCountCalculator getPeriodCountCalculator() { + public PeriodCountCalculator<Date> getPeriodCountCalculator() { return PCC; } } Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultPeriodCountCalculator.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultPeriodCountCalculator.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultPeriodCountCalculator.java 2006-08-26 09:28:55 UTC (rev 61) @@ -1,3 +1,20 @@ +/* + * $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.Date; @@ -3,6 +20,15 @@ import net.objectlab.kit.datecalc.common.PeriodCountBasis; +import net.objectlab.kit.datecalc.common.PeriodCountCalculator; -public class DefaultPeriodCountCalculator implements PeriodCountCalculator { +/** + * TODO javadoc + * + * @author Benoit Xhenseval + * @author $LastChangedBy$ + * @version $Revision$ $Date$ + * + */ +public class DefaultPeriodCountCalculator implements PeriodCountCalculator<Date> { public int dayDiff(final Date start, final Date end, final PeriodCountBasis basis) { Deleted: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculator.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculator.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculator.java 2006-08-26 09:28:55 UTC (rev 61) @@ -1,13 +0,0 @@ -package net.objectlab.kit.datecalc.jdk; - -import java.util.Date; - -import net.objectlab.kit.datecalc.common.PeriodCountBasis; - -public interface PeriodCountCalculator { - int dayDiff(final Date start, final Date end, PeriodCountBasis basis); - - double monthDiff(final Date start, final Date end, PeriodCountBasis basis); - - double yearDiff(final Date start, final Date end, PeriodCountBasis basis); -} Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java 2006-08-26 09:28:55 UTC (rev 61) @@ -20,6 +20,7 @@ import junit.framework.Assert; import net.objectlab.kit.datecalc.common.PeriodCountBasis; +import net.objectlab.kit.datecalc.common.PeriodCountCalculator; public class PeriodCountCalculatorTest extends AbstractDateCalculatorTest { Deleted: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactory.java =================================================================== --- trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactory.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactory.java 2006-08-26 09:28:55 UTC (rev 61) @@ -1,63 +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.joda; - -import java.util.Set; - -import net.objectlab.kit.datecalc.common.DateCalculator; - -import org.joda.time.LocalDate; - -/** - * 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. - * - * @author Benoit Xhenseval - */ -public interface DateCalculatorFactory { - - /** - * Create a new DateCalculator for a given name and type of handling. - * - * @param name - * calendar name (holidays set interested in). If there is set of - * holidays with that name, it will return a DateCalculator with - * an empty holiday set (will work on Weekend only). - * @param type - * typically one of the value of HolidayHandlerType - * @return a new DateCalculator - */ - DateCalculator<LocalDate> getDateCalculator(final String name, final String holidayHandlerType); - - /** - * Use this method to register a set of holidays for a given calendar. - * - * @param name - * the calendar name to register these holidays under. - * @param holidays - * the set of holidays (non-working days). - */ - void registerHolidays(final String name, Set<LocalDate> holidays); - - /** - * @return a PeriodCountCalculator - */ - PeriodCountCalculator getPeriodCountCalculator(); -} Modified: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java =================================================================== --- trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java 2006-08-26 09:28:55 UTC (rev 61) @@ -21,11 +21,13 @@ import java.util.concurrent.ConcurrentMap; import net.objectlab.kit.datecalc.common.DateCalculator; +import net.objectlab.kit.datecalc.common.DateCalculatorFactory; import net.objectlab.kit.datecalc.common.HolidayHandlerType; +import net.objectlab.kit.datecalc.common.PeriodCountCalculator; import org.joda.time.LocalDate; -public class DefaultDateCalculatorFactory implements DateCalculatorFactory { +public class DefaultDateCalculatorFactory implements DateCalculatorFactory<LocalDate> { private static final DateCalculatorFactory DEFAULT = new DefaultDateCalculatorFactory(); private final ConcurrentMap<String, Set<LocalDate>> holidays = new ConcurrentHashMap<String, Set<LocalDate>>(); @@ -79,9 +81,9 @@ this.holidays.put(name, new HashSet<LocalDate>(holidayDates)); } - private static final PeriodCountCalculator PCC = new DefaultPeriodCountCalculator(); + private static final PeriodCountCalculator<LocalDate> PCC = new DefaultPeriodCountCalculator(); - public PeriodCountCalculator getPeriodCountCalculator() { + public PeriodCountCalculator<LocalDate> getPeriodCountCalculator() { return PCC; } } Modified: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultPeriodCountCalculator.java =================================================================== --- trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultPeriodCountCalculator.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultPeriodCountCalculator.java 2006-08-26 09:28:55 UTC (rev 61) @@ -1,12 +1,13 @@ package net.objectlab.kit.datecalc.joda; import net.objectlab.kit.datecalc.common.PeriodCountBasis; +import net.objectlab.kit.datecalc.common.PeriodCountCalculator; import org.joda.time.LocalDate; import org.joda.time.Period; import org.joda.time.PeriodType; -public class DefaultPeriodCountCalculator implements PeriodCountCalculator { +public class DefaultPeriodCountCalculator implements PeriodCountCalculator<LocalDate> { private static final int YEAR_360 = 360; private static final int MONTHS_IN_YEAR = 12; Deleted: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculator.java =================================================================== --- trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculator.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculator.java 2006-08-26 09:28:55 UTC (rev 61) @@ -1,13 +0,0 @@ -package net.objectlab.kit.datecalc.joda; - -import net.objectlab.kit.datecalc.common.PeriodCountBasis; - -import org.joda.time.LocalDate; - -public interface PeriodCountCalculator { - int dayDiff(final LocalDate start, final LocalDate end, PeriodCountBasis basis); - - double monthDiff(final LocalDate start, final LocalDate end, PeriodCountBasis basis); - - double yearDiff(final LocalDate start, final LocalDate end, PeriodCountBasis basis); -} Modified: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculatorTest.java =================================================================== --- trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculatorTest.java 2006-08-26 09:08:30 UTC (rev 60) +++ trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculatorTest.java 2006-08-26 09:28:55 UTC (rev 61) @@ -20,6 +20,7 @@ import junit.framework.Assert; import junit.framework.TestCase; import net.objectlab.kit.datecalc.common.PeriodCountBasis; +import net.objectlab.kit.datecalc.common.PeriodCountCalculator; import org.joda.time.LocalDate; @@ -316,7 +317,7 @@ }; public void testConv30EvIsma() { - final PeriodCountCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); + final PeriodCountCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); Assert.assertNotNull(cal); for (final String[] test : CONV_360E_ISMA) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ma...@us...> - 2006-08-26 09:59:13
|
Revision: 63 Author: marchy Date: 2006-08-26 02:58:46 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/objectlabkit/?rev=63&view=rev Log Message: ----------- Making tests pass. Renamed JodaWorkingWeekTest.java test to JdkWorkingWeekTest.java Modified Paths: -------------- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java Added Paths: ----------- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JdkWorkingWeekTest.java Removed Paths: ------------- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JodaWorkingWeekTest.java Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java 2006-08-26 09:34:14 UTC (rev 62) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java 2006-08-26 09:58:46 UTC (rev 63) @@ -65,26 +65,26 @@ Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); - cal.setStartDate(createDate("2006-07-31")); // start date Monday + cal.setStartDate(createDate("2006-07-31")); checkDate("start date Monday", cal, "2006-07-31"); - cal.setStartDate(createDate("2006-08-01")); // start date Tuesday + cal.setStartDate(createDate("2006-08-01")); checkDate("start date Tuesday", cal, "2006-08-01"); - cal.setStartDate(createDate("2006-08-02")); // start date Wednesday + cal.setStartDate(createDate("2006-08-02")); checkDate("start date Wednesday", cal, "2006-08-02"); - cal.setStartDate(createDate("2006-08-03")); // start date Thursday + cal.setStartDate(createDate("2006-08-03")); checkDate("start date Thursday", cal, "2006-08-03"); - cal.setStartDate(createDate("2006-08-04")); // set on a Friday + cal.setStartDate(createDate("2006-08-04")); checkDate("start date friday", cal, "2006-08-04"); - cal.setStartDate(createDate("2006-08-05")); // set on a Saturday - checkDate("start date Saturday", cal, "2006-08-05"); + cal.setStartDate(createDate("2006-08-05")); + checkDate("start date Saturday, move to Monday", cal, "2006-08-07"); - cal.setStartDate(createDate("2006-08-06")); // set on a Sunday - checkDate("start date Sunday", cal, "2006-08-06"); + cal.setStartDate(createDate("2006-08-06")); + checkDate("start date Sunday, move to Monday", cal, "2006-08-07"); } public void testSimpleForwardStartDateWhackyWeek() { Copied: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JdkWorkingWeekTest.java (from rev 57, trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JodaWorkingWeekTest.java) =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JdkWorkingWeekTest.java (rev 0) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JdkWorkingWeekTest.java 2006-08-26 09:58:46 UTC (rev 63) @@ -0,0 +1,78 @@ +/* + * 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 junit.framework.Assert; +import junit.framework.TestCase; +import net.objectlab.kit.datecalc.common.WorkingWeek; + +/** + * @author Benoit Xhenseval + */ +public class JdkWorkingWeekTest extends TestCase { + + public void testIsWorkingDayFromCalendar() { + final WorkingWeek ww = new WorkingWeek(); + Assert.assertTrue("Calendar.MONDAY", ww.isWorkingDayFromCalendar(Calendar.MONDAY)); + Assert.assertTrue("Calendar.TUESDAY", ww.isWorkingDayFromCalendar(Calendar.TUESDAY)); + Assert.assertTrue("Calendar.WEDNESDAY", ww.isWorkingDayFromCalendar(Calendar.WEDNESDAY)); + Assert.assertTrue("Calendar.THURSDAY", ww.isWorkingDayFromCalendar(Calendar.THURSDAY)); + Assert.assertTrue("Calendar.FRIDAY", ww.isWorkingDayFromCalendar(Calendar.FRIDAY)); + Assert.assertFalse("Calendar.SATURDAY", ww.isWorkingDayFromCalendar(Calendar.SATURDAY)); + Assert.assertFalse("Calendar.SUNDAY", ww.isWorkingDayFromCalendar(Calendar.SUNDAY)); + } + + public void testSetWorkingDayFromCalendar() { + final WorkingWeek ww = new WorkingWeek(); + ww.withWorkingDayFromCalendar(true, Calendar.SUNDAY); // sunday + // working + // day + ww.withWorkingDayFromCalendar(true, Calendar.SUNDAY); // sunday + // working + // day + // do + // it + // twice + Assert.assertTrue("Calendar.MONDAY", ww.isWorkingDayFromCalendar(Calendar.MONDAY)); + Assert.assertTrue("Calendar.TUESDAY", ww.isWorkingDayFromCalendar(Calendar.TUESDAY)); + Assert.assertTrue("Calendar.WEDNESDAY", ww.isWorkingDayFromCalendar(Calendar.WEDNESDAY)); + Assert.assertTrue("Calendar.THURSDAY", ww.isWorkingDayFromCalendar(Calendar.THURSDAY)); + Assert.assertTrue("Calendar.FRIDAY", ww.isWorkingDayFromCalendar(Calendar.FRIDAY)); + Assert.assertFalse("Calendar.SATURDAY", ww.isWorkingDayFromCalendar(Calendar.SATURDAY)); + Assert.assertFalse("Calendar.SUNDAY", ww.isWorkingDayFromCalendar(Calendar.SUNDAY)); + + ww.withWorkingDayFromCalendar(false, Calendar.SUNDAY); // sunday + // working + // day + Assert.assertTrue("2/ Calendar.MONDAY", ww.isWorkingDayFromCalendar(Calendar.MONDAY)); + Assert.assertTrue("2/ Calendar.TUESDAY", ww.isWorkingDayFromCalendar(Calendar.TUESDAY)); + Assert.assertTrue("2/ Calendar.WEDNESDAY", ww.isWorkingDayFromCalendar(Calendar.WEDNESDAY)); + Assert.assertTrue("2/ Calendar.THURSDAY", ww.isWorkingDayFromCalendar(Calendar.THURSDAY)); + Assert.assertTrue("2/ Calendar.FRIDAY", ww.isWorkingDayFromCalendar(Calendar.FRIDAY)); + Assert.assertFalse("2/ Calendar.SATURDAY", ww.isWorkingDayFromCalendar(Calendar.SATURDAY)); + Assert.assertFalse("2/ Calendar.SUNDAY", ww.isWorkingDayFromCalendar(Calendar.SUNDAY)); + + ww.withWorkingDayFromCalendar(true, Calendar.SUNDAY); // sunday + // working + // day + // do + // it + // twice + } + +} Deleted: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JodaWorkingWeekTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JodaWorkingWeekTest.java 2006-08-26 09:34:14 UTC (rev 62) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/JodaWorkingWeekTest.java 2006-08-26 09:58:46 UTC (rev 63) @@ -1,78 +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 junit.framework.Assert; -import junit.framework.TestCase; -import net.objectlab.kit.datecalc.common.WorkingWeek; - -/** - * @author Benoit Xhenseval - */ -public class JodaWorkingWeekTest extends TestCase { - - public void testIsWorkingDayFromCalendar() { - final WorkingWeek ww = new WorkingWeek(); - Assert.assertTrue("Calendar.MONDAY", ww.isWorkingDayFromCalendar(Calendar.MONDAY)); - Assert.assertTrue("Calendar.TUESDAY", ww.isWorkingDayFromCalendar(Calendar.TUESDAY)); - Assert.assertTrue("Calendar.WEDNESDAY", ww.isWorkingDayFromCalendar(Calendar.WEDNESDAY)); - Assert.assertTrue("Calendar.THURSDAY", ww.isWorkingDayFromCalendar(Calendar.THURSDAY)); - Assert.assertTrue("Calendar.FRIDAY", ww.isWorkingDayFromCalendar(Calendar.FRIDAY)); - Assert.assertFalse("Calendar.SATURDAY", ww.isWorkingDayFromCalendar(Calendar.SATURDAY)); - Assert.assertFalse("Calendar.SUNDAY", ww.isWorkingDayFromCalendar(Calendar.SUNDAY)); - } - - public void testSetWorkingDayFromCalendar() { - final WorkingWeek ww = new WorkingWeek(); - ww.withWorkingDayFromCalendar(true, Calendar.SUNDAY); // sunday - // working - // day - ww.withWorkingDayFromCalendar(true, Calendar.SUNDAY); // sunday - // working - // day - // do - // it - // twice - Assert.assertTrue("Calendar.MONDAY", ww.isWorkingDayFromCalendar(Calendar.MONDAY)); - Assert.assertTrue("Calendar.TUESDAY", ww.isWorkingDayFromCalendar(Calendar.TUESDAY)); - Assert.assertTrue("Calendar.WEDNESDAY", ww.isWorkingDayFromCalendar(Calendar.WEDNESDAY)); - Assert.assertTrue("Calendar.THURSDAY", ww.isWorkingDayFromCalendar(Calendar.THURSDAY)); - Assert.assertTrue("Calendar.FRIDAY", ww.isWorkingDayFromCalendar(Calendar.FRIDAY)); - Assert.assertFalse("Calendar.SATURDAY", ww.isWorkingDayFromCalendar(Calendar.SATURDAY)); - Assert.assertTrue("Calendar.SUNDAY", ww.isWorkingDayFromCalendar(Calendar.SUNDAY)); - - ww.withWorkingDayFromCalendar(false, Calendar.SUNDAY); // sunday - // working - // day - Assert.assertTrue("2/ Calendar.MONDAY", ww.isWorkingDayFromCalendar(Calendar.MONDAY)); - Assert.assertTrue("2/ Calendar.TUESDAY", ww.isWorkingDayFromCalendar(Calendar.TUESDAY)); - Assert.assertTrue("2/ Calendar.WEDNESDAY", ww.isWorkingDayFromCalendar(Calendar.WEDNESDAY)); - Assert.assertTrue("2/ Calendar.THURSDAY", ww.isWorkingDayFromCalendar(Calendar.THURSDAY)); - Assert.assertTrue("2/ Calendar.FRIDAY", ww.isWorkingDayFromCalendar(Calendar.FRIDAY)); - Assert.assertFalse("2/ Calendar.SATURDAY", ww.isWorkingDayFromCalendar(Calendar.SATURDAY)); - Assert.assertFalse("2/ Calendar.SUNDAY", ww.isWorkingDayFromCalendar(Calendar.SUNDAY)); - - ww.withWorkingDayFromCalendar(true, Calendar.SUNDAY); // sunday - // working - // day - // do - // it - // twice - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ma...@us...> - 2006-08-26 10:42:58
|
Revision: 64 Author: marchy Date: 2006-08-26 03:41:51 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/objectlabkit/?rev=64&view=rev Log Message: ----------- Getting rid of compiler warnings, by parametrizing generic classes. I'm not sure I like the fact that client code will have to use this, but what are the alternatives? Modified Paths: -------------- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.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/ForwardDateCalculatorTest.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/IMMDateTest.java trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorCombinationTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorFactoryTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ForwardDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/IMMDateTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedFollowingDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/ModifiedPreceedingDateCalculatorTest.java trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/PeriodCountCalculatorTest.java Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-26 09:58:46 UTC (rev 63) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-26 10:41:51 UTC (rev 64) @@ -36,11 +36,11 @@ * */ public class DefaultDateCalculatorFactory implements DateCalculatorFactory<Date> { - private static final DateCalculatorFactory DEFAULT = new DefaultDateCalculatorFactory(); + private static final DateCalculatorFactory<Date> DEFAULT = new DefaultDateCalculatorFactory(); private final ConcurrentMap<String, Set<Date>> holidays = new ConcurrentHashMap<String, Set<Date>>(); - public static DateCalculatorFactory getDefaultInstance() { + public static DateCalculatorFactory<Date> getDefaultInstance() { return DEFAULT; } Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java 2006-08-26 09:58:46 UTC (rev 63) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorCombinationTest.java 2006-08-26 10:41:51 UTC (rev 64) @@ -9,9 +9,9 @@ public class DateCalculatorCombinationTest extends AbstractDateCalculatorTest { public void testInvalidCombinationDiffHandler() { - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", + final DateCalculator<Date> cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", HolidayHandlerType.FORWARD); try { @@ -23,8 +23,8 @@ } public void testInvalidCombinationNullNotNullHandler() { - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); + final DateCalculator<Date> cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", HolidayHandlerType.FORWARD); try { @@ -36,9 +36,9 @@ } public void testInvalidCombinationNotNullNullHandler() { - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", null); + final DateCalculator<Date> cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla2", null); try { cal1.combine(cal2); @@ -50,14 +50,14 @@ public void testValidCombinationOneEmptySet() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", createUKHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", + final DateCalculator<Date> cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", HolidayHandlerType.FORWARD); - final DateCalculator combo = cal1.combine(cal2); + final DateCalculator<Date> combo = cal1.combine(cal2); Assert.assertEquals("Combo name", "bla/UK", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); Assert.assertEquals("start", Date, combo.getStartDate()); @@ -68,14 +68,14 @@ public void testValidCombination() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", createUKHolidays()); DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", createUKHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", + final DateCalculator<Date> cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", HolidayHandlerType.FORWARD); - final DateCalculator combo = cal1.combine(cal2); + final DateCalculator<Date> combo = cal1.combine(cal2); Assert.assertEquals("Combo name", "UK/UK", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); Assert.assertEquals("start", Date, combo.getStartDate()); @@ -86,14 +86,14 @@ public void testValidCombination2Sets() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", createUKHolidays()); DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("US", createUSHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", + final DateCalculator<Date> cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", HolidayHandlerType.FORWARD); - final DateCalculator combo = cal1.combine(cal2); + final DateCalculator<Date> combo = cal1.combine(cal2); Assert.assertEquals("Combo name", "US/UK", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); Assert.assertEquals("start", Date, combo.getStartDate()); @@ -103,12 +103,12 @@ public void testNullCombination() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("US", createUSHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator combo = cal1.combine(null); + final DateCalculator<Date> combo = cal1.combine(null); Assert.assertSame("same", combo, cal1); Assert.assertEquals("Combo name", "US", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); @@ -119,12 +119,12 @@ public void testSameCombination() { DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("US", createUSHolidays()); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("US", HolidayHandlerType.FORWARD); final Date Date = createDate("2006-08-08"); cal1.setStartDate(Date); - final DateCalculator combo = cal1.combine(cal1); + final DateCalculator<Date> combo = cal1.combine(cal1); Assert.assertSame("same", combo, cal1); Assert.assertEquals("Combo name", "US", combo.getName()); Assert.assertEquals("Combo type", HolidayHandlerType.FORWARD, combo.getHolidayHandlerType()); Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactoryTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactoryTest.java 2006-08-26 09:58:46 UTC (rev 63) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/DateCalculatorFactoryTest.java 2006-08-26 10:41:51 UTC (rev 64) @@ -10,12 +10,12 @@ public class DateCalculatorFactoryTest extends AbstractDateCalculatorTest { public void testGetCalendarsNoHoliday() { - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); Assert.assertNotNull("cal1", cal1); Assert.assertEquals("name", "bla", cal1.getName()); Assert.assertTrue("no holiday", cal1.getNonWorkingDays().isEmpty()); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); + final DateCalculator<Date> cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); Assert.assertNotNull("cal2", cal2); Assert.assertEquals("name", "bla", cal2.getName()); Assert.assertTrue("no holiday", cal2.getNonWorkingDays().isEmpty()); @@ -26,12 +26,12 @@ final Set<Date> uk = createUKHolidays(); DefaultDateCalculatorFactory.getDefaultInstance().registerHolidays("UK", uk); - final DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); + final DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); Assert.assertNotNull("cal1", cal1); Assert.assertEquals("name", "bla", cal1.getName()); Assert.assertTrue("no holiday", cal1.getNonWorkingDays().isEmpty()); - final DateCalculator cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", null); + final DateCalculator<Date> cal2 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("UK", null); Assert.assertNotNull("cal2", cal2); Assert.assertEquals("name cal2", "UK", cal2.getName()); Assert.assertEquals("UK holidays", 4, cal2.getNonWorkingDays().size()); @@ -39,7 +39,7 @@ } public void testGetCorrectAlgo() { - DateCalculator cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); + DateCalculator<Date> cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", null); Assert.assertNull("No algo", cal1.getHolidayHandlerType()); cal1 = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java 2006-08-26 09:58:46 UTC (rev 63) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/ForwardDateCalculatorTest.java 2006-08-26 10:41:51 UTC (rev 64) @@ -13,7 +13,7 @@ public class ForwardDateCalculatorTest extends AbstractDateCalculatorTest { public void testSimpleForwardWithWeekend() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -28,7 +28,7 @@ } public void testSimpleForwardStartDateWithWeekend() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -56,7 +56,7 @@ } public void testSimpleForwardStartDateNoWeekend() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); final WorkingWeek ww = new WorkingWeek(); ww.withWorkingDayFromCalendar(true, Calendar.SATURDAY); @@ -88,7 +88,7 @@ } public void testSimpleForwardStartDateWhackyWeek() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -126,7 +126,7 @@ } public void testSimpleForwardStartDateIdealWeekend() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -164,7 +164,7 @@ } public void testSimpleForwardWithHolidays() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); final Set<Date> holidays = new HashSet<Date>(); holidays.add(createDate("2006-08-28")); @@ -197,7 +197,7 @@ checkDate("23/12 + 1", cal.moveByDays(1), "2006-12-28"); } - private void checkDate(final String string, final DateCalculator calendar, final String string2) { + private void checkDate(final String string, final DateCalculator<Date> calendar, final String string2) { Assert.assertEquals(string, createDate(string2), calendar.getCurrentBusinessDate()); } } Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/IMMDateTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/IMMDateTest.java 2006-08-26 09:58:46 UTC (rev 63) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/IMMDateTest.java 2006-08-26 10:41:51 UTC (rev 64) @@ -12,7 +12,7 @@ } public void testNextIMM() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -80,7 +80,7 @@ } public void testPreviousIMM() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -150,7 +150,7 @@ } public void testIMMLists() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -169,7 +169,7 @@ } public void testEmptyIMMLists() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -182,7 +182,7 @@ } public void testEndOnIMMDateIMMLists() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -197,7 +197,7 @@ } public void testStartOnIMMDateIMMLists() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.FORWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); Modified: trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java =================================================================== --- trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java 2006-08-26 09:58:46 UTC (rev 63) +++ trunk/datecalc-jdk/src/test/java/net/objectlab/kit/datecalc/jdk/PeriodCountCalculatorTest.java 2006-08-26 10:41:51 UTC (rev 64) @@ -225,7 +225,7 @@ }; public void testConv30EvIsma() { - final PeriodCountCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); + final PeriodCountCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); Assert.assertNotNull(cal); for (final String[] test : CONV_360E_ISMA) { @@ -234,7 +234,7 @@ } public void testConv30Ev360() { - final PeriodCountCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); + final PeriodCountCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); Assert.assertNotNull(cal); for (final String[] test : CONV_360E_ISDA) { @@ -243,7 +243,7 @@ } public void testConv30v360() { - final PeriodCountCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); + final PeriodCountCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); Assert.assertNotNull(cal); for (final String[] test : CONV_30_360) { @@ -252,7 +252,7 @@ } public void testAct365() { - final PeriodCountCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); + final PeriodCountCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); Assert.assertNotNull(cal); for (final String[] test : ACT_365) { @@ -261,7 +261,7 @@ } public void testAct360() { - final PeriodCountCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); + final PeriodCountCalculator<Date> cal = DefaultDateCalculatorFactory.getDefaultInstance().getPeriodCountCalculator(); Assert.assertNotNull(cal); for (final String[] test : ACT_360) { @@ -269,7 +269,7 @@ } } - private void runtest(final PeriodCountCalculator cal, final String[] test) { + private void runtest(final PeriodCountCalculator<Date> cal, final String[] test) { final String name = test[0]; final Date start = createDate(test[1]); final Date end = createDate(test[2]); Modified: trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java =================================================================== --- trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java 2006-08-26 09:58:46 UTC (rev 63) +++ trunk/datecalc-joda/src/main/java/net/objectlab/kit/datecalc/joda/DefaultDateCalculatorFactory.java 2006-08-26 10:41:51 UTC (rev 64) @@ -28,11 +28,11 @@ import org.joda.time.LocalDate; public class DefaultDateCalculatorFactory implements DateCalculatorFactory<LocalDate> { - private static final DateCalculatorFactory DEFAULT = new DefaultDateCalculatorFactory(); + private static final DateCalculatorFactory<LocalDate> DEFAULT = new DefaultDateCalculatorFactory(); private final ConcurrentMap<String, Set<LocalDate>> holidays = new ConcurrentHashMap<String, Set<LocalDate>>(); - public static DateCalculatorFactory getDefaultInstance() { + public static DateCalculatorFactory<LocalDate> getDefaultInstance() { return DEFAULT; } Modified: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java =================================================================== --- trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java 2006-08-26 09:58:46 UTC (rev 63) +++ trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/BackwardDateCalculatorTest.java 2006-08-26 10:41:51 UTC (rev 64) @@ -17,7 +17,7 @@ public class BackwardDateCalculatorTest extends TestCase { public void testSimpleForwardWithWeekend() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -32,7 +32,7 @@ } public void testSimpleBackwardStartDateWithWeekend() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -60,7 +60,7 @@ } public void testSimpleForwardStartDateNoWeekend() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); JodaWorkingWeek ww = new JodaWorkingWeek(); ww = ww.withWorkingDayFromDateTimeConstant(true, DateTimeConstants.SATURDAY); @@ -92,7 +92,7 @@ } public void testSimpleForwardStartDateWhackyWeek() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -130,7 +130,7 @@ } public void testSimpleForwardStartDateIdealWeekend() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); Assert.assertEquals("Name", "bla", cal.getName()); Assert.assertEquals("Holidays size", 0, cal.getNonWorkingDays().size()); @@ -168,7 +168,7 @@ } public void testSimpleForwardWithHolidays() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); final Set<LocalDate> holidays = new HashSet<LocalDate>(); holidays.add(new LocalDate("2006-08-28")); @@ -205,7 +205,7 @@ * @todo not sure what to expect from this... with backward mechanism... */ public void testMoveByBusinessDays() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); final Set<LocalDate> holidays = new HashSet<LocalDate>(); holidays.add(new LocalDate("2006-08-28")); @@ -228,7 +228,7 @@ } public void testMoveByTenorDays() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); cal.setStartDate(new LocalDate("2006-08-08")); @@ -246,7 +246,7 @@ } public void testMoveByTenorWeek() { - final DateCalculator cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", + final DateCalculator<LocalDate> cal = DefaultDateCalculatorFactory.getDefaultInstance().getDateCalculator("bla", HolidayHandlerType.BACKWARD); cal.setStartDate(new LocalDate("2006-08-08")); @@ -259,7 +259,7 @@ checkDate("Move 4W", cal.moveByTenor(new Tenor(4, TenorCode.WEEK)), "2006-09-05"); } - private void checkDate(final String string, final DateCalculator calendar, final String string2) { + private void checkDate(final String string, final DateCalculator<LocalDate> calendar, final String string2) { Assert.assertEquals(string, new LocalDate(string2), calendar.getCurrentBusinessDate()); } } Modified: trunk/datecalc-joda/src/test/java/net/objectlab/kit/datecalc/joda/DateCalculatorCombinationTest.java =================================================================== --- trunk/datecalc-joda... [truncated message content] |